Subtitle converter
Convert SRT to VTT, or VTT to SRT
Turn an .srt into a .vtt, or a .vtt into an .srt. The format is detected from the file, and every cue keeps its exact time.
- Free, no sign-up
- Nothing is uploaded
- Cue times stay exact
Or paste the subtitles
Your file stays in this browser: nothing is uploaded.
In short
To convert SRT to VTT, drop the .srt file here, or paste its text, and download the .vtt. The converter adds the WEBVTT header and changes the comma before the milliseconds to a dot, so every cue keeps its exact time. VTT to SRT works the same way in reverse. Everything runs in your browser: the file is never uploaded.
SRT vs VTT: what changes when you convert
Both formats hold timed cues. Here's what differs, and what the converter does.
| What | SRT | VTT | What the converter does |
|---|---|---|---|
| First line | The first cue's number | WEBVTT | Adds or removes the WEBVTT line |
| Cue number | Required: 1, 2, 3… | Optional cue ID | To SRT: numbered from 1. To VTT: left out |
| Time | 00:01:02,500 | 00:01:02.500 (the hours can be left out) | Kept to the millisecond; the separator changes, missing hours become 00 |
| Bold, italic, underline | <b> <i> <u> | <b> <i> <u> | Kept |
| Text color | <font color="…"> | A class such as <c.yellow>, styled with CSS | Tag removed, words kept |
| Position on screen | Codes such as {\an8} | Cue settings such as line:0 align:start | Removed, words kept |
| Speakers | Plain text, such as "Anna:" | A voice tag: <v Anna> | <v Anna> becomes "Anna: ". Names already in the text stay |
| NOTE, STYLE, REGION | None | Comment, style and region blocks | Left out: SRT has no place for them |
| Character encoding | No fixed rule; older files often aren't UTF-8 | UTF-8 | Reads all three, saves UTF-8 |
The same subtitle in both formats
2 00:00:02,110 --> 00:00:04,250 Today we will review the third quarter numbers,
WEBVTT 00:00:02.110 --> 00:00:04.250 Today we will review the third quarter numbers,
Subtitle 2 of our sample transcript. The words and times match: VTT adds the WEBVTT line, drops the cue number and puts a dot before the milliseconds.
Which format does your player take?
On a web page, the HTML5 <track> element takes WebVTT, so captions for a video on your own site must be a .vtt. For any other player or editor, check which subtitle formats it imports, and convert here if it wants the other one.
Convert by hand
It takes three edits in any plain-text editor.
Add the header
Open the .srt and type WEBVTT on a new first line, followed by an empty line.
Change commas to dots
In every time line, change the comma before the milliseconds to a dot: 00:01:02,500 becomes 00:01:02.500. The cue numbers can stay; WebVTT reads them as cue IDs.
Save as UTF-8
Save it as UTF-8 text with a .vtt extension. VTT to SRT is the reverse: remove the WEBVTT line, number the cues from 1 and put the commas back.
Step by step: convert VTT to SRT by hand
Common questions
How do I convert an SRT file to VTT?
Drop the .srt file into the converter on this page, or paste its text, and download the .vtt. The converter adds the WEBVTT line, changes the comma before the milliseconds to a dot and drops the cue numbers. Every time stays exact to the millisecond, and bold, italic and underline carry over.
How do I convert a VTT file to SRT?
Drop the .vtt file into the converter on this page, or paste its text, and download the .srt. The WEBVTT line goes, the cues are numbered from 1, and every time gets hours and a comma, like 00:01:02,500. Cue settings and NOTE, STYLE and REGION blocks are left out: SRT has no place for them.
Does converting change the timing or lose anything?
The timing doesn't change: every start and end time is kept to the millisecond, as are the words, line breaks, bold, italic and underline. Only styling with no direct match in the other format is left out: text colors, position codes, VTT cue settings, and NOTE, STYLE and REGION blocks.
Can I convert a Zoom or Teams .vtt transcript to SRT?
Yes. Download the transcript from Zoom or Teams as a .vtt file and drop it here. If the file marks speakers with voice tags, like <v Anna Lee>, each one becomes the name at the start of the line: "Anna Lee: Morning, everyone." Names already written in the text stay. The names come from the file; the converter doesn't detect speakers.
Is my file uploaded, and is it free?
No upload, and yes, it's free. The conversion runs in your browser: the file and its text are never uploaded. We only count that a conversion happened, never what was in it. There's no account to create, and you can convert as many files as you like.