Convert JSON to SRT

Drag & drop your .json file here, or click to browse

Converts to SRT Subtitles on secure servers · 1 free a day, files up to 25 MB · no signup

Your first conversion each day is free (files up to 25 MB). A $2.99 one-time Day Pass unlocks 24 hours and ends by itself.

Convert JSON transcript data to SRT subtitles securely online. No signup; encrypted transfer and automatic deletion after server-side processing.

By ChangeThisFile Team · Last updated: October 2026

Quick Answer

Upload a JSON transcript and get a standard SRT subtitle file back. The converter reads a list of cues, or the "segments" array Whisper and similar tools export, takes start, end and text from each item, and writes numbered SubRip cues with HH:MM:SS,mmm timecodes. Times can be seconds (2.8), start_ms/end_ms milliseconds, or timecodes like 00:00:01,500. Your first conversion each day is free for files up to 25MB; a $2.99 Day Pass covers more conversions and files up to 100MB.

First daily conversion free No signup required Encrypted transfer · Async jobs kept up to 24h Queued when needed Updated October 2026

JSON vs SRT Subtitles: Format Comparison

Key differences between the two formats

FeatureJSONSRT
Data structureFlexible nested objects and arraysSequential numbered subtitle blocks
Timecode formatVarious (milliseconds, seconds, ISO)HH:MM:SS,mmm format only
Text supportAny string data with escapingPlain text with basic HTML formatting
Use caseAPI responses, data exchangeVideo subtitle display
File sizeCompact with compressionHuman-readable text format
ParsingRequires JSON parserSimple text parsing by media players
MetadataCan include speaker, confidence, stylingTimecode and text only
Platform supportAll programming languagesUniversal video player support

When to Convert

Common scenarios where this conversion is useful

Whisper transcripts to subtitles

Turn the JSON segments Whisper (or any tool that exports start, end and text) produces into a standard SRT for YouTube, Premiere or VLC. Nested speech-API responses need flattening into that shape first.

Edited transcript JSON to captions

If your transcript lives as a JSON list of cues, convert it to SRT for video editors and accessibility uploads. Reshape service-specific exports into start/end/text items first.

Content platform API processing

Convert subtitle data from video platform APIs (YouTube, Vimeo, Wistia) or CMS systems into portable SRT files for cross-platform content distribution.

Translation service integration

Process JSON subtitle data from translation APIs or localization platforms into SRT format for multilingual video content delivery and international distribution.

Live streaming caption processing

Convert real-time transcription JSON from live streaming services into SRT files for post-broadcast accessibility and content archiving requirements.

Who Uses This Conversion

Tailored guidance for different workflows

Video Editors & Subtitlers

  • Convert JSON caption files to SRT for the subtitle track your editor or delivery spec requires
  • Move JSON subtitles into SRT to hand off to an editor working in a different tool
After converting to SRT, confirm the cue timings still line up with the video
Check that line breaks and special characters survived the JSON to SRT conversion

Content Creators & YouTubers

  • Convert JSON captions to SRT to upload alongside your video on YouTube, Vimeo, or social platforms
  • Turn a JSON caption file into SRT to make your video clearer and more accessible
Keep individual SRT cues short (about one to two lines) so captions stay readable on screen
Preview the SRT captions on the actual video to catch any timing drift before publishing

Accessibility & Localization Teams

  • Convert JSON subtitles to SRT to meet the caption format an accessibility or compliance spec requires
  • Prepare JSON captions as SRT to hand to translators or a localization workflow
Speaker labels and on-screen positioning only carry over if SRT supports them, so spot-check the result
Validate the SRT file in a caption checker to catch overlapping cues or malformed timestamps

How to Convert JSON to SRT Subtitles

  1. 1

    Prepare your JSON file

    Ensure your JSON contains subtitle objects with timestamp and text properties. Common formats include arrays of subtitle objects or nested transcription data.

  2. 2

    Drop your JSON file

    Drag and drop your JSON file onto the converter, or click to browse. The parser auto-detects subtitle data structure and converts instantly.

  3. 3

    Download the SRT file

    Click Download to save your converted SRT subtitle file, ready for use in video editors, media players, and accessibility workflows.

Automate this conversion

Convert JSON to SRT Subtitles via API

Integrate this conversion into your pipeline with 3 lines of code. Free tier: 25 conversions/month.

curl -X POST https://changethisfile.com/v1/convert \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "file=@input.json" \
  -F "target=srt" \
  -o output.srt --fail
Replace YOUR_API_KEY with your free key — no credit card needed.
Get a free API key

Frequently Asked Questions

The item {"start": 0.5, "end": 2.8, "text": "Welcome back to the channel."} becomes cue 1 with the timecode 00:00:00,500 --> 00:00:02,800 and the line "Welcome back to the channel." Cues are numbered in the order they appear in the JSON.

A top-level array of items, or an object holding the array under segments, captions, subtitles, cues, entries or results. Each item needs text (or subtitle, caption, content, sentence, line, dialogue) and ideally start and end (also accepted: begin/from/in, stop/to/out, start_time/end_time, start_ms/end_ms, or start plus duration). Key names are case-insensitive. Items without times are laid out back to back, three seconds each.

Whisper's JSON and any export shaped as a list of start/end/text items work directly. Google Cloud Speech, AWS Transcribe and Azure return nested word-level results with their own time formats, so flatten them into start, end and text items first.

Yes. The current JSON-to-SRT route uses server-side processing. Files travel over an encrypted connection and are automatically deleted after conversion.

Seconds as numbers or strings (2.8), millisecond fields named start_ms and end_ms, durations, and timecodes in HH:MM:SS,mmm, HH:MM:SS.mmm or MM:SS.mmm form are all written as SRT's HH:MM:SS,mmm. ISO 8601 date-times are not supported.

Yes. If an item has a speaker field (or character, actor, speaker_name), the cue is written as "Speaker: text".

Anything whose JSON export is a list of cues with start, end and text, including OpenAI Whisper's JSON output. Exports with a different shape need a quick reshape into that form first.

They are ignored. Only timing, text and an optional speaker field reach the SRT file.

One level of wrapping is handled: a top-level array, or an array under segments, captions, subtitles, cues, entries or results. Deeper nesting, such as results[].alternatives[], needs flattening first.

No. Each item becomes one cue, and word arrays are not grouped into sentences. Use segment-level output (Whisper's default) for readable subtitles.

Free conversions accept files up to 25MB. A one-time $2.99 Day Pass raises the limit to 100MB and unlocks unlimited conversions for 24 hours.

Currently, the converter processes one JSON file at a time. For batch processing, you can convert files individually or combine multiple transcription JSON files into a single file before conversion.

Yes, the generated SRT files follow standard SubRip format and are compatible with YouTube, Vimeo, Facebook, TikTok, video editing software, and any platform that supports SRT subtitle uploads.

Related Conversions

Related Tools

Free tools to edit, optimize, and manage your files.

Read our guides on file formats and conversion

Ready to convert your file?

Convert JSON to SRT Subtitles instantly — free, no signup required.

Start Converting