Skip to contentAltstamp
Menu

SRT vs VTT: which caption file to use where

SRT (.srt) and WebVTT (.vtt) hold the same thing: caption text with a start and end time. Use WebVTT for video on your own site, because the HTML video player reads WebVTT, and for hosts that prefer it. Use SRT where a platform asks for SRT, as LinkedIn does; SRT is also the only file Facebook's help page names. The words are the same in both; WebVTT adds a header line, a full stop in its times, settings that place a caption and tags that style it. Below, six places a small business posts video, each read on its own help page, then the two files line by line. If you still need the captions written, compare closed captioning software.

Line drawing of two caption files with the same lines, the extra first line on one ringed in orange
Fig. 1Two caption files hold the same lines, and the extra first line of one is ringed in orange

The verdict by use case

  • For video on your own site or on Vimeo

    Vimeo

    Use WebVTT. Vimeo takes both and recommends WebVTT, and WebVTT is the file the HTML track element reads, so one .vtt covers your own player too.

  • For a Facebook or LinkedIn post

    LinkedIn

    Use SRT. LinkedIn says the video needs an SRT file attached before it can be posted, and Facebook's help page names SubRip as its caption format.

  • For captions that must move away from text on screen

    YouTube

    Use WebVTT. YouTube says WebVTT positioning is supported, while for SRT it says no style information is recognised.

Side by side

Scroll sideways to see all vendors.

Which caption file each platform takes, from its own help page
RequirementYouTubeVimeoWistiaFacebookLinkedInPowerPoint
Takes an SRT (.srt) fileYesYesYesYesYesYes
Takes a WebVTT (.vtt) fileYesYesYesNot statedNoYes
Keeps WebVTT positioningYesNot statedNoNot statedNot statedNot stated
Keeps WebVTT styling beyond bold, italic and underlineNoNot statedNoNot statedNot statedNot stated
Says the file must be UTF-8YesYesYesNot statedNot statedYes
Recommends one of the twoYesYesNot statedNot statedNot statedNot stated

The vendors

YouTube

What it is
Google's video host. Its help page lists SubRip among the basic caption files and WebVTT among the advanced ones, beside broadcast formats such as SCC.
Who it fits
A business that embeds its videos from YouTube and wants captions to move out of the way of text on screen.
  • Takes an SRT (.srt) fileYes
  • Takes a WebVTT (.vtt) fileYes
  • Keeps WebVTT positioningYes
  • Keeps WebVTT styling beyond bold, italic and underlineNo

YouTube supported caption files

Vimeo

What it is
A video host for business and creative work. It takes SRT and WebVTT caption and subtitle files, and says which of the two it prefers.
Who it fits
A business that hosts its video on Vimeo and also plays files on its own site, so one WebVTT file serves both.
  • Takes an SRT (.srt) fileYes
  • Takes a WebVTT (.vtt) fileYes
  • Recommends one of the twoYes
  • Says the file must be UTF-8Yes

Vimeo help on adding captions

Wistia

What it is
A video host built for marketing. You can upload as many SRT or VTT files as you like, but a WebVTT file is turned into SRT on upload.
Who it fits
A business whose product and marketing videos live on Wistia: send SRT and nothing is lost in a conversion.
  • Takes an SRT (.srt) fileYes
  • Takes a WebVTT (.vtt) fileYes
  • Keeps WebVTT positioningNo
  • Says the file must be UTF-8Yes

Wistia help on transcripts and captions

Facebook

What it is
Meta's social network. Its help page names one caption file format for an uploaded video: SubRip (.srt).
Who it fits
A business that uploads video straight to its Facebook page rather than sharing a link to another host.
  • Takes an SRT (.srt) fileYes
  • Takes a WebVTT (.vtt) fileNot stated
  • Keeps WebVTT positioningNot stated
  • Says the file must be UTF-8Not stated

Facebook help on video captions

LinkedIn

What it is
The business network. Captions go on when you share a video from a computer, and the file it asks for is an SRT.
Who it fits
A business that posts hiring, product or event clips to its LinkedIn page.
  • Takes an SRT (.srt) fileYes
  • Takes a WebVTT (.vtt) fileNo
  • Keeps WebVTT positioningNot stated
  • Says the file must be UTF-8Not stated

LinkedIn help on closed captions

PowerPoint

What it is
Microsoft's slide software. It reads WebVTT caption files for videos in a deck, and newer versions on Windows and Mac also read SRT saved as UTF-8.
Who it fits
A business that plays a video inside a deck at a webinar, a training session or a sales call.
  • Takes a WebVTT (.vtt) fileYes
  • Takes an SRT (.srt) fileYes
  • Says the file must be UTF-8Yes
  • Keeps WebVTT positioningNot stated

Microsoft help on captions in PowerPoint

SRT and VTT side by side, line by line

WebVTT was built on SRT, and W3C's own WebVTT specification thanks the SubRip community for the format it started from. So the two files look almost the same: a number or name, a start and end time joined by an arrow, the caption text, a blank line. SRT never got a formal standard; the Library of Congress calls it a very simple text format that is not well standardized. Here are the same two captions in each.

clip.srt (SRT)

1
00:00:04,200 --> 00:00:07,000
MARIA: Welcome to the shop.

2
00:00:07,400 --> 00:00:09,800
[door bell rings]

clip.vtt (WebVTT)

WEBVTT

1
00:00:04.200 --> 00:00:07.000
<v Maria>MARIA: Welcome to the shop.

2
00:00:07.400 --> 00:00:09.800 line:10%
[door bell rings]

