How to convert an SRT file to VTT (and back again)
SubRip (.srt) and WebVTT (.vtt) are the two subtitle formats you will meet almost every time, and they are far more alike than the file extensions suggest. Converting between them is not a re-encode or a re-timing job — it is a handful of text substitutions, which is why it can happen instantly in a browser with nothing uploaded anywhere.
What actually differs between the two
An SRT file is a sequence of blocks. Each block is a number, then a timing line, then one or more lines of text, then a blank line: 1 00:00:01,000 --> 00:00:04,120 The cameras were rolling. A WebVTT file is the same idea with four differences. It begins with the literal word WEBVTT on the first line. Its timestamps use a full stop instead of a comma for the fractional second — 00:00:01.000, not 00:00:01,000. The block numbers are optional, and most tools leave them out. And the timing line may carry cue settings after the end stamp (align:start, position:10%, line:90%) that tell a browser where to draw the caption. That is the whole list. The words, the number of lines, and the timings are identical in both.
When you need VTT specifically
The one place that genuinely will not accept SRT is HTML5 video. The <track> element in a web page reads WebVTT and nothing else, so if you are captioning a video you are embedding yourself, VTT is the format — a browser handed an SRT file will simply show no captions and log nothing useful. Streaming packagers are the other common case: HLS and DASH both carry WebVTT segments, so anything that goes through a packaging step usually wants VTT on the way in.
When you need SRT specifically
Almost everywhere else. Desktop players — VLC, mpv, the one built into your TV — expect SRT, and many of them will ignore a .vtt sitting next to the video even though the content is fine. Editing software (Premiere, Resolve, Final Cut) imports SRT as a caption track. Most video platforms that let you upload a subtitle file accept SRT, and several accept only SRT. If you are unsure which one a particular tool wants, SRT is the safer first attempt.
Converting it
Paste the file into the box on the front page and pick the other format. The parser is deliberately forgiving, because the files that need converting are usually the damaged ones: a missing block number, Windows line endings, a stray byte-order mark at the top, NOTE blocks in the VTT, cue settings after the timestamp. All of that is read and dropped rather than treated as an error. Going from VTT to SRT does lose the cue settings — positioning has no equivalent in SubRip. Everything else survives the round trip unchanged.
Watch the encoding, not just the extension
If your subtitles show up as Ã¥ or ? where an accented character should be, the file is not broken — it was saved in a legacy single-byte encoding and is being read as UTF-8, or the other way round. Save it as UTF-8 and the characters come back. A related gotcha: some Windows editors write a byte-order mark at the start of the file. Most players cope; a few show the very first subtitle with an invisible character glued to it, or refuse the file outright.
Frequently asked questions
Does converting SRT to VTT change the timings?
No. The numbers are identical; only the character between the seconds and the milliseconds changes, from a comma to a full stop.
Can I just rename the file from .srt to .vtt?
No. Renaming does not add the WEBVTT header line or change the comma in the timestamps, and a strict parser will reject the file on either count. Some lenient players will accept it anyway, which is why this sometimes appears to work.
Will I lose subtitle positioning?
Going from VTT to SRT, yes — SubRip has no way to express where on the screen a caption sits, so cue settings are dropped. Going the other way there is nothing to lose.
Is my file uploaded anywhere?
No. The conversion runs in your browser, on the page you are reading. Nothing is sent to a server, which is also why it is instant.
More guides
Other things we made
Also in English, made by the same people.
Also in English, made by the same people.
Also in English, made by the same people.
Also in English, made by the same people.