How to convert SRT to VTT online
- Drop your .srt file on the box above, or paste its text into Input.
- The converter detects the format and writes WebVTT in Output. Paste a .vtt file instead and it writes SRT.
- Click Download to save the new file with the same name and the new extension, or Copy output to paste it somewhere.
Nothing is uploaded: the conversion runs in this page, so it works on private or unreleased subtitles.
What actually changes between SRT and WebVTT
The two formats hold the same thing, a list of cues with a start time, an end time and some text, but they write it slightly differently.
| SRT (.srt) | WebVTT (.vtt) | |
|---|---|---|
| First line | Nothing special | WEBVTT |
| Milliseconds | Comma: 00:01:02,500 | Period: 00:01:02.500 |
| Cue numbers | Required, 1, 2, 3... | Optional cue identifiers |
| Positioning | Unofficial {\an8} tags | Cue settings such as line:0 align:start |
| Styling | <b>, <i>, <u>, <font> | <b>, <i>, <u>, classes, voices, CSS |
| Comments | None | NOTE blocks |
SRT to VTT
The converter adds the WEBVTT header, switches commas to periods, drops the cue numbers, removes <font> tags (WebVTT doesn't have them) and turns {\an8} style position tags into the matching cue settings, so a top-of-screen caption stays at the top. Stray & and < characters are escaped, because a browser would otherwise read them as markup.
VTT to SRT
Going the other way, it numbers the cues, switches periods back to commas, and removes what SRT players don't understand: the header, NOTE, STYLE and REGION blocks, class and karaoke timestamp tags. A voice tag like <v Sam> becomes Sam: so you still know who is speaking. Cue settings are dropped by default; choose "Keep top/bottom" to turn top-positioned cues into {\an8}.
Common problems it fixes
- Byte-order mark. Files saved from Windows tools often start with an invisible BOM, which makes some players reject the
WEBVTTline. It is removed. - Windows line endings. CRLF and old Mac CR endings are converted to plain line breaks.
- Short timestamps. WebVTT allows
01:02.500without hours; SRT doesn't, so hours are always written out. - Out-of-sync subtitles. Use Shift timings to move every cue earlier (negative) or later (positive) by the same amount.
Which one should you use?
Use WebVTT for anything played in a web browser: the HTML <track> element only accepts VTT, and most web players expect it. Use SRT for desktop players, editing apps and upload forms that ask for it; it is the most widely accepted subtitle file. YouTube and Vimeo take either.
FAQ
How do I convert SRT to VTT online for free?
Drop the .srt file on the converter above or paste its text. It writes the WebVTT version straight away; click Download to save it as a .vtt file. It runs in your browser, so the file is not uploaded.
Can I just rename .srt to .vtt?
Not reliably. A VTT file must start with a WEBVTT line and use periods, not commas, before the milliseconds. Some players accept a renamed file, but browsers using the HTML track element will usually show nothing.
How do I convert VTT to SRT?
Paste or drop the .vtt file. The converter detects WebVTT and writes SRT: numbered cues, comma milliseconds, and no header, NOTE or STYLE blocks. You can also pick "WebVTT to SRT" in the Convert menu.
Why do my VTT subtitles not show in the browser?
The usual causes are a missing WEBVTT first line, comma milliseconds left over from SRT, an invisible byte-order mark before WEBVTT, or the server sending the file with the wrong type. Running the file through the converter fixes the first three; the server should send text/vtt.