SRT and VTT are the two subtitle formats you will run into most, and at first glance they look almost identical: plain text, a timestamp, a line of dialogue. The differences are small, but they decide whether your captions show up on a website player, keep their position on screen, or get rejected by an upload form. This guide compares SRT vs VTT line by line, shows which platforms want which file, and covers the other formats you might be asked for.

The Short Answer

Use SRT when you are uploading captions to a social platform or importing them into a video editor. It is the format almost everything accepts.

Use VTT (WebVTT) when the captions will play in a web browser through your own site, an HTML5 player or a learning platform, or when you need captions to sit in a specific position on screen.

If you are not sure, keep both. They hold the same text and timing, so exporting both from the same subtitle project costs you nothing.

What Is an SRT File?

SRT stands for SubRip Subtitle. The name comes from SubRip, a Windows program that pulled subtitles off DVDs into plain text files. The format outlived the program because it is about as simple as a subtitle file can be.

Each caption in an SRT file is a block of four parts:

  1. A sequence number (1, 2, 3…)
  2. A timecode line, start and end, in hours:minutes:seconds,milliseconds
  3. One or two lines of caption text
  4. A blank line that ends the block
1
2
3
4
5
6
7
1
00:00:01,200 --> 00:00:04,000
Welcome back to the channel.

2
00:00:04,300 --> 00:00:07,900
Today we're fixing the audio on an old interview.

That is the whole format. There is no header, no official styling, and no way to say where the text should appear. Some players read basic tags such as <i> and <b>, but support is uneven, and YouTube’s help page says it recognizes only basic SRT files with no style markup.

For a deeper look at the format, see our guide What is an SRT file.

What Is a VTT File?

VTT stands for Web Video Text Tracks, usually written WebVTT. It was designed for the web: it is the caption format HTML5 video players read through the <track> element, and it is maintained as a W3C specification.

A VTT file starts with the word WEBVTT on the first line, and then lists cues that look a lot like SRT blocks:

1
2
3
4
5
6
7
8
9
10
11
WEBVTT

NOTE Interview edit, v2

1
00:00:01.200 --> 00:00:04.000
Welcome back to the channel.

2
00:00:04.300 --> 00:00:07.900 line:10% align:center
Today we're fixing the audio on an old interview.

Look at the second cue. The text after the timecode tells the player to show that caption near the top of the frame. SRT has no way to do that. VTT also allows comments (NOTE), CSS-based styling, named regions and metadata cues, all of which are optional.

Our guide What is a VTT file walks through each part of the format in more detail.

SRT vs VTT: The Differences, Side by Side

SRT vs VTT side by side
SRTVTT (WebVTT)
Full nameSubRip SubtitleWeb Video Text Tracks
File headerNoneMust start with WEBVTT
Cue numbersRequiredOptional (any text label works)
Timestamp separatorComma: 00:00:01,200Period: 00:00:01.200
Hours in timestampAlways writtenOptional (01:01.200 is valid)
PositioningNot supportedLine, position, size and alignment per cue
StylingUnofficial basic tags, often ignoredBold, italic, underline, CSS via ::cue
Comments and metadataNoNOTE blocks and metadata cues
Text encodingNot defined, UTF-8 is safestUTF-8 required
Native browser playbackNoYes, through HTML5 <track>
Best forUploads to social platforms and editorsWebsites, HTML5 players, streaming

Three of these rows cause most real-world problems.

The Timestamp Comma

SRT uses a comma before the milliseconds. VTT uses a period. If you rename an .srt file to .vtt without changing anything else, a browser will refuse to load it, partly because the header is missing and partly because every timestamp is wrong. This is the most common reason a “converted” VTT file shows no captions.

Positioning

When text is burned into the bottom of your footage, such as a lower-third name card, bottom-aligned captions sit right on top of it. VTT lets you move individual cues up the frame. With SRT, the player decides, and it almost always puts captions at the bottom.

Encoding

SRT never defined a character encoding, so older files are sometimes saved in a regional encoding and turn accented letters into gibberish on upload. VTT requires UTF-8. If you work in languages with accents or non-Latin scripts, save SRT files as UTF-8 too.

Which Format Does Each Platform Accept?

Most upload forms take SRT. Browser-based players lean towards VTT. Here is where the common destinations stand:

  • YouTube: accepts both. Its help page recommends basic formats such as SRT for beginners and ignores styling inside SRT files. Our guide to adding subtitles to YouTube videos covers the upload steps.
  • Facebook: SRT, with the language in the filename, for example video.en_US.srt. See how to add captions to Facebook videos.
  • LinkedIn: SRT.
  • Vimeo: accepts both SRT and VTT, along with several broadcast formats.
  • Your own website (HTML5 video): VTT only. Browsers do not play SRT through the <track> element.
  • Learning platforms and web players: most use VTT under the hood. Many accept an SRT upload and convert it, but VTT avoids the conversion step.
  • Premiere Pro and most desktop editors: SRT is the safe import. Our Premiere Pro subtitles guide shows the import step.
  • Instagram and TikTok: neither has a caption-file upload in the regular posting flow. Burn the captions into the video instead (more on that below).

Platforms change their upload options from time to time, so check the platform’s help page if an upload fails.

Other Subtitle Formats You Might Meet

