YouTube JSON3 to SRT Subtitle Converter
Turn YouTube timedtext JSON3 events into universal SRT subtitles with sequence numbers and HH:MM:SS,mmm timing.
Drag & drop your JSON file here
or click to browse
Supports .json, .json3, .xml, .html files up to 50 MB
About JSON to SRT
YouTube timedtext JSON3 stores captions as an events array with tStartMs, dDurationMs, and segs text fragments. This converter parses that structure, joins the text fragments, calculates cue end times, and outputs standard numbered SRT subtitles for video players, smart TVs, and editing tools. Everything runs locally in your browser.
JSON to SRT Code Syntax & Structure Inspection
Side-by-side code inspection illustrating header definitions, timestamp syntax, and cue payload formatting
JSON vs SRT Technical Specifications
JSON
JSON3 is YouTube's internal subtitle format, exported via the timedtext API. The file is a JSON object with an events array. Each event has tStartMs (start millisecond), dDurationMs (duration in ms), and segs (an array of text fragments, each with a utf8 field). Users typically download this format using youtube-dl, yt-dlp, or similar tools.
SRT
SRT (SubRip) is the most widely supported subtitle format in existence. Each entry consists of a sequential index number, a timestamp line in HH:MM:SS,mmm --> HH:MM:SS,mmm format (note the comma before milliseconds and the dash-arrow separating start and end), and one or more lines of subtitle text. SRT files are plain text with .srt extension and are recognized by every desktop player (VLC, MPC-HC, MPV), every smart TV brand, mobile video apps, and professional editing software.
Format Differences
Conversion Troubleshooting & Gotchas
Practical solutions for player compatibility, character encoding, and timing synchronization
Subtitle timing drifts or appears out of sync on media players
Video files frequently differ in framerate (e.g., 23.976 fps vs 25 fps). If the timing drifts steadily, use our Subtitle Sync tool to adjust the global offset or framerate stretch.
Characters appear as garbled symbols or question marks (Mojibake)
Legacy files saved in Windows-1252, Shift-JIS, or GBK may render incorrectly. Our exporter standardizes output to clean UTF-8. Use our Subtitle Encoding Converter if the source file is corrupted.
Overlapping captions when multiple speakers talk simultaneously
Different formats handle overlapping dialogue differently. If your target player cannot render stacked cues cleanly, open the file in our Subtitle Editor to adjust individual cue timings.
Video editing software (Premiere, DaVinci, Final Cut) rejects the file
Professional NLE software enforces strict syntax rules. Our converter eliminates malformed line breaks and non-standard tags, producing clean, standardized files.
Features
Why Convert?
Common Use Cases
Video Editing Import
Load YouTube JSON3 files into Adobe Premiere Pro, DaVinci Resolve, or Final Cut Pro, which accept SRT on the timeline but do not parse JSON3.
Media Server Library
Add subtitles to your Plex, Emby, or Jellyfin library. These servers auto-detect .srt files alongside video but ignore .json.
Mobile Video
Ensure subtitles work in iOS and Android video apps like Infuse, nPlayer, and MX Player by converting JSON3 to the universally supported SRT.
Encoding Pipelines
Feed subtitles into FFmpeg, HandBrake, or MKVToolNix workflows that hardcode or mux subtitles, all of which expect SRT input.
Subtitle Standardization
Normalize a mixed library of JSON3, VTT, and SRT files into a single consistent SRT collection for easier management.
Related Formats
JSON (YouTube JSON3)
JSON3 is YouTube's internal subtitle format, exported via the timedtext API. The file is a JSON object with an events array. Each event has tStartMs (start millisecond), dDurationMs (duration in ms), and segs (an array of text fragments, each with a utf8 field). Users typically download this format using youtube-dl, yt-dlp, or similar tools.
VTT (WebVTT)
The web video alternative: adds a WEBVTT header and uses period-separated milliseconds. Choose VTT if your target is HTML5 video or YouTube.
ASS (Advanced SubStation Alpha)
The styled alternative: supports fonts, colors, and positioning. Choose ASS if you need to add visual styling to YouTube JSON3 text.
How It Works
- 1
Upload or drag your .json file into the tool area.
- 2
The parser reads the JSON structure and iterates the events array.
- 3
A sequential number is prepended to every entry as SRT requires.
- 4
Timing-only events without segs are automatically skipped.
- 5
The resulting .srt file gives every cue a number, a start --> end timestamp, and clean subtitle text.
More Subtitle Tools
Frequently Asked Questions
JSON3 is YouTube's internal subtitle format. It is served via the timedtext API as a JSON object with an events array. Each event has tStartMs (start millisecond), dDurationMs (duration in ms), and segs (text fragments array, each with a utf8 field).
The utf8 fragments in each event are joined in their original order. For example, "Hello " and "world" become the complete subtitle line "Hello world".
Yes. The output uses standard SubRip numbering and HH:MM:SS,mmm --> HH:MM:SS,mmm timing, so it loads in VLC, MPV, Samsung and LG TVs, Premiere Pro, DaVinci Resolve, Plex, and similar tools.
Use yt-dlp: yt-dlp --write-auto-sub --sub-format json3 <video-URL>. The downloaded .json3 file can be directly imported into this tool. You can also fetch it via the YouTube timedtext API in a browser.
Some events in YouTube JSON3 contain only timing information (like aAppend markers) without text fragments. These events are automatically skipped during conversion and do not affect the SRT output.
SRT (SubRip) is the most widely supported subtitle format in existence. Each entry consists of a sequential index number, a timestamp line in HH:MM:SS,mmm --> HH:MM:SS,mmm format (note the comma before milliseconds and the dash-arrow separating start and end), and one or more lines of subtitle text. SRT files are plain text with .srt extension and are recognized by every desktop player (VLC, MPC-HC, MPV), every smart TV brand, mobile video apps, and professional editing software.
Related Articles
Convert YouTube JSON3 Subtitles to SRT, VTT, or LRC | AllSubConverter
Download YouTube captions as JSON3 and convert them to SRT, VTT, or LRC. Step-by-step guide covering yt-dlp, the JSON3 format, and free online conversion.
Add Pinyin & Furigana to Subtitles | AllSubConverter
Learn how to add pinyin to Chinese subtitles and furigana to Japanese subtitles. AI-powered reading aids for language learners, karaoke, and study materials.