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
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.
JSON vs SRT Subtitles: Format Comparison
Key differences between the two formats
| Feature | JSON | SRT |
|---|---|---|
| Data structure | Flexible nested objects and arrays | Sequential numbered subtitle blocks |
| Timecode format | Various (milliseconds, seconds, ISO) | HH:MM:SS,mmm format only |
| Text support | Any string data with escaping | Plain text with basic HTML formatting |
| Use case | API responses, data exchange | Video subtitle display |
| File size | Compact with compression | Human-readable text format |
| Parsing | Requires JSON parser | Simple text parsing by media players |
| Metadata | Can include speaker, confidence, styling | Timecode and text only |
| Platform support | All programming languages | Universal 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
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
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
How to Convert JSON to SRT Subtitles
-
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
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
Download the SRT file
Click Download to save your converted SRT subtitle file, ready for use in video editors, media players, and accessibility workflows.
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
YOUR_API_KEY with your free key — no credit card needed.
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.
Ready to convert your file?
Convert JSON to SRT Subtitles instantly — free, no signup required.
Start Converting