SubRip (.srt) is still the most widely supported subtitle format for desktop media players, encoders and editing tools, while WebVTT (.vtt) is what the web uses. If you’ve downloaded or generated captions as WebVTT and need them in SubRip, this converter rewrites the file cleanly.
Why you might need this conversion
VTT appears in several places SRT does not: YouTube and Vimeo serve captions in WebVTT format when downloaded; automated transcription tools like Whisper often default to VTT; and browsers natively render VTT captions via the HTML5 <track> element. But the moment you take those captions into a video editor (Premiere Pro, DaVinci Resolve, Final Cut), most desktop players (VLC, MPC-HC), or encoding pipelines (ffmpeg subtitle burn-in), they want SRT — the older and simpler format that media tools have understood since the late 1990s.
How it works
WebVTT carries a few things SubRip doesn’t, so converting is mostly about removing them and reformatting the timestamps:
- Drop the header and metadata. The leading
WEBVTTline and any text up to the first blank line are skipped, along withNOTE(comments),STYLE(CSS) andREGION(layout) blocks, none of which exist in SubRip. - Read each cue’s timing line. WebVTT timestamps put a dot before the milliseconds and may leave out the hours field entirely —
00:04.000means zero hours. The converter expands that to00:00:04,000, switching the dot to a comma and padding the hours. - Discard cue settings. Positioning directives that can trail the timing line (for example
line:90%) are removed, since SubRip has no place for them. - Clean the text. WebVTT voice tags and class-styling wrappers are stripped while the visible text inside is kept; ordinary styling such as italics passes through.
- Renumber. SubRip requires a sequential index above each cue, so cues are numbered from 1 in order and any WebVTT identifiers are dropped.
Example
A WebVTT cue with a short timestamp and a cue setting:
intro
00:04.000 --> 00:08.200 line:90%
This line uses cue settings.
becomes clean SubRip:
1
00:00:04,000 --> 00:00:08,200
This line uses cue settings.
What gets stripped and what is kept
The converter removes metadata that has no SRT equivalent — layout, style, and region definitions — and retains the actual spoken words. Simple HTML styling like <i> and <b> passes through unchanged because SRT players generally render those tags. WebVTT-specific wrappers like <v Speaker> are unwrapped, keeping the inner text, because SRT has no speaker identification feature.
Notes
- If the file doesn’t start with
WEBVTT, the converter still attempts the conversion and warns you, which helps with slightly malformed exports from some transcription tools. - Timing values are preserved exactly to the millisecond; only their formatting changes.
- Multi-line cues (where one cue has more than one line of text) are kept intact — only the timing and structural lines are rewritten.
- Everything runs in your browser, so your captions are never uploaded.