Skip to content
Toolmivo
Toolmivo
Subtitles

SRT vs VTT: Differences and How to Convert Between Them

The difference between SRT and VTT subtitle files, how to convert SRT to VTT or VTT to SRT correctly, and how to fix common subtitle errors.

5 min read

SRT and WebVTT are the two most common subtitle formats. They look almost identical, and that’s exactly why conversions go wrong: a file that is “nearly” right may be rejected by a player or show no captions at all. This guide explains what differs between the formats, how to convert in either direction, and how to fix the errors you are most likely to run into.

If you just want the result, the free SRT to VTT Subtitle Converter does the conversion in your browser and previews every cue before you download.

SRT and WebVTT at a glance

SRT (SubRip) is a simple, widely supported format used by video editors, desktop players and upload forms. Each cue has a sequence number, a timing line and one or more lines of text, separated from the next cue by a blank line:

1
00:00:01,000 --> 00:00:04,200
Welcome back to the channel!

2
00:00:04,500 --> 00:00:07,800
Today we're turning one long video
into three vertical clips.

WebVTT (Web Video Text Tracks) is the caption format of the web. The HTML5 video element’s <track> tag requires it, and many web players expect it. The same cues in WebVTT look like this:

WEBVTT

00:00:01.000 --> 00:00:04.200
Welcome back to the channel!

00:00:04.500 --> 00:00:07.800
Today we're turning one long video
into three vertical clips.

What actually changes

DetailSRTWebVTT
File headerNoneMust start with WEBVTT
Millisecond separatorComma: 00:00:01,000Period: 00:00:01.000
Hours in timestampsRequiredOptional (01:02.500 is valid)
Cue numbersSequential numbersOptional identifiers (any text)
PositioningNot standardizedCue settings such as align:start or line:0
Comments and stylesNoNOTE, STYLE and REGION blocks
Basic formatting<i>, <b>, <u> (widely supported)<i>, <b>, <u>, plus voice and class tags

One more subtle difference: in WebVTT, the characters & and < in caption text must be written as &amp; and &lt;, because they otherwise start an entity or a tag. A careful converter handles this automatically in both directions.

Converting with the online converter

  1. Open the Subtitle Converter and drop in your .srt or .vtt file, or paste the subtitle text.
  2. The format is detected automatically, and every cue appears in the preview table with its start time, end time and text. Multi-line cues stay multi-line.
  3. Choose the output: WebVTT (.vtt) or SubRip (.srt).
  4. Download the converted file or copy the text.

When converting WebVTT to SRT, features SRT can’t represent, such as cue positioning, voice tags and STYLE blocks, are dropped, while italic, bold and underline are kept. The converted file is always saved as UTF-8.

Converting by hand (and why it’s risky)

For a tiny file, you can convert manually in a text editor: add WEBVTT and a blank line at the top, then replace the commas in timing lines with periods. The risk is in the details. A global find-and-replace also changes commas inside your caption text, and it’s easy to miss an ampersand that needs escaping. For anything longer than a few lines, a converter that parses each cue is safer.

Fixing common subtitle file errors

Missing blank lines between cues

Each cue must be separated by a blank line. When one is missing, players may merge two cues or skip one. The converter recognizes a second timing line inside a block and splits it into two cues.

Invalid timestamps

Watch for typos such as 00:00:75,000 (75 seconds isn’t valid), missing digits, or a wrong arrow. Blocks that can’t be read are listed with their line numbers so you can find and fix them; the remaining valid cues are still converted.

Garbled accented characters

Older SRT files are sometimes saved in a legacy encoding rather than UTF-8, which turns characters like é or ñ into symbols. The converter reads UTF-8 and UTF-16, and falls back to Windows-1252 (Western European) when a file isn’t valid UTF-8, then writes UTF-8.

Overlapping or out-of-order cues

Players usually tolerate overlaps, but they can make captions flicker or stack. The converter flags cues that end before they start, overlap, or appear out of order. To fix them, open the file in the Subtitle Editor, where you can edit times, sort cues and shift timing.

Using a VTT file on your website

With a WebVTT file, adding captions to a self-hosted video takes one line of HTML:

<video controls src="clip.mp4">
  <track kind="subtitles" src="clip.vtt" srclang="en" label="English" default>
</video>

Serve the .vtt file with the text/vtt content type. If the captions are hosted on a different domain from the page, the server must allow cross-origin requests, or the browser will refuse to load the track.

Which format should you keep?

If you publish in several places, keep both. Use SRT as the version you hand to editors, clients and upload forms, since almost every tool imports it. Use WebVTT for your own website and web players. Edit one master copy, then convert it whenever the text or timing changes, so the two versions never drift apart. Platforms such as YouTube accept both formats for uploaded captions, so either one works there.

Key takeaways

  • WebVTT needs a WEBVTT header and uses periods in timestamps; SRT uses commas and numbered cues.
  • HTML5 video captions require WebVTT; many editors and upload forms prefer SRT.
  • Converting to SRT drops WebVTT-only features like positioning and styles, but keeps basic formatting.
  • Fix malformed blocks, bad timestamps and overlaps before publishing.
  • Save subtitle files as UTF-8 to avoid garbled characters.
try it

Tools used in this guide

keep reading