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.

WhatSRTVTTWhat the converter does
First lineThe first cue's numberWEBVTTAdds or removes the WEBVTT line
Cue numberRequired: 1, 2, 3…Optional cue IDTo SRT: numbered from 1. To VTT: left out
Time00:01:02,50000: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 CSSTag removed, words kept
Position on screenCodes such as {\an8}Cue settings such as line:0 align:startRemoved, words kept
SpeakersPlain text, such as "Anna:"A voice tag: <v Anna><v Anna> becomes "Anna: ". Names already in the text stay
NOTE, STYLE, REGIONNoneComment, style and region blocksLeft out: SRT has no place for them
Character encodingNo fixed rule; older files often aren't UTF-8UTF-8Reads all three, saves UTF-8

The same subtitle in both formats

SRT
2
00:00:02,110 --> 00:00:04,250
Today we will review the
third quarter numbers,
VTT
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.

  1. Add the header

    Open the .srt and type WEBVTT on a new first line, followed by an empty line.

  2. 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.

  3. 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.

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.