SRT to VTT Converter
Convert SRT subtitles to WebVTT for HTML5 video.
You have a perfectly good .srt subtitle file, and the video player embedded on your website simply will not load it — because the HTML5 <track> element does not accept SRT at all. It requires WebVTT, a different but closely related format.
Why the web standardised on a different format
SRT, SubRip, dates to the early 2000s and was built for desktop subtitle software, not the web. When the HTML5 video specification needed a native way to attach captions and subtitles to a <video> tag, the W3C defined WebVTT specifically for the job — adding features SRT never had, like styling cues, positioning, and chapter markers, while staying close enough to SRT’s structure that conversion between the two is mostly mechanical.
The result is that SRT still dominates as an exchange and editing format, while WebVTT is what actually ships to a browser. Publishing video on the open web means you need the conversion at some point in the pipeline.
What actually changes between the formats
| Element | SRT | WebVTT |
|---|---|---|
| File header | none | must start with the literal line WEBVTT |
| Decimal separator in timestamps | comma — 00:01:15,500 | dot — 00:01:15.500 |
| Cue numbering | required before each block | optional |
| Styling and positioning | not supported | supported, via cue settings and tags |
| File extension | .srt | .vtt |
Converting SRT to VTT
- Upload or paste your
.srtfile. - The converter adds the required
WEBVTTheader line at the top. - Every timestamp’s comma is switched to a dot —
00:01:15,500becomes00:01:15.500. - Download the resulting
.vttfile. - Reference it from your
<track kind="subtitles" src="captions.vtt">element and test playback in the browser.
The one-character bug that causes total failure
A browser parsing a WebVTT file that still has commas in its timestamps, because someone just renamed an .srt file to .vtt without actually converting it, will typically fail silently — no subtitles appear, no obvious error, just an empty track. Renaming the extension is not conversion. The comma-to-dot change in every single timestamp, plus the WEBVTT header line, are both required for a browser to accept the file.
SRT to VTT questions
Can I just rename my .srt file to .vtt?
No. The file extension is not what a browser checks — it parses the file’s actual structure, and SRT’s comma-separated timestamps and missing WEBVTT header will cause a real conversion, not just a rename, to be necessary.
Does HTML5 video support SRT files directly?
No, the <track> element only accepts WebVTT. If you have subtitles in SRT, converting to VTT is a required step before they will display in a standard HTML5 video player.
What is the WEBVTT header line for?
It is a required signature at the very top of every valid WebVTT file, telling the parser what format follows. A file missing it is not valid WebVTT even if every timestamp and caption line is otherwise correct.
Will I lose any information converting from SRT to VTT?
No, everything in the original SRT — timing and caption text — carries over. VTT is a superset of what SRT offers, so the conversion only adds capability, like optional styling, rather than removing anything.
Can WebVTT do things SRT cannot?
Yes — VTT supports cue positioning on screen, basic text styling through cue settings, and metadata like chapter markers, none of which the plain SRT format has any way to express.