Guide

What is a VTT file? WebVTT example and free converter for 2027

VideoText editorial team · October 31, 2026 · 8 min read

Summary

  • A VTT file (WebVTT, .vtt) is the web's standard caption format, defined by the W3C. It is what the HTML5 <track> element expects.
  • Every file starts with the line WEBVTT, timings use a dot before the milliseconds, and cues can carry position, alignment and styling that SRT cannot.
  • Open one in any text editor; convert it with free browser tools; or create one straight from a video.
  • Convert an SRT to VTT for free, or create a VTT from your MP4 in Video to Subtitles.

If a web player, course platform or website asked you for "captions in VTT", it wants a WebVTT file: a plain-text file of timed captions that browsers can display natively. It looks almost like an SRT, and that near-match is exactly what trips people up. Rename an SRT to .vtt and it looks right, but it won't load.

This guide shows a real VTT example, explains the parts that differ from SRT, and shows how to open, convert and create one. For a one-paragraph definition, see our WebVTT glossary entry.

Have an SRT and need a VTT? Convert it free in your browser. No account, and the file is not uploaded.

VTT file example

WEBVTT

00:00:01.000 --> 00:00:04.200
Welcome to the product walkthrough.

intro-2
00:00:04.300 --> 00:00:08.000 line:85% align:center
We'll cover setup, exports
and delivery.

NOTE Client asked for captions above the lower third from here on.

00:08.100 --> 00:11.500
<v Maya>Let's start with the upload.

Save it as example.vtt with UTF-8 encoding and it plays in any browser that supports the <track> element.

The parts of a VTT file

Part Example Rule
Header WEBVTT Must be the very first line. Text may follow after a space, then a blank line
Cue identifier (optional) intro-2 A label on its own line above the timing. Unlike SRT, numbers aren't required
Timing line 00:00:04.300 --> 00:00:08.000 Dot before milliseconds. Hours are optional when zero (00:08.100)
Cue settings (optional) line:85% align:center After the end time, on the same line
Cue text We'll cover setup, exports One or more lines, ended by a blank line
Comments (optional) NOTE … Ignored by players. Useful for production handover

Cue settings: position and alignment

Cue settings are where VTT earns its place over SRT. The W3C specification defines:

  • line: the vertical position, as a line number or percentage (for example line:10% to move a caption to the top while a lower third is on screen)
  • position: the horizontal position of the cue box, as a percentage
  • size: the width of the cue box, as a percentage
  • align: text alignment: start, center, end, left or right
  • vertical: vertical text (rl or lr) for scripts that need it
  • region: attaches the cue to a region defined in the header, used for roll-up captions

Styling and voice tags

Cue text can include <b>, <i>, <u>, <ruby>, class spans like <c.highlight>, language spans and voice spans like <v Maya> that mark the speaker. Pages can style cues with the CSS ::cue selector, and the file can hold STYLE blocks. Player support varies, so test on the player you deliver to. If the look must be guaranteed everywhere, burn the captions into the picture instead; see best font for subtitles.

VTT vs SRT: the differences that matter

VTT (WebVTT) SRT
First line WEBVTT (required) Cue 1
Millisecond separator Dot: 00:01:23.456 Comma: 00:01:23,456
Hours in timestamps Optional Required
Cue numbers Optional identifiers Expected
Position and styling Cue settings, CSS, voice tags Not official
Comments NOTE blocks None
HTML5 <track> Supported Not supported
Typical use Web players, websites, e-learning Editors, desktop players, most uploads

Rule of thumb: use VTT for anything that plays in a browser, and SRT for editing software and as the safest interchange file. The full comparison, including ASS, TTML, SBV and SCC, is in our subtitle file formats guide.

How to open a VTT file

  1. Text editor. A VTT is plain text, so any plain-text editor opens it. Don't save it from a word processor, which can change the encoding.
  2. Browser or media player. Most players can load a .vtt next to the video. On a web page, add it with a <track> element (example below).
  3. Free checker. Paste it into the subtitle validator, which reads SRT and VTT line by line in your browser and flags timing and format errors by cue.

To put a VTT on your own web page:

<video controls src="talk.mp4">
  <track kind="subtitles" src="talk.vtt" srclang="en" label="English" default>
</video>

The .vtt file has to be served from the same origin as the page, or with CORS headers that allow it.

