YouTube JSON3 to VTT Subtitle Converter
Fast. Private. Perfect.
100% local processing in your browser. No upload. No waiting.
Drag & drop your JSON file here
or click to browse
Supports .json files up to 50 MB
More Subtitle Tools
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 VTT
YouTube timedtext JSON3 is not accepted by HTML5 track elements or most web video platforms. This converter parses the JSON3 events array, joins segs text fragments, calculates cue timing, and writes valid WebVTT with the required WEBVTT header. The file is ready for HTML5 video, YouTube Studio, Vimeo, and JavaScript players.
Input Format
JSONJSON3 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
VTTVTT (WebVTT) is the W3C standard subtitle format for web video, required by the HTML5 track element and accepted by YouTube, Vimeo, and JavaScript video players like Video.js and JW Player. A VTT file must begin with the literal text WEBVTT on the first line, followed by cue blocks. Each cue uses HH:MM:SS.mmm --> HH:MM:SS.mmm timestamps (period before milliseconds, zero-padded hours). VTT also supports optional cue settings (line, position, align, size), inline styling tags, NOTE comments, and CSS blocks.
Features
Why Convert?
Format Differences
Common Use Cases
HTML5 Video Embeds
Add subtitles to a website video using a track element pointing to the VTT file. Browsers will not load JSON3 files via the track element.
YouTube Subtitle Upload
Upload VTT files to YouTube Studio instead of typing subtitles manually. YouTube accepts VTT but not JSON3.
Vimeo Captions
Add closed captions to Vimeo videos by uploading a VTT file through the subtitle settings panel.
E-Learning Platforms
Add subtitles to lecture videos on Coursera, Canvas, or your own LMS, which require VTT for accessibility compliance.
JavaScript Video Players
Enable captions in Video.js, Plyr, JW Player, or similar web players that read VTT as their subtitle source.
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.
SRT (SubRip)
The universal alternative: works on smart TVs and desktop players. Choose SRT instead of VTT if your target is not a web browser.
ASS (Advanced SubStation Alpha)
The styled alternative: supports fonts, colors, and positioning. Choose ASS if visual styling matters more than web compatibility.
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 includes the required WEBVTT header and valid cue timing, so it works with YouTube Studio, Vimeo, the HTML5 track element, Video.js, Plyr, and JW Player.
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 VTT output.
VTT (WebVTT) is the W3C standard subtitle format for web video, required by the HTML5 track element and accepted by YouTube, Vimeo, and JavaScript video players like Video.js and JW Player. A VTT file must begin with the literal text WEBVTT on the first line, followed by cue blocks. Each cue uses HH:MM:SS.mmm --> HH:MM:SS.mmm timestamps (period before milliseconds, zero-padded hours). VTT also supports optional cue settings (line, position, align, size), inline styling tags, NOTE comments, and CSS blocks.