Four things change. The WebVTT file opens with the word WEBVTT and a blank line. Its times use a full stop before the milliseconds where SRT uses a comma. A WebVTT time line can carry settings after it: the line:10% above moves the second caption near the top of the picture, out of the way of anything shown low on screen. And the <v Maria> voice tag tells software who is speaking; the name written in the text is what a viewer reads, whatever the player does with the tag.

Scroll sideways to see the whole table.

How an SRT file and a WebVTT file differ, part by part
Part of the fileSRT (.srt)WebVTT (.vtt)
First line of the fileThe first caption numberWEBVTT, then a blank line
Caption numbers1, 2, 3 in orderOptional; any unique name
Time format00:00:04,200 (comma)00:00:04.200 (full stop); hours may be left off
Where the caption sitsUp to the playerSettings after the time: line, position, size, align, vertical, region
StylingBasic tags some players readBold, italic, underline, classes and CSS through ::cue
Who is speakingWritten into the textA voice tag, <v Maria>, plus the text
Notes inside the fileNoneNOTE blocks the player skips
Character encodingNo standard; ask for UTF-8Always UTF-8
Who defines itLittle formal documentation; it began with the SubRip programA W3C specification

How to convert SRT to VTT, and back

Renaming clip.srt to clip.vtt is not a conversion: the file still has no WEBVTT line and still has commas in its times, so a web player that reads WebVTT will not accept it. Most caption editors export both formats, and our closed captioning software comparison lists which ones. By hand in a text editor, SRT to WebVTT takes four steps.

  1. Type WEBVTT on a new first line and leave one blank line under it.
  2. Replace the comma in every time with a full stop: 00:00:04,200 becomes 00:00:04.200. Change only the commas inside times, never the ones in the text.
  3. Keep the caption numbers or delete them. WebVTT treats them as names, so each must appear only once.
  4. Save the file as UTF-8 with the .vtt ending.

WebVTT to SRT runs the other way: delete the WEBVTT line and any STYLE or NOTE blocks, cut the settings off the end of each time line, put a comma back before the milliseconds, write any time without hours in full (00:04.200 becomes 00:00:04,200), and number the captions 1, 2, 3. Whatever positioning or styling the WebVTT file had is lost.

Why an upload fails

Wistia's troubleshooting page names the usual faults in an SRT file: an arrow whose hyphens a word processor turned into a long dash, a missing space on either side of the arrow, times out of order, and a file saved as UTF-16 or as UTF-8 with a byte order mark. Edit caption files in a plain text editor, never in a word processor.

Which one WCAG asks for

Neither. 1.2.2 Captions (Prerecorded) is a Level A criterion in WCAG 2.1 and 2.2, and it asks for captions for all prerecorded audio in synchronized media. It names no file format. What it judges is what the captions say, so an accurate SRT meets it and a careless WebVTT file does not.

What WCAG asks

Captions not only include dialogue, but identify who is speaking and include non-speech information conveyed through sound, including meaningful sound effects.

W3C's understanding text for 1.2.2 Captions (Prerecorded), Level A.

The format matters once the video plays on your own page. W3C's technique H95 shows captions added to an HTML video through a track element like <track kind="captions" src="myvideo_en.vtt">, and the track element reads WebVTT files. Set the kind to captions, not subtitles: subtitles carry only the dialogue. For everything else captions must carry, read our video caption requirements.

A file a platform made for you is a draft. W3C says automatically generated captions do not meet user needs or accessibility requirements unless they are confirmed to be fully accurate; they can be a starting point. Download the draft, fix names, numbers and sound tags, then upload the corrected file. If you would rather pay a person to do it, compare captioning services.

How we compared

Vendor pages read on

Listed: the video hosts, social networks and slide software a small business most often posts a captioned video to. The format facts come from W3C's WebVTT specification and the Library of Congress entry for SRT. Every status word comes from the platform's own help page as read that day. Yes means the page says it. No means the page says it does not, or asks for the other format. Not stated means the page is silent, which is not the same as no.

Platforms change what they accept. Upload one short test file before you caption a whole library.

Verdicts are editorial: no vendor can buy a verdict position or displace another vendor.

No overlay widget is listed. By an overlay we mean a third-party widget or toolbar script sold as making a site conform without changing its source. In April 2025 the FTC approved a final order that bars one overlay vendor from claiming, without evidence to support it, that its automated products can make any website WCAG-compliant. Read the FTC's announcement of the order.

Nothing here is legal advice. For a specific case, ask a lawyer.

Questions

Is VTT better than SRT?

For the web, yes: WebVTT can place a caption, style it and tag the speaker, and W3C calls it the most common caption format on the web. SRT is simpler and is the file some platforms insist on. Neither makes the captions themselves better; the words, the speaker names and the sound tags do that.

Can I rename an .srt file to .vtt?

No. A WebVTT reader checks that the file starts with WEBVTT and stops if it does not, and the times still have commas. Add the WEBVTT line and change the commas in the times to full stops, as in the steps above.

Does YouTube accept VTT files?

Yes. YouTube lists WebVTT among its advanced caption formats and SubRip among the basic ones. It says WebVTT positioning is supported but styling is limited to bold, italic and underline, and that it recognises no style information in an SRT file.

Which caption file does an HTML video player need?

WebVTT. The HTML track element reads .vtt files. Give the track the kind captions, a label and a language, so a viewer can pick it from the player's captions button. Check that the button itself can be reached and worked from the keyboard; our ADA website checklist has a line for the player.

Do I need an SRT and a VTT for the same video?

Often, yes, and it costs nothing: keep the corrected WebVTT file for your own site and Vimeo, and an SRT copy for Facebook, LinkedIn and Wistia. Make every correction in one of them, then convert, so the two never drift apart.