Skip to content

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

Core Engine Architecture

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.

Payload & Syntax Inspector

JSON to SRT Code Syntax & Structure Inspection

Side-by-side code inspection illustrating header definitions, timestamp syntax, and cue payload formatting

Millisecond Sync
input.json
JSON SOURCE
{
"events": [
{ "tStartMs": 1000, "dDurationMs": 3000,
"segs": [{ "utf8": "Hello, world!" }] },
{ "tStartMs": 4500, "dDurationMs": 3500,
"segs": [{ "utf8": "This is a subtitle file." }] }
]
}
output.srt
SRT RESULT
1
00:00:01,000 --> 00:00:04,000
Hello, world!
 
2
00:00:04,500 --> 00:00:08,000
This is a subtitle file.
 
3
00:00:08,500 --> 00:00:12,000
Converted locally!
Specification Sheet

JSON vs SRT Technical Specifications

Standard Compliant
Input Format

JSON

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.

Output Format

SRT

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

JSON3 uses events, tStartMs, dDurationMs, and segs; SRT uses numbered plain-text cues
JSON3 is YouTube internal API data; SRT is a universal subtitle standard
JSON3 splits text into utf8 fragments; SRT presents each cue as complete subtitle text
JSON3 is rarely supported by players or editors; SRT works in VLC, smart TVs, Premiere Pro, and media servers

Conversion Troubleshooting & Gotchas

Practical solutions for player compatibility, character encoding, and timing synchronization

4 Common Gotchas
GOTCHA #1

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.

GOTCHA #2

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.

GOTCHA #3

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.

GOTCHA #4

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

Automatically parses YouTube JSON3 events array and segs text fragments
Converts JSON3 millisecond timestamps to SRT HH:MM:SS,mmm cue timing
Client-side processing — your files never leave your device
Supports UTF-8 encoding for CJK and non-Latin characters
Browser-based processing — no file uploads, files stay on your device
Free to use, no signup, no watermark, files up to 50 MB each

Why Convert?

Smart TVs from Samsung, LG, Sony, and Roku devices only display SRT subtitles, not JSON3.
Video editing software like Premiere Pro, DaVinci Resolve, and Final Cut import SRT natively but do not recognize JSON3.
Mobile video players on iOS and Android have no built-in JSON3 support, but every one reads SRT.
SRT is the format every subtitle API, automation script, and encoding pipeline expects.
SRT is a dependable interchange format for subtitle QC and delivery pipelines before platform-specific profiling.
Media servers like Plex, Emby, and Jellyfin auto-detect SRT but ignore JSON3 files.
Scenarios

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.

Format Ecosystem

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. 1

    Upload or drag your .json file into the tool area.

  2. 2

    The parser reads the JSON structure and iterates the events array.

  3. 3

    A sequential number is prepended to every entry as SRT requires.

  4. 4

    Timing-only events without segs are automatically skipped.

  5. 5

    The resulting .srt file gives every cue a number, a start --> end timestamp, and clean subtitle text.

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.

Ready to convert your subtitles?

Drop your JSON file here and convert to SRT instantly.