Skip to content

VTT Files Explained: What They Are & How to Create One

Learn how to create a VTT file for video captions using a plain text editor. Includes format examples, VTT vs SRT comparison, common mistakes, and free tools.

An editor placing blank caption blocks beneath a video timeline in an edit suite, painterly editorial illustration
📋
TL;DR
What it is: A VTT (WebVTT) file is a plain text file that displays subtitles in web video players.
The format: It must start with "WEBVTT" and use timecodes like 00:00:05.000.
The tools: You can create one using Notepad (Windows) or TextEdit (Mac).
The rule: Always save your file with UTF-8 encoding to prevent text errors.

VTT is one of the most searched caption formats on the web -- and for good reason. Whether you need to understand the file format, compare it against SRT, or create one from scratch, this guide covers all three.

What Is a VTT File?

A VTT file (Web Video Text Tracks, or WebVTT) is a plain text file used to display subtitles, captions, or metadata in web video players. It is the HTML5 standard for timed text, supported by virtually every modern browser and video platform including YouTube, Vimeo, and Video.js (MDN, 2026).

A VTT file uses the .vtt extension and contains three things:

  1. A WEBVTT header on the first line.
  2. Timecodes that define when each caption appears and disappears.
  3. Cue text -- the actual words displayed on screen.

Here is what a minimal VTT file looks like:

WEBVTT

00:00:01.000 --> 00:00:04.000
Welcome to this tutorial on creating captions.

00:00:05.000 --> 00:00:09.000
You can position text anywhere on the screen.

Unlike its predecessor SRT, VTT was designed specifically for the web. It supports text styling (bold, italics, color), caption positioning (top, bottom, left-aligned), and metadata headers -- none of which SRT can do.

In fact, 41% of videos are incomprehensible without sound or captions (3PlayMedia, 2025), making VTT files essential for accessibility and engagement.

The WebVTT File Structure

A VTT file relies on strict formatting. If you miss a single blank line or use a comma instead of a period, the entire file might fail to load. The structure is simple but unforgiving.

Every VTT file has three core components:

  1. The Header: The very first line must read WEBVTT.
  2. The Timecodes: Defining exactly when text appears and disappears.
  3. The Cues: The actual text content displayed to the viewer.

Example of a Valid VTT File

WEBVTT

00:00:01.000 --> 00:00:04.000
Welcome to this tutorial on creating captions.

00:00:05.000 --> 00:00:09.000 align:start line:0%
You can even position text at the top of the screen.
Developer coding on a laptop screen

How to Open a VTT File

Because a VTT file is plain text, you don't need special software to open one. Right-click the .vtt file, choose Open With, and pick Notepad on Windows, TextEdit on Mac, or a code editor like VS Code. You'll see the WEBVTT header, the timecodes, and your caption lines in readable form.

To preview the captions on an actual video, load them into a media player instead. In VLC, keep the .vtt file in the same folder with a filename that matches the video, or add it through Subtitle > Add Subtitle File. Most HTML5 video players read the same VTT track the moment you point a caption track at the file.

VTT vs. SRT: What's the Difference?

Before you start creating, it's worth knowing why VTT exists alongside SRT. While SRT (SubRip) is the old guard of subtitles, VTT (Web Video Text Tracks) is the modern standard for the web.

Here is how they compare:

Feature SRT Format VTT Format
Timecode Format Comma for milliseconds (00:00:05,000) Period for milliseconds (00:00:05.000)
Styling Very limited (basic HTML) Rich styling (color, font, bold)
Positioning None (always bottom center) Flexible (top, align left, vertical text)
Metadata No metadata support Supports comments and metadata headers

For most modern web uses, including uploading to platforms like YouTube or hosting on your own site, VTT is the superior choice.

For more on the technical side of video files, check out our guide on video metadata.

How to Convert an SRT File to VTT

If you already have subtitles in SRT format, you don't need to retype them. Converting SRT to VTT takes two small changes:

  1. Add the header. Type WEBVTT on the very first line, followed by a blank line, above your existing cues.
  2. Fix the timecodes. Replace the comma in each timestamp's milliseconds with a period, so 00:00:05,000 becomes 00:00:05.000.
  3. Save as .vtt. Save the file with UTF-8 encoding and change the .srt extension to .vtt.

That is the entire difference between the two formats. For a short file you can make these edits by hand in any text editor; for longer subtitle tracks, a free online SRT-to-VTT converter does the same job in one step.

How to Create a VTT File Manually

You don't need expensive software to build this file. A simple text editor is all you need. Here is how to do it on Windows and Mac.

On Windows (Using Notepad)

  1. Open Notepad (search for it in the Start menu).
  2. Type WEBVTT on the first line. Hit Enter twice to leave a blank line.
  3. Type your first timecode: 00:00:01.000 --> 00:00:05.000.
  4. On the next line, type your caption text.
  5. Hit Enter twice to create a blank line before the next cue.
  6. Go to File > Save As.
  7. Name your file captions.vtt.
  8. Crucial Step: Under "Encoding," select UTF-8. If you save as ANSI, special characters will break.