How to convert a VTT file

  • SRT to VTT: the free SRT to VTT converter adds the WEBVTT header and changes each comma to a dot. Text and timing stay exactly as they were.
  • VTT to SRT: the free VTT to SRT converter removes the header, swaps dots back to commas and numbers the cues. VTT-only features (cue settings, voice tags, CSS classes) are stripped because SRT has no syntax for them; the words and timings are kept.
  • VTT to plain text: the free SRT to text tool also strips timings from VTT files, for show notes or a transcript draft.

All three run in your browser, and your file is not uploaded.

Convert in one click: SRT to VTT · VTT to SRT

How to create a VTT file from an MP4

Writing timings by hand only works for a handful of cues. For a real video:

  1. Upload the MP4 (or MOV, MKV, WebM or an audio file) to Video to Subtitles.
  2. Choose the spoken language from the list, or leave it on auto-detect, and generate.
  3. Download VTT. The SRT comes from the same cues, so both files match.
  4. Optional: review cues against the video, add a translated file with the same timing, or carry the cues into Subtitle Style Studio to style and burn them in.

Free accounts handle files up to 30 minutes and 2 GB, with no card. Free downloads include two short watermark cues (one at the start, one after the last cue); Pro removes them, lets you edit cues, and handles files up to 4 hours.

Then run the file through Fix Subtitles if the checks flag overlaps, lines that are too long or captions that go by too fast to read. It accepts SRT and VTT up to 20 MB and never changes your original file.

Make a VTT from your video now: start in Video to Subtitles, free with an account.

Common VTT problems

Problem Cause Fix
Player shows no captions Missing WEBVTT header, or an SRT renamed to .vtt Convert properly with SRT to VTT
Captions work locally, not on the site File served from another domain without CORS, or wrong MIME type Serve it from the same origin (or with CORS headers) as text/vtt
Gibberish characters File not saved as UTF-8 Re-save as UTF-8; WebVTT requires it
Cue settings ignored Player doesn't support them Test on the target player, or burn captions in
Speaker labels vanish after converting to SRT SRT has no voice tags Keep the VTT as the master, or write names into the text

Translating a VTT

Translate Subtitles takes your SRT or VTT and returns the same format in any of 104 target languages, with every cue's timing kept. Check each translated file in Fix Subtitles before delivery, because translated lines often run longer. Delivering forced subtitles (captions only for foreign-language lines or on-screen text)? They usually go in their own VTT next to the main track; see what forced subtitles are.

FAQ

What is a VTT file? A WebVTT file: a plain-text caption file that starts with WEBVTT and lists timed cues. Browsers display it through the HTML5 <track> element.

How do I open a VTT file? In any plain-text editor, in a media player next to the video, or in the free subtitle validator to check it.

Is VTT the same as SRT? No. They hold the same essentials, but VTT needs the WEBVTT header, uses a dot before milliseconds, and supports position and styling. Convert between them rather than renaming.

How do I create a VTT file from an MP4? Upload the MP4 to Video to Subtitles and download VTT. A free account covers files up to 30 minutes.

Will converting VTT to SRT lose anything? Text and timing are kept. VTT-only features such as cue settings, voice tags and CSS classes are removed because SRT can't store them.

Next step

Convert your SRT to VTT for free, or create a VTT straight from your video, then check it in the validator. For long videos, cue editing and downloads without watermark cues, Pro is $14.99/month or $120/year, with files up to 4 hours.

Related guides and tools


Sources: W3C, "WebVTT: The Web Video Text Tracks Format" (https://www.w3.org/TR/webvtt1/) for the header, timestamp, cue settings, comment, styling, voice span and UTF-8 rules and the VTT vs SRT table; WHATWG HTML Living Standard, the track element (https://html.spec.whatwg.org/multipage/media.html#the-track-element); VideoText SRT to VTT, VTT to SRT, SRT to text, subtitle validator, Video to Subtitles, Fix Subtitles, Translate Subtitles and pricing pages, https://videotext.io/tools/srt-to-vtt, https://videotext.io/tools/vtt-to-srt, https://videotext.io/tools/srt-to-text, https://videotext.io/tools/subtitle-validator, https://videotext.io/video-to-subtitles, https://videotext.io/fix-subtitles, https://videotext.io/translate-subtitles and https://videotext.io/pricing (checked October 31, 2026).

Related guides