SRT and VTT cover most jobs, but a client brief or a platform spec sheet may ask for something else.

FormatExtensionWhat it isWhen you’d use it
Advanced SubStation Alpha.assSubtitles with fonts, colors, outlines, exact positioning and karaoke effectsStyled subtitles for desktop players such as VLC and mpv, fan subtitling, anime
SubViewer.sbvA simple text format YouTube used to exportOlder YouTube caption files
TTML / DFXP.ttml, .dfxp, .xmlXML-based timed text with styling and layoutStreaming services, broadcast delivery specs
Scenarist Closed Captions.sccThe broadcast closed caption format for North American TVTV delivery, some ad networks
Plain transcript.txtThe words with no timingShow notes, blog posts, translation review

A TXT file is not a subtitle file, but it is often what people actually need when they ask for “the captions.” If you want the words for an article or a podcast page, a transcript is the right file. Our audio transcription tool produces one directly.

How to Convert SRT to VTT (and Back)

Because the two formats are so close, you can convert a short file by hand in any text editor.

SRT to VTT

  1. Open the .srt file in a plain text editor.
  2. Add WEBVTT as the very first line, followed by a blank line.
  3. Replace the comma in every timestamp with a period (00:00:01,200 becomes 00:00:01.200). Use find and replace on , only inside the timecode lines, or you’ll change commas in your dialogue too.
  4. Leave the sequence numbers. VTT treats them as cue labels.
  5. Remove <font> tags if there are any. VTT does not support them.
  6. Save as UTF-8 with a .vtt extension.

VTT to SRT

  1. Delete the WEBVTT header line and any NOTE, STYLE or REGION blocks.
  2. Delete any cue settings after the timecodes, such as line:10% align:center.
  3. Add hours to any short timestamp (01:01.200 becomes 00:01:01.200).
  4. Replace the period in each timestamp with a comma.
  5. Make sure every cue has a sequence number, starting at 1.
  6. Save with a .srt extension.

For anything longer than a few minutes, hand conversion is slow and easy to get wrong. It is faster to export the format you need from the tool that made the subtitles in the first place.

Sidecar File or Burned-In Captions?

SRT and VTT are both sidecar files: separate files that play alongside the video, which viewers can usually switch on or off. That makes them good for accessibility, for search engines that read caption text, and for offering several languages on one video.

The alternative is to burn captions into the video frame so they are always visible. That is the only option on platforms with no caption upload, and it guarantees your styling looks the same everywhere. The trade-off is that viewers cannot turn the captions off and you need a separate export per language. Our guide to hardcoded subtitles explains when each approach makes sense.

How to Get SRT and VTT Files From One Project

Writing timecodes by hand is fine for a 30-second clip. For anything longer, generate the subtitles automatically and fix them, rather than typing them.

In SubtitleBee you upload the video, choose the spoken language, and the AI transcribes it into timed subtitles. Transcription works in 60+ languages, and accuracy can reach up to 95% on clear audio, so plan a quick proofread before you export.

Editing subtitles in SubtitleBee

When the text and timing look right, open the export options and pick the file you need:

SubtitleBee subtitle export options
  • SRT and TXT downloads are available from the Starter plan.
  • VTT and ASS downloads are available on the Premium and Business plans.
  • On the free plan you can generate and edit subtitles, but subtitle file downloads are not included, and video exports carry a watermark.

You can also translate your subtitles into 100+ languages and export each language as its own file, which is handy for YouTube and Vimeo, where you can attach several caption tracks to one video. Plan details are on the pricing page.

If you’d rather build files manually, we have step-by-step guides for creating an SRT file and creating a VTT file.

Frequently Asked Questions

Is VTT Better Than SRT?

Neither is better overall. VTT can do more (positioning, styling, comments, metadata) and is the format browsers play natively. SRT is simpler and more widely accepted by upload forms and video editors. Pick based on where the file is going.

Can I Convert SRT to VTT?

Yes. Add a WEBVTT header line, change the comma in every timestamp to a period, and save the file as UTF-8 with a .vtt extension. The steps are listed in the conversion section above. Going from VTT to SRT means removing the header, comments and cue settings, and switching periods back to commas.

Does YouTube Use SRT or VTT?

YouTube accepts both, along with several other formats. SRT is the simplest choice for most creators. YouTube ignores styling inside SRT files, so do not rely on SRT tags for colors or bold text there.

What Is an SRT or VTT File?

Both are plain text files that store caption text with start and end times, so a video player can show each line at the right moment. SRT is the older, simpler format from desktop video. VTT is the web format, built for HTML5 video players.

Can I Just Rename an .srt File to .vtt?

No. A VTT file needs the WEBVTT header and periods instead of commas in its timestamps. A renamed SRT file usually fails to load in a browser player with no error message, so the captions simply do not appear.

Which Subtitle Format Is Best for Social Media?

SRT, for the platforms that accept caption uploads, such as YouTube, Facebook and LinkedIn. For Instagram Reels and TikTok, burn the captions into the video, because neither offers a caption-file upload in the normal posting flow.

Export the Format You Need, Not the One You Have

Most of the time you will want SRT for uploads and VTT for the web, and the easiest way to have both is to keep one subtitle project and export from it. Create a free SubtitleBee account to generate and proofread your subtitles, then download the format each platform asks for.

Try SubtitleBee