On Mac (Using TextEdit)

  1. Open TextEdit.
  2. In the menu bar, click Format > Make Plain Text (Shift+Cmd+T). Do not skip this--rich text files (.rtf) will not work as subtitles.
  3. Type WEBVTT on the first line and hit Enter twice.
  4. Enter your timecodes and text following the format above.
  5. Go to File > Save.
  6. Name your file captions.vtt.
  7. If asked about the extension, choose "Use .vtt".
🚀
Need faster video hosting?
Uploading VTT files is just one step. Ideally, your video player should handle captions automatically without slowing down your site. See how SmartVideo handles this for you.

Common Mistakes That Break VTT Files

We see VTT files fail all the time due to tiny syntax errors. Avoid these common traps:

1. Using Commas Instead of Periods
SRT files use commas (00:00:05,000). VTT files use periods (00:00:05.000). If you simply rename an SRT file to .vtt without changing the punctuation, it will fail.

2. Missing the "WEBVTT" Header
The file must start with WEBVTT. If there are spaces or blank lines before it, the browser won't recognize the file format.

3. Not Using UTF-8 Encoding
If your captions include accents, emojis, or non-English characters, saving in standard ANSI encoding will turn them into garbled text. Always choose UTF-8 when saving.

4. Forgetting the Blank Line
There must be a blank line between the header and the first cue, and a blank line between every subsequent cue block.

Video editing timeline on a monitor

Advanced VTT Features: Styling and Positioning

One huge advantage VTT has over SRT is the ability to control where captions appear. This is vital if you have embedded videos where lower-thirds graphics might get covered by standard subtitles.

You can add settings directly after the timecode:

00:00:05.000 --> 00:00:10.000 align:start line:0%

  • align:start -- Aligns text to the left.
  • line:0% -- Moves text to the very top of the video.
  • size:50% -- Restricts the text width to half the screen.

This flexibility allows you to ensure captions never block critical visual information, which is a key part of optimizing your streaming performance and user experience.

Tools That Make This Easier

While manual creation is great for learning or small fixes, creating a VTT file for an hour-long webinar manually is tedious. For longer content, you might consider:

Regardless of the tool you use, knowing the manual format helps you fix typos or timing errors instantly without re-uploading or paying for re-processing.

Frequently Asked Questions

What is a .vtt file?

A .vtt file (WebVTT) is a plain text file that displays timed subtitles or captions in web video players. It starts with "WEBVTT" on the first line and contains timecodes paired with caption text. All modern browsers and platforms support it natively (MDN, 2026).

What creates a VTT file?

You can create a VTT file using any plain text editor like Notepad (Windows) or TextEdit (Mac). There are also automated tools like Rev or YouTube Studio that can generate them for you (Mozilla, 2026).

Can I convert SRT to VTT?

Yes. To convert manually, change the timecode commas to periods (e.g., 00:00:05,000 becomes 00:00:05.000) and add "WEBVTT" to the very first line of the file.

Is VTT better than SRT?

For web video, yes. VTT supports styling (bold, italics), positioning (top/bottom alignment), and metadata, which SRT lacks. VTT is the HTML5 standard for subtitles.

Do VTT files help with SEO?

Indirectly, yes. While Google doesn't "watch" video, it indexes the text track. Accurate captions help search engines understand your video content, potentially improving visibility (3PlayMedia, 2025).

Why are my VTT captions not showing up?

The most common reasons are missing the "WEBVTT" header, using the wrong timecode format (commas instead of periods), or saving the file in a format other than UTF-8.

What video players support VTT?

Almost all modern HTML5 players support VTT, including YouTube, Vimeo, Video.js, JW Player, and SmartVideo. It is the industry standard for web playback.

How long does it take to caption a video manually?

It typically takes 5-10 times the length of the video to caption it manually. A 5-minute video might take 25-50 minutes to transcribe and timestamp accurately.

Are captions required by law?

In many cases, yes. The Americans with Disabilities Act (ADA) and other global regulations increasingly require digital content to be accessible to people with hearing impairments (ADA.gov, 2026).

Final Thoughts

Creating a VTT file is a straightforward skill that adds immense value to your video content. By ensuring your videos are accessible, you open your message to millions more viewers. If you are looking for more ways to optimize your video workflow, check out our guide on video hosting platforms to find the best home for your content.

Once you have your VTT file ready, you need a player that delivers it seamlessly alongside your high-quality video. SmartVideo ensures your subtitles load instantly without buffering, keeping your viewers engaged from start to finish.

Put video on your site without the YouTube baggage

Embed any video ad-free, branding-free, and fast to load — no logos, no buffering, no speed penalty. On any platform.

Try SmartVideo Free Trusted by 3,000+ websites
/ to search · navigate · Enter select