How to convert JSON to SRT
TL;DR — Convert transcription API JSON, caption segment arrays, and timed subtitle exports into standard SRT files for upload and review.
Related tool
JSON to SRT Converter
JSON subtitle data often comes from transcription APIs, internal caption tools, video platforms, or automated speech-to-text workflows. The timing is usually stored as objects with start time, end time, and text fields.
SRT is easier to upload, validate, preview, and send to editors because it uses numbered cues and standard timestamp lines.
Quick answer
Use the JSON to SRT Converter to convert timed JSON caption segments into standard SubRip subtitles. The tool supports arrays of cue objects and common containers such as segments, captions, cues, or items, then exports numbered SRT locally in your browser with no upload.
When to convert JSON to SRT
Convert JSON to SRT when:
- a transcription API returns timed segments instead of an SRT file
- an internal tool stores captions as JSON objects
- a review export has
start,end, andtextfields - you need to upload captions to a platform that expects SRT
- you want to validate timing before sending subtitle files to a client
Keep the original JSON until the converted SRT has been checked against the video.
Supported JSON layout
The safest layout is an object with a segments array:
{
"segments": [
{
"start": 1.0,
"end": 3.5,
"text": "Welcome back to the edit"
},
{
"start": 4.2,
"end": 6.0,
"text": "Today we are converting JSON captions\\nThey need SRT output"
}
]
}
An array of cue objects also works:
[
{ "startTime": "00:00:01.000", "endTime": "00:00:03.500", "caption": "Welcome back" },
{ "startMs": 4200, "endMs": 6000, "text": "Second caption" }
]
What changes during conversion
The JSON segments above become SRT cues like this:
1
00:00:01,000 --> 00:00:03,500
Welcome back to the edit
2
00:00:04,200 --> 00:00:06,000
Today we are converting JSON captions
They need SRT output
During conversion, the tool:
- reads arrays or common containers such as
segments,captions,cues, oritems - supports
start,end,startTime,endTime,startMs, andendMs - treats numeric
startandendvalues as seconds - treats
startMs,endMs, anddurationMsvalues as milliseconds - supports text fields such as
text,caption,subtitle,content, orline - turns escaped
\nmarkers into normal SRT line breaks
Step-by-step workflow
- Save a copy of the original JSON export.
- Confirm each cue has start time, end time, and text.
- Open the JSON to SRT Converter.
- Upload or paste the JSON subtitle data.
- Convert the file to SRT.
- Run the output through the SRT Validator before upload.
Common mistakes
Using transcript-only JSON
SRT needs timing. JSON with text paragraphs but no start or end fields cannot become timed subtitles until timing is added.
Mixing seconds and milliseconds
Numeric start and end values are treated as seconds. Use startMs and endMs when the export stores milliseconds.
Forgetting to validate after conversion
Automated transcription output can contain empty segments, overlapping timing, or very long lines. Validate and review the SRT before publishing.
Frequently asked questions
How do I convert JSON subtitle segments to SRT?
Open the JSON to SRT Converter, upload or paste JSON with start, end, and text fields, and export the parsed segments as numbered SRT cues.
What JSON fields does JSON to SRT support?
Use fields such as start, end, and text, or startTime, endTime, and caption. Numeric start and end values are treated as seconds unless the field name ends in Ms.
Can I convert JSON captions without uploading the file?
Yes. The converter runs locally in your browser, so the JSON subtitle data does not need to be sent to a server.
Related guides
Related tools
Use the JSON to SRT Converter
Convert JSON subtitle segments to SRT online for free, locally in your browser with no upload. No signup, no upload, and everything runs locally in the browser.
Open JSON to SRT