VTT to SRT Converter (Subtitles)
Convert WebVTT (.vtt) subtitles into SubRip (.srt) for VLC, video editors, TVs and media players, with an optional time shift.
Results
What this tool does
Subtitles saved from the web, from YouTube or from online course platforms usually come as WebVTT, but video editors, TVs, VLC and Plex all read SRT. This converter numbers the cues the way SRT requires, writes the milliseconds after a comma, and drops what SRT has no place for: the WEBVTT header, NOTE comments, STYLE blocks, cue positions and voice or colour tags. <i>, <b> and <u> are kept, and karaoke timestamps inside the text are removed. Cues that end up empty are skipped, and if a TV or older player shows the file as one long line, choose CRLF line endings.
Formula
header, NOTE and STYLE removed ; dot before the milliseconds → comma ; cues numbered ; only <i>, <b> and <u> kept
Variables
| Symbol | Meaning | Unit |
|---|---|---|
text | WebVTT subtitles | — |
shift | Shift every time by (negative = earlier) | s |
newline | Line endings | — |
OUT | SRT subtitles | — |
CU | Subtitles converted | — |
DU | Last subtitle ends at | — |
SK | Blocks skipped (no valid times) | — |
Worked example
- WebVTT subtitlesWEBVTT 00:01.000 --> 00:04.000 Hello, and welcome. intro-2 00:04.500 --> 00:07.250 align:start <v Narrator><i>This line is in italics.</i></v>
- Shift every time by (negative = earlier)0 s
- Line endingslf
- SRT subtitles1 00:00:01,000 --> 00:00:04,000 Hello, and welcome. 2 00:00:04,500 --> 00:00:07,250 <i>This line is in italics.</i>
- Subtitles converted2
- Last subtitle ends at00:00:07,250
- Blocks skipped (no valid times)0
Limitations
- The calculation runs entirely in your browser. The values you type are never sent to a server.