What is WebVTT?
WebVTT (Web Video Text Tracks) is the subtitle and caption format defined by the W3C for use with HTML5 video. It is what the <track> element uses for captions. If you are publishing video on the web and want the browser to handle subtitle rendering natively, WebVTT is what you need.
History
WebVTT was introduced around 2010 alongside the HTML5 <track> element. The original goal was to standardise a lightweight format that browsers could parse without a JavaScript library. Before WebVTT, web video players used SRT — but SRT was not designed for the web and did not support the features a web player needed (styling, positioning, chapters).
WebVTT was proposed by Google, based on the earlier SubRip format, and standardized by the W3C in 2019 as the WebVTT specification.
Structure
WEBVTT 1 00:00:01.000 --> 00:00:04.000 Hello and welcome. 2 00:00:05.500 --> 00:00:08.750 This is a WebVTT file.
The key differences from SRT:
- A required
WEBVTTheader on the first line. - Milliseconds are separated by a period (not comma).
- Cue identifiers are optional (SRT requires cue numbers).
- The hour field is optional for videos under one hour (MM:SS.mmm works).
Features that SRT does not have
- Cue settings. Per-cue positioning: line, position, size, align.
- STYLE blocks. CSS styling inside the file.
- REGION blocks. Named positioning regions.
- Voice tags.
<v Speaker>identifies the speaker. - Classes.
<c.classname>for CSS targeting. - Ruby annotations.
<ruby>and<rt>for CJK reading aids.
Browser support
WebVTT is natively supported by every modern browser: Chrome, Firefox, Safari, Edge. When you use <track kind="captions" src="file.vtt">, the browser parses the VTT file and renders cues over the video.
SRT is not natively supported by <track>. To use SRT in HTML5 video, you must either convert it to WebVTT or use a JavaScript player (like Video.js or Plyr) that handles the parsing.
When to use WebVTT
- Any HTML5
<video>that needs captions. - Custom JavaScript video players.
- Web-first content that may benefit from styling or positioning.
- Accessibility captions for deaf and hard-of-hearing audiences.
When to use SRT instead
- Desktop video players (VLC, MPC-HC, mpv).
- Editing software (Premiere, Final Cut, DaVinci Resolve).
- YouTube uploads.
- Broadcast and DVD workflows.
- Anywhere maximum compatibility matters more than features.
Converting between formats
SRT → VTT: SRT to VTT Converter. Adds the header, changes comma to period, preserves dialogue.
VTT → SRT: VTT to SRT Converter. Removes the header, changes period to comma, renumbers cues, drops unsupported VTT features.
Common mistakes
- Forgetting the
WEBVTTheader. - Using commas for milliseconds (that is SRT syntax).
- Using ASS-style position tags like
{\an8}(those are ASS, not VTT). - Saving as non-UTF-8 encoding.
- Adding a blank line before the header — the header must be the first line.