Convert SRT to VTT.
Subtitles converted on your device — instant & private.
Drop subtitle files here
or browse your files
Paste with ⌘V · or drop files anywhere on the page
Files never leave your device. Everything runs in your browser, nothing touches a server — tools you've used even work offline.
Convert SRT subtitles to WebVTT entirely in your browser — the caption format HTML5 `<track>`, YouTube and every modern web player expects. Drop the files and the .vtt twins come straight back; ASS files convert the same way. Nothing is ever uploaded.
Before / after
SRT — 316 B
1 00:00:12,000 --> 00:00:15,500 The astronomers gather for the great congress. 2 00:00:42,250 --> 00:00:46,000 The capsule is loaded into the giant cannon. 3 00:01:03,800 --> 00:01:07,400 <i>Fire!</i> The voyage to the Moon begins. 4 00:01:28,500 --> 00:01:32,000 The Man in the Moon takes the rocket in the eye.
VTT — 316 B
WEBVTT 00:00:12.000 --> 00:00:15.500 The astronomers gather for the great congress. 00:00:42.250 --> 00:00:46.000 The capsule is loaded into the giant cannon. 00:01:03.800 --> 00:01:07.400 <i>Fire!</i> The voyage to the Moon begins. 00:01:28.500 --> 00:01:32.000 The Man in the Moon takes the rocket in the eye.
Cues
4
Format
SRT → VTT
Size
316 B → 316 B
Real result, not a mock-up: the 4-cue SRT file on the left went through the SRT to VTT tool — a few hundred lines of pure JavaScript, no WebAssembly, no server — and came out as the WebVTT file on the right: same text, same timing, with the cue numbers dropped, the WEBVTT header added and the millisecond comma swapped for a dot. Both panels are the complete actual files, byte for byte — the entire dialect gap, visible in one glance.
How it works
- Drop files anywhere on the page, click to browse, or paste with ⌘V.
- Pick a quality or preset — or set an exact target size and let the tool find it.
- Compress, compare before/after, and download — individually or as a ZIP.
Why players want VTT
Browsers only render WebVTT in a `<track>` element — hand them an SRT and the captions simply never appear. The two formats are near twins: VTT adds a `WEBVTT` header, writes milliseconds with a dot instead of a comma, and drops the numeric counters. Small differences, but they are exactly what a strict parser rejects, which is why the conversion exists at all.
What changes — and what stays
Timing and text survive untouched: every cue keeps its start, end and lines. The header is added, commas become dots, counters go. ASS input works too — styling override tags are stripped and `\N` line breaks unfold, so heavily styled karaoke tracks flatten into plain readable captions. Need the opposite direction? VTT to SRT is one click away.
Under the hood
The whole conversion is a few hundred lines of pure JavaScript running on your device — no WebAssembly engine, no server round-trip, which is why it is instant even for feature-length tracks. Files are parsed into cues, sorted, and rewritten in the target dialect; the text itself never leaves your browser. That matters for unreleased footage, court transcripts and anything else subtitles tend to spoil.
Frequently asked questions
Which input formats can I drop?
SRT, VTT and ASS/SSA — the format is detected from the file’s content, not its extension, so mislabeled files convert fine too.
Do formatting tags survive?
Basic ones do — <i>, <b> and <u> pass through. ASS styling overrides (colors, positioning, karaoke timing) are stripped, because SRT and most VTT players cannot render them anyway.
Can I convert many files at once?
Yes — drop a whole season. Each file converts independently and downloads on its own row, or grab everything as a ZIP.
Are my subtitle files uploaded?
No. The conversion is plain text processing that runs entirely in your browser — the server only delivers this page. Want proof? Run one file through, switch your connection off, and run another — it still works.