SubToolbox

VTT to SRT Converter — Free, In-Browser

Convert WebVTT subtitles to SRT in your browser — cue settings dropped, timings untouched, preview before download.

Quick answer: Drop in a .vtt file and download an .srt with identical timings. The “WEBVTT” header, NOTE blocks and cue settings (like position or align) are removed because SRT has no place for them — every cue's text and timing is preserved.

Drop a subtitle file here, or browse — it stays on your device

Output: SRT (.srt)

Core facts
InputWebVTT (.vtt), with or without cue IDs and settings
OutputSRT (.srt), comma milliseconds, sequential numbering
TimingsUnchanged — 00:00:01.000 becomes 00:00:01,000
DroppedWEBVTT header, NOTE/STYLE blocks, cue settings, cue IDs
PrivacyRuns in the browser; the file never leaves your device

What this tool does

VTT and SRT store the same thing — numbered cues with start and end times — but the punctuation differs and WebVTT adds extras. A WebVTT file starts with a “WEBVTT” header, may contain NOTE comment blocks and STYLE definitions, may give each cue an identifier, and may append positioning settings after the timing line (“00:01:00.000 --> 00:01:02.000 position:50%”). None of that fits in SRT, which is nothing but: index, “start --> end” with a comma before the milliseconds, and text. A good conversion keeps every cue and every millisecond while quietly dropping what SRT cannot represent — and that is exactly what this page does, showing you the full cue table before you download.

Common uses

  • A web player exports .vtt but your video editor or DVD tool wants .srt
  • Downloaded HTML5 captions need to open in VLC, Premiere or Resolve
  • A transcription service delivered VTT and the client asked for SRT
  • A VTT file with cue settings misbehaves in an SRT-only player

The three real differences between VTT and SRT

First, the header: WebVTT requires “WEBVTT” on line one; SRT starts directly with “1”. Second, the millisecond separator: dot in VTT, comma in SRT. Third, the extras: VTT allows NOTE and STYLE blocks, per-cue identifiers, and settings after the arrow line. A converter's whole job is normalising the first two and deciding what to do with the third — here the extras are dropped, because keeping them would produce an SRT that strict players reject.

Frequently Asked Questions

Do the timestamps change when converting VTT to SRT?
Only the separator punctuation changes: WebVTT writes milliseconds after a dot (00:00:01.000), SRT after a comma (00:00:01,000). The values themselves — every start, every end — stay exactly the same.
What happens to cue settings like position and align?
They are removed, because SRT has no syntax for them. If your captions rely on positioning to sit over burned-in text, they will all render at the player's default position after conversion.
Why does my VTT file have letters before the timestamps?
Those are optional cue identifiers in WebVTT. SRT numbers its cues instead, so identifiers are dropped and cues are renumbered sequentially.
Is there a file size or length limit?
No hard limit — the file is processed locally in memory. Feature-length subtitle files with thousands of cues convert in well under a second on a normal computer.

More subtitle converters