Skip to content
TextArray
100% local

VTT ⇄ SRT converter

Convert subtitles between WebVTT and SubRip in either direction, instantly.

Input

VTT ⇄ SRT converter

The web speaks WebVTT, video players speak SubRip. A YouTube caption export, a browser <track> file or a transcription service hands you .vtt; your TV, VLC playlist or editing suite wants .srt — or the other way round. Paste the file here and it comes back converted; the direction is detected from the content automatically, with a manual override when you need to force it.

Going VTT → SRT, the tool does everything the stricter format demands: the WEBVTT header and NOTE/STYLE/REGION blocks disappear, cues are renumbered sequentially, dot millisecond separators become commas, hours are made explicit, cue settings such as align:start are dropped, and VTT-only markup — <v Speaker>, <c.class>, karaoke timestamps — is stripped while <i>, <b> and <u> survive, since SRT players render those. Going SRT → VTT, the WEBVTT header is added, commas become dots, cue numbers are kept as valid cue identifiers, and stray ASS override blocks like {\an8} are cleaned out.

The conversion is line-based and forgiving: a missing blank line or an odd cue does not abort the file, and whatever is recognizably a cue is converted. The tally shows how many cues were processed and which direction was applied, so a wrong auto-detection is visible at a glance.

Everything runs locally in your browser — subtitle files for unreleased footage or client projects never leave your device.

FAQ

How does automatic direction detection work?
A file whose first non-empty line starts with WEBVTT converts to SRT; everything else converts to VTT. The applied direction is shown in the tally, and the direction option can force either way when a file is ambiguous.
What happens to VTT cue settings and voice tags?
Cue settings (align, position, line) and VTT-only tags like <v Speaker> or <c.class> have no SRT equivalent and are removed. Basic styling — <i>, <b>, <u> — is kept, because common SRT players render it.
Are cue identifiers preserved?
VTT → SRT replaces identifiers with a clean 1, 2, 3… sequence, which SRT requires. SRT → VTT keeps the numbers — they are valid VTT cue identifiers and harmless to players.
Does the converter fix overlapping or invalid timings?
No — timings are converted faithfully, not edited. To move all subtitles earlier or later, run the file through the SRT time shifter before or after converting.
Is my subtitle file uploaded anywhere?
No. The conversion runs entirely in your browser and the file never leaves your device.