Skip to content

YouTube JSON3 to SRT Subtitle Converter

Fast. Private. Perfect.

100% local processing in your browser. No upload. No waiting.

Private & Secure
Blazing Fast
Free & Private
JSON
{
"events": [
{ "tStartMs": 1000, "dDurationMs": 3000,
"segs": [{ "utf8": "Hello, world!" }] },
{ "tStartMs": 4500, "dDurationMs": 3500,
"segs": [{ "utf8": "This is a subtitle file." }] }
]
}
SRT
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!

Drag & drop your JSON file here

or click to browse

Supports .json files up to 50 MB

100% LocalNo UploadSecureInstant

How It Works

1

Upload JSON File

Drag & drop or select your .json file

2

Convert Instantly

We process it locally in your browser

3

Download SRT

Get your .srt file immediately

More Conversions You Might Need

Why Choose AllSubConverter?

Your Privacy Matters

Everything runs in your browser. Your files are never uploaded.

Lightning Fast

Optimized processing engine converts files in seconds.

Free & Local

Each file can be up to 50 MB. Batches can contain up to 200 files or 1 GB total.

Works Everywhere

Works on Windows, Mac, Linux, iOS, Android - any modern browser.

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.

Input Format

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

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
Pure browser-based — no upload, complete privacy protection
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.
Streaming platforms like Netflix Partner Help and Amazon Video Direct require SRT for subtitle delivery.
Media servers like Plex, Emby, and Jellyfin auto-detect SRT but ignore JSON3 files.

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

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.

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.