Blog

SRT vs VTT: Which Subtitle Format Should You Use?

SRT and VTT are the two most common subtitle formats. How they differ, examples of each, which platforms accept which, and how to convert between them.

When you download subtitles, you're often asked to choose: SRT or VTT? Both are plain text files with timed lines of text, and they look almost the same. But they're not interchangeable everywhere, and picking the wrong one can mean an upload that fails.

This guide shows what each format looks like, how they differ, where each one works, and how to convert between them.

The short answer

  • Uploading to a video platform such as YouTube, Facebook or LinkedIn? Use SRT. It's the most widely accepted format.
  • Adding subtitles to a video on your own website with the HTML <video> element? Use VTT. Browsers only read VTT for that.
  • Not sure? Keep both. Spokly's subtitle maker downloads SRT and VTT from the same result, so you don't have to choose.

What an SRT file looks like

SRT (short for SubRip Text) is the older and simpler format. Each cue has three parts: a number, a timing line and the text, followed by an empty line.

1
00:00:00,000 --> 00:00:03,200
Hey everyone, welcome back to the channel.

2
00:00:03,400 --> 00:00:07,100
Today I want to show you how I edit
a full video in one afternoon.

The rules are simple:

  • Cues are numbered in order, starting at 1.
  • Times use the form hours:minutes:seconds,milliseconds, with a comma before the milliseconds.
  • The text can be one or more lines.
  • An empty line ends each cue.

There's no official way to style SRT text, though many players understand basic tags such as <i> for italics.

What a VTT file looks like

VTT (WebVTT, for Web Video Text Tracks) was designed for video on the web. Here's the same content as VTT:

WEBVTT

00:00:00.000 --> 00:00:03.200
Hey everyone, welcome back to the channel.

00:00:03.400 --> 00:00:07.100
Today I want to show you how I edit
a full video in one afternoon.

The differences you can see:

  • The file must start with the line WEBVTT.
  • Times use a dot before the milliseconds, not a comma.
  • Cue numbers are optional. You can give cues names instead, or nothing at all.
  • The hours part can be left out for short videos, as in 00:03.400.

What VTT can do that SRT can't

VTT has features for the web that SRT lacks:

  • Positioning: settings after the timing line can move a cue, for example to the top of the screen when the bottom has on-screen text:
00:00:03.400 --> 00:00:07.100 line:0
This cue appears at the top.
  • Styling: a STYLE block can set colors and fonts with CSS, and tags like <b>, <i> and <u> are part of the format.
  • Speaker names: a voice tag such as <v Sam> marks who is speaking.
  • Comments: a NOTE block adds notes that are never shown to viewers.

Whether a player respects these extras depends on the player. Many platforms ignore styling and position cues their own way.

Side by side

SRT VTT
First line The first cue WEBVTT
Cue numbers Required Optional
Milliseconds Comma: 00:00:03,400 Dot: 00:00:03.400
Positioning Not in the format Yes, with cue settings
Styling Basic tags in some players Tags and CSS styles
Best for Uploading to platforms and editors Video on web pages

Which platforms accept which

Platforms change what they accept from time to time, so check the platform's help page if an upload fails. At the time of writing:

Where SRT VTT
YouTube Yes Yes
Vimeo Yes Yes
Facebook Yes No, use SRT
LinkedIn Yes No, use SRT
A web page with <video> and <track> No Yes

Tip: Facebook needs the caption file named with a language code, for example my-video.en_US.srt for English or my-video.ar_AR.srt for Arabic. Otherwise it may reject the file. YouTube and Vimeo expect plain UTF-8 files: save your subtitles as plain text with UTF-8 encoding, not as a Word document or in another encoding.

For desktop video editors, SRT is the safer choice: most editors import SRT, while VTT support varies. If an editor rejects one format, try the other.

For YouTube, both work equally well. Our guide on adding subtitles to a YouTube video walks through the upload in YouTube Studio.

How to convert between SRT and VTT

The easy way: make both

If you're creating new subtitles, open the subtitle maker, make them from your video or audio, and use Download SRT and Download VTT. Both files come from the same cues and timings, and they're made on your device without uploading your video.

SRT to VTT by hand

For a short file, you can convert in any text editor:

  1. Add the line WEBVTT and an empty line at the very top.
  2. In every timing line, replace the comma before the milliseconds with a dot. Be careful not to change commas in the subtitle text itself.
  3. Keep or remove the cue numbers; both are allowed.
  4. Save the file with the .vtt extension, as UTF-8.

VTT to SRT by hand

Going the other way takes a little more care:

  1. Remove the WEBVTT line and any STYLE, NOTE or region blocks.
  2. Remove any settings after the times on timing lines, such as line:0.
  3. In every timing line, replace the dot before the milliseconds with a comma, and add 00: for the hours if they're missing.
  4. Number the cues in order, starting at 1, each number on its own line above the timing line.
  5. Remove VTT-only tags such as <v Sam>; keep simple ones like <i> only if your player supports them.
  6. Save the file with the .srt extension, as UTF-8.

For long files, doing this by hand is slow and easy to get wrong. A subtitle editor that opens one format and saves as the other is the safer route.

Fixing common subtitle file problems

Whichever format you use, most upload errors come from a handful of small problems. If a platform rejects your file, or the subtitles look wrong, check these:

  • The file isn't UTF-8. Accented letters, Arabic or other scripts turn into strange symbols. Open the file in a text editor and save it again with UTF-8 encoding.
  • A timing line is broken. One missing digit or a missing arrow can make a whole file fail. Look at the cue the platform mentions, or the first cue that shows incorrectly.
  • Cues overlap. If one cue ends after the next one starts, some players show both at once and others hide one. Make each cue end before the next begins.
  • Empty cues. A cue with timing but no text can cause errors on some platforms. Delete it, and in an SRT file renumber the cues after it.
  • The wrong extension. A file saved as subtitles.srt.txt won't be accepted as SRT. Make sure your computer shows file extensions so you can see the real name.

Naming your subtitle files

When you have subtitles in several languages, a clear naming habit saves confusion. A simple pattern is the video name, the language code and the format, such as my-video.en.srt and my-video.ar.srt. Spokly uses this pattern when it translates a subtitle file.

Some platforms ask for a specific naming pattern so they can detect the language automatically. If an upload asks you to choose the language anyway, the file name doesn't matter much; pick the language carefully instead.

Translating subtitle files

Translation keeps the format: an SRT file comes back as SRT, and a VTT file as VTT. Spokly's free translation runs in Chrome and keeps every timing unchanged. Read how to translate an SRT file without breaking the timestamps for the steps and what to check afterwards.

Spokly is working on AI tools for translated subtitles and YouTube chapters; they're coming soon. Making SRT and VTT files is free today.

FAQ

Can I just rename a .srt file to .vtt?

No. The content is different: a VTT file needs the WEBVTT line at the top, and its times use dots instead of commas. A renamed SRT file will usually be rejected or show no subtitles.

Which format is better for accessibility?

Both carry the same text and timing, which is what viewers need. VTT can also mark speakers and position cues, which helps when your player supports it. On most platforms, the content of your subtitles matters much more than the format.

Does YouTube prefer SRT or VTT?

YouTube accepts both. Choose either; what matters more is that you upload the file into the right language and choose the option for files that already have timings.

Do both formats support every language?

Yes. Both are plain text, so they support any language, including right-to-left scripts like Arabic and Hebrew, as long as the file is saved as UTF-8. Files from Spokly are saved as UTF-8.