Skip to content

Guide

SRT vs VTT: the difference between the two subtitle formats

By Rakshit · Updated

SRT and VTT are both plain-text subtitle files with timed cues. A VTT (WebVTT) file starts with a WEBVTT line, writes milliseconds after a full stop, and can carry comments, styles and positioning. An SRT file, as in YouTube's example, numbers its cues, uses a comma before the milliseconds, and in YouTube's help pages carries no style markup. Use VTT for web players and SRT where a site asks for it.

The differences at a glance

Both formats do the same basic job: a list of text snippets, each with a start time and an end time. Most of the differences are in the details around that list. The table below sticks to what the W3C specification and the YouTube, LinkedIn and W3C pages say, and marks where a fact is missing.

SRT and WebVTT compared
SRT (SubRip, .srt)WebVTT (.vtt)
First lineA cue number, in YouTube's exampleThe text WEBVTT, then a blank line
Timestamp00:00:00,599 --> 00:00:04,160 with a comma before the milliseconds00:00:00.599 --> 00:00:04.160 with a full stop before the milliseconds
HoursShown in YouTube's exampleOptional, but required when non-zero
Cue numbers or namesNumbered cues in YouTube's exampleOptional identifier; if used, it must be unique and must not contain -->
CommentsNot documented in anything we readNOTE blocks, ignored by the parser
StylingYouTube: no style info (markup) is recognized in basic formatsSTYLE blocks hold CSS; text can use b, i, u, class, voice and language tags
Position on screenNot covered in the pages we readCue settings: vertical, line, position, size, align and region
EncodingYouTube: plain UTF-8UTF-8, labelled text/vtt
SpecificationNone found in the pages we readW3C Candidate Recommendation Draft, 20 May 2026

The same caption in both formats

The timing below is the example YouTube uses in its help pages. The words are ours. This is an SRT cue:

  • 1
  • 00:00:00,599 --> 00:00:04,160
  • Welcome back to the show.

And this is the same cue as WebVTT. Notice the header, the full stop in the timestamps and the missing number:

  • WEBVTT
  • (blank line)
  • 00:00:00.599 --> 00:00:04.160
  • Welcome back to the show.

WebVTT can go further. A cue can start with a name, carry settings after the timestamps, hold a speaker tag, or contain timestamps inside its text to mark when part of the line becomes active. SRT, as far as the pages we read go, stops at timing and text.

Where each format is accepted

Where SRT and VTT are accepted
WhereWhat the vendor's own page says
YouTubeSubRip .srt is a basic format: only basic versions are supported, no style markup is recognized, and the file must be plain UTF-8. WebVTT .vtt is listed under advanced formats as in initial implementation: positioning is supported, styling is limited to b, i and u. YouTube suggests SubRip or SubViewer to anyone new to caption files, because they can be edited in a plain text editor
LinkedIn video adsCaptions must be an SRT file with plain text only
Web pagesW3C names WebVTT as the most common caption format on the web and lists SRT and TTML as others. The WebVTT specification describes the format as mainly for the HTML track element

We could not read caption-upload rules for TikTok, Instagram, Facebook or Vimeo in this pass, so this page does not say what they accept. Check the upload screen or help page of the platform you are using.

Converting between SRT and VTT

Renaming the file does not work, because the contents differ. To go from SRT to VTT:

  1. Add WEBVTT as the first line, followed by a blank line.
  2. Change the comma before the milliseconds in every timestamp to a full stop.
  3. Keep or remove the cue numbers. In WebVTT they are optional identifiers and must be unique if present.
  4. Save as plain UTF-8 with the .vtt extension.

To go the other way, remove the header, NOTE blocks, STYLE blocks and cue settings, give each cue a number as in YouTube's example, switch the full stop to a comma, and save as UTF-8. Anything WebVTT carried that the SRT file cannot hold, such as styles, is lost. For batches, the SRT to VTT converter does the swap for you.

Which one should you use?

  • Uploading to YouTube and you do not need styling: SRT is the simplest and YouTube recommends it for beginners.
  • Publishing on your own site with an HTML video player: WebVTT, since the specification says its main use is the HTML track element.
  • Posting a short clip on a social app: we found no caption-file rules for these apps, so burning the captions into the video is the route that does not depend on them; see captions vs subtitles for the trade-off.
  • A platform asks for SRT, as LinkedIn does for video ads: give it SRT, plain text only.

KeyMo's captions are burned into the picture, so a KeyMo clip does not need an SRT or VTT file to show its words. These formats matter when you publish a full-length video with a caption track. KeyMo's job starts after that: turning the long video into captioned vertical clips. For the glossary versions, see SRT file and VTT.

Sources: W3C: WebVTT, The Web Video Text Tracks Format (checked 11 October 2026); WHATWG HTML Standard: media elements and the track element (checked 11 October 2026); YouTube Help: Supported subtitle and closed caption files (checked 11 October 2026); W3C WAI: Captions/Subtitles (checked 11 October 2026); LinkedIn Marketing Solutions Help: Video ads specifications (checked 11 October 2026).

FAQ

Which is better, SRT or VTT?

Neither wins everywhere. VTT carries more, including styles, positioning and comments, and suits web players. SRT is simpler and is what some platforms ask for, so the better format is the one your destination accepts.

Can I just rename an SRT file to VTT?

No. A WebVTT file must begin with the WEBVTT line and writes milliseconds after a full stop, while YouTube's SRT example uses a comma. Renaming leaves both wrong, so the file may fail or show no captions.

Does SRT support styling like bold or colour?

In YouTube's help pages, SRT is a basic format and no style markup is recognized. Some players may read tags, but we found no official source that says so, so do not rely on it.

Is WebVTT an official web standard?

It is a W3C specification, but the current version is a Candidate Recommendation Draft dated 20 May 2026, not a final Recommendation. The safe wording is specification or candidate recommendation.

Which subtitle format does YouTube prefer?

YouTube's page lists Scenarist Closed Caption as its preferred file format for CEA-608 based captions, while recommending SubRip or SubViewer for beginners. WebVTT is accepted but marked as in initial implementation.

Do SRT and VTT use the same text encoding?

Both come down to UTF-8 in the sources we read. The WebVTT specification requires UTF-8, and YouTube says SRT files must be plain UTF-8. Save as UTF-8 either way to avoid broken characters.