Convert SRT to VTT

Drop .srt or .vtt files here

or paste subtitles below — SRT, WebVTT, ASS/SSA, several files at once

Options

Drop in .srt or .vtt files, or paste the subtitles, and get the other format back — SRT becomes WebVTT for HTML5 video, WebVTT becomes SRT for editors and TV players. The page also fixes the things that make a converted file load with no subtitles at all, tells you what it changed, and then loads the result into this browser’s own subtitle reader to count the lines it accepted. Several files at once, nothing uploaded.

How to convert SRT to VTT

  1. Drop one or more .srt files into the box above, or paste the subtitle text.
  2. The page converts straight away. Leave Convert to on Automatic, or pick WebVTT or SRT yourself.
  3. Read the short report: what was fixed, and how many lines this browser read from the new file.
  4. Press Download VTT. For several files, Download all as ZIP.

The difference between the two formats is small: WebVTT starts with the word WEBVTT, uses a dot instead of a comma before the milliseconds, does not need the number above each line, and must be UTF-8. That is why most converters do just those three things. The trouble is that the files people actually have often break in other ways, and a browser rarely tells you.

What Chrome does with a bad subtitle file

We loaded fifteen versions of the same three-line subtitle into a <track> element in Chrome 155 and counted the lines it accepted (23 October 2026):

FileLines shownError reported?
Correct WebVTT, with or without numbers3 of 3—
The .srt file itself0yes
.srt renamed to .vtt0yes
WEBVTT header added, commas left in0no
Timestamps like 00:00:01.50no
Header written webvtt in lower case0yes
Saved in Windows-1252 (“ANSI”)3, as “Caf� au lait”no
No blank line between cues3, each ending with the next numberno
{\an8} in the text1, with {\an8} printedno
BOM, Windows line endings, no hours (01:02.000)all fine—

The worst case is the half-converted file: header in place, commas still there. It loads, the browser is happy, and the video plays with no subtitles. This converter handles each row of the table and lists every change. Then it loads the converted file into a hidden video on this page and reports how many lines the browser read, so you know it works before you upload it anywhere.

VTT to SRT

Drop a .vtt file and the automatic setting makes SRT: numbered cues, commas, Windows line endings, which is what editors, TVs and Plex expect. WebVTT extras that SRT cannot hold are dealt with explicitly. A speaker tag such as <v Anna> becomes “Anna: ” in front of the line. Karaoke timestamps and class tags are removed, and a cue placed at the top becomes {\an8}. NOTE and STYLE blocks are left out and counted.

Fixing subtitles that are out of sync

If every line is early or late by the same amount, type that number of seconds into Shift timing: 2 moves everything two seconds later, -0.5 half a second earlier. Shifting works in either direction of the conversion, and you can also convert SRT to SRT just to shift it. If the gap grows during the film, the subtitles were made for a different frame rate, and a shift will not fix that.

ASS and SSA files

Subtitles from anime fansubs and Aegisub are often .ass. The page reads their Dialogue lines, turns \N into a line break, keeps “top of the screen” placement and drops the rest of the styling (fonts, colours, karaoke). That is fine for plain dialogue, but a heavily styled sign or song translation will lose its look.

Privacy

The conversion runs in this page. The subtitle file is read by your browser and never sent anywhere; you can disconnect from the internet after the page has loaded and it still works. To put the subtitles permanently into the picture instead of a separate file, use Add subtitles to video.

Frequently asked questions

How do I convert SRT to VTT?

Drop the .srt file into the box above, or paste its text. The page converts it straight away: it adds the WEBVTT header, changes the comma before the milliseconds to a dot, and saves the file as UTF-8. Press Download VTT. To go the other way, drop a .vtt file — the automatic setting turns it into SRT.

Why are my subtitles not showing on my HTML5 video?

In our test with Chrome 155, the common causes all failed silently or nearly so. An .srt file in a <track> element loads nothing. A file renamed from .srt to .vtt fails, and one with a WEBVTT header but commas in the timestamps loads without an error and shows zero subtitles. A lower-case “webvtt” header and timestamps like 00:00:01.5 do the same. This converter fixes each of those and then counts how many lines the browser actually read.

Why do accented letters turn into question marks?

Older SRT files are often saved in Windows-1252 (“ANSI”), and browsers read WebVTT only as UTF-8, so é and î become �. The page detects a file that is not valid UTF-8, reads it as Windows-1252 and writes UTF-8. UTF-16 files are recognised too.

What is the {\an8} at the start of some lines?

A positioning tag from the ASS format that many SRT files carry: it means “put this line at the top”, usually so it does not cover on-screen text. Browsers show it literally. When converting to VTT the page turns it into the WebVTT setting line:0, which places the line at the top; when converting to SRT it keeps it, because VLC and most TVs understand it.

Can I shift the subtitles if they are out of sync?

Yes. Type a number of seconds in Shift timing: a positive number makes the subtitles appear later, a negative one earlier (for example -1.5). Lines that would end before 0:00 are dropped and counted.

Does it keep italics and colours?

<i>, <b> and <u> are kept in both formats. <font color> tags are removed when making VTT, because WebVTT has no font tag — colour has to come from the page’s CSS — and the page says how many it removed.

Can I put the subtitles into the video itself?

Yes: Add subtitles to video burns an SRT or VTT file into the picture, so they show on Instagram, WhatsApp and every player.