Skip to content

Understanding transcription

SRT vs VTT: What Is the Difference?

SRT and VTT compared with a real side-by-side example: header, timestamps, styling, platform support, conversion and what Scriptorium exports.

The Scriptorium team ·

SRT and VTT are both plain-text subtitle files with the same basic job: a cue number or label, a start and end time, and the words shown. The practical differences are small. VTT (WebVTT) starts with the line WEBVTT, writes milliseconds after a full stop instead of a comma, and can carry positioning and a little styling. SRT is plainer and almost universally accepted. If a platform takes both, either works. If it names one, use that one.

The same two cues in both formats

These are real outputs from our exporter for two short lines:

SRT

1
00:00:01,000 --> 00:00:03,400
Welcome back to the show.

2
00:00:03,400 --> 00:00:06,250
Today we are talking about subtitles.

VTT

WEBVTT

00:00:01.000 --> 00:00:03.400
Welcome back to the show.

00:00:03.400 --> 00:00:06.250
Today we are talking about subtitles.

The differences that matter

SRTVTT (WebVTT)
First lineThe number 1 (cue number)The text WEBVTT, then a blank line
Time format00:00:01,000 (comma before milliseconds)00:00:01.000 (full stop before milliseconds)
Cue numbersRequired in practiceOptional identifiers
HoursAlways writtenOptional when zero in the spec; our export always writes them
Positioning, alignmentNot part of the formatCue settings: line, position, size, align, vertical, region
StylingNot part of the formatSTYLE blocks with CSS; colour classes
Speaker namesPlain text, e.g. a name and a colonA voice tag such as <v Name>
Web useNeeds conversion for the HTML track elementUsed directly by the HTML track element

The VTT rows come from the W3C's WebVTT specification: the file starts with "WEBVTT", timestamps are [hours:]minutes:seconds.thousandths with a full stop, identifiers are optional, the MIME type is text/vtt and the file must be UTF-8. There is no comparable official specification for SRT; it is a de facto format, which is why players differ in how forgiving they are of small deviations.

Which platforms want which

We checked what we could. YouTube Help's page on supported subtitle and caption files lists both: SubRip (.srt), described as basic versions only with no styling and plain UTF-8, and WebVTT (.vtt), which it says supports positioning, with styling limited to bold, italic and underline. It also lists several other formats, SBV and TTML among them. For a website, MDN's WebVTT API page shows a VTT file attached to a video with the <track> element; our VTT captions guide walks through it.

For every other platform, such as LinkedIn, Vimeo, Facebook, Instagram, TikTok, video editors and course platforms, check that platform's help page. We could not verify their current rules on the date below, and they change, so we will not state them. A good rule meanwhile: if the help page lists only one, give it that one; if it lists none, export SRT, the format most tools read.

Converting between SRT and VTT

  1. SRT to VTT: add WEBVTT and a blank line at the top, change each comma in the timestamps to a full stop, and the cue numbers can stay.
  2. VTT to SRT: remove the header, change full stops to commas in the timestamps, number the cues, and drop any cue settings, notes or style blocks, which SRT cannot carry.
  3. Re-open the result in the player or platform you care about: the usual failure is a missing blank line or a wrong separator.

To do it without editing by hand, use SRT to VTT or VTT to SRT. If you only need the words, see how to convert SRT to plain text.

What Scriptorium exports

From an uploaded audio or video file, Scriptorium exports TXT, timestamped TXT, SRT, VTT, Markdown, JSON and CSV. SRT and VTT are both there, with timestamps taken from the recognised segments. When speakers are labelled, the SRT puts the name and a colon in front of the line and the VTT uses a voice tag, which is why a labelled VTT looks slightly different from the example above. We do not burn captions into the video and we do not take links, so the route is: upload the file, export the subtitle file, attach it wherever the video lives. The format-specific pages are audio to SRT and audio to VTT.

A quick way to choose

  • Posting to a platform: use the format its help page names.
  • Using the HTML track element on your own page: VTT.
  • Unsure, or a desktop video editor: SRT.
  • You need positioning or styling: VTT, and check the platform keeps it.

For the wider question of how a transcript differs from subtitles, see transcript vs subtitles, and for every format we export see transcript file formats explained.

Common problems, and what causes them

  • Garbled characters, especially Arabic, Hindi or accented letters. The file is not saved as UTF-8. YouTube's page says SRT must be plain UTF-8; re-save it that way.
  • The first cue is ignored. A leftover byte-order mark or a missing blank line before the first cue. In VTT the first line must start with WEBVTT.
  • Times shown as zero or the file will not load. The wrong separator: a comma where VTT wants a full stop, or the reverse.
  • Lines too long to read. Subtitle lines are usually kept short; split long cues in your editor. The format does not enforce a length.
  • Overlapping or out-of-order cues. Some players tolerate them and others skip lines. Check the end time of each cue against the start of the next.
  • Right-to-left text looks wrong. Punctuation can land on the wrong side. Test in the player you will publish with, because players differ.

Reading one cue line by line

In the SRT example above, the first line is the cue number, the second line holds the start and end time with an arrow between them, and the lines under that are the text, up to a blank line. The VTT cue is the same minus the number. Because both are plain text, you can open either in any text editor to fix a typo, which is often faster than re-exporting. If you change a time, change both the start and the end, and keep the cue order the same.

Do you need to care at all?

Often not. If you upload one file to one platform and it accepts the file, you are done. The difference matters when you move subtitles between tools, when a platform rejects a file with an unhelpful error, when you embed captions on your own site, or when you want positioning and styling that SRT cannot carry. In those cases, knowing the header line and the separator character solves most problems in a minute.

Checked on 2026-10-24. YouTube Help (supported subtitle files), the W3C WebVTT specification and MDN's WebVTT page. Left as "check the platform's help page": LinkedIn, Vimeo, Facebook, Instagram, TikTok and editors. Menus, prices and limits change; confirm on the vendor's page before you rely on them.

Questions

What is the main difference between SRT and VTT?
VTT starts with the line WEBVTT, uses a full stop before milliseconds where SRT uses a comma, and can carry positioning and some styling. SRT is simpler.
Can YouTube use both SRT and VTT?
YouTube Help lists both SubRip (.srt) and WebVTT (.vtt) among its supported subtitle files.
How do I convert SRT to VTT?
Add WEBVTT and a blank line at the top and change the commas in timestamps to full stops, or use an SRT to VTT converter.
Does Scriptorium export SRT and VTT?
Yes, both, along with TXT, timestamped TXT, Markdown, JSON and CSV. It does not burn captions into video.

Transcribe a file

Free for a first file, with no account.