WebVTT MIME Type
text/vtt files contain, how WebVTT cues work, which browsers support them, and how Poly handles .vtt files. MIME type details for text/vtt
In active use| MIME type | text/vtt |
|---|---|
| Extensions | .vtt |
| Magic number | 57 45 42 56 54 54 (WEBVTT) |
| First standardized | 2014 |
| Created by | World Wide Web Consortium |
| Browser support | Chrome, Edge, Firefox, Opera, Safari |
| Example applications | Google Chrome, Mozilla Firefox |
| Poly support | Yes. Poly recognizes `.vtt` files as readable WebVTT text tracks. |
| Indexed by Poly | Yes. Poly indexes the readable file contents for full-text and semantic search. |
| Preview in Poly | Yes. WebVTT files open in Poly's text editor, where cue timing, text, and markup remain visible. |
| Poly agent | Yes. The Poly agent can read and reason about the WebVTT text, timing, and cue structure. |
What does text/vtt mean?
The text/vtt media type identifies a Web Video Text Tracks file, usually called WebVTT. A .vtt file stores text cues aligned to a media timeline. Those cues most often provide subtitles or captions, but the format also supports descriptions, chapters, and time-based metadata.1
WebVTT is a UTF-8 text format. A conforming file starts with the signature WEBVTT, optionally preceded by a UTF-8 byte-order mark. The registered extension is .vtt, and the media type has no required or optional parameters.2
What is inside a WebVTT file?
Most WebVTT files are easy to inspect in a text editor. After the WEBVTT header, each cue normally contains a start time, an end time, and a payload:
WEBVTT
00:00:02.000 --> 00:00:05.000
Welcome to the presentation.
00:00:05.500 --> 00:00:08.000
Today we will discuss WebVTT.
A blank line separates cues. Cue identifiers are optional. Settings after the timestamp can control alignment, position, size, and writing direction. The format can also contain NOTE, STYLE, and REGION blocks, while cue text supports a restricted markup vocabulary for features such as voices, language spans, emphasis, and ruby annotations.3
The timestamp syntax matters. Hours are optional for shorter times, milliseconds use three digits, and the cue's end time must be later than its start time. A plain-text editor will let you change any of this, but it will not tell you whether the cues overlap badly or appear too quickly to read.
How WebVTT became a web standard
WebVTT grew from work on text tracks in the HTML standard, using the SubRip community's SRT format as an important starting point.3 W3C published the first public working draft of the standalone WebVTT specification on November 13, 2014. It advanced to Candidate Recommendation in 2018 and remains under active development.4
The format was designed to work directly with HTML media. A web page associates a .vtt resource with an <audio> or <video> element through <track>. The track's kind can identify subtitles, captions, descriptions, chapters, or metadata, while srclang declares its language.5
That integration is a major difference from treating captions as a loose transcript. The browser keeps each cue tied to playback time and can expose the track through the WebVTT API. Authors can provide several language or accessibility tracks and let the user choose the one they need.1
How to open and use a .vtt file
Chrome, Edge, Firefox, Opera, and Safari support WebVTT text tracks with HTML media. Support for individual features varies. For example, MDN notes that the specification's ::cue-region styling feature is not currently supported by browsers.1
You have a few practical ways to work with a file:
- Open it in any UTF-8 text or code editor to inspect and edit its cues.
- Reference it from an HTML
<track>element to test it against audio or video. - Use a caption editor when you need waveform-based timing, reading-speed checks, or visual placement controls.
- Use the browser's
TextTrackandVTTCueAPIs when an application needs to inspect or create cues in JavaScript.1
Opening the .vtt URL directly may show raw text or download the file. The usual browser experience comes from attaching it to media, not navigating to it as a standalone document.
Support in Poly
Poly recognizes the .vtt extension and text/vtt media type as WebVTT text. You can open the file in Poly's code-friendly text editor and inspect its header, cue timestamps, payload text, and markup. Poly does not pair a standalone WebVTT file with its source video automatically, so this preview is an editable text view rather than synchronized caption playback.
The readable contents are available to exact and semantic search. This makes it possible to find spoken lines, speaker labels, timestamps, and other text stored in the file. Poly also makes the file available to the agent, which can summarize the transcript, reason about cue timing, or help revise caption wording.
Poly reads the file as text. It does not need to execute embedded code, and WebVTT itself does not support scripting.3 A malformed file may still be readable as text even if a browser or video player rejects some cues.
WebVTT compared with SRT
WebVTT and SubRip (.srt) both organize caption text into timed cues, and WebVTT's design was based partly on SRT.3 They are similar enough to convert, but they are not the same syntax.
| Feature | WebVTT (.vtt) | SubRip (.srt) |
|---|---|---|
| File header | Starts with WEBVTT | No equivalent required header |
| Millisecond separator | Period, as in 00:02.500 | Usually comma, as in 00:00:02,500 |
| Cue numbers | Optional cue identifiers | Commonly numbered in sequence |
| Positioning and styling | Defined cue settings, regions, and restricted styling | Depends on the player or conversion tool |
| Native HTML use | Designed for the <track> element | Usually converted to WebVTT for direct web use |
Renaming captions.srt to captions.vtt is not a conversion. At minimum, a converter needs to add the WebVTT header and rewrite timestamps. It should also validate cue ordering and decide what to do with formatting that has no exact equivalent.
Converting WebVTT to other formats
Choose the output according to where the captions will be used:
- SRT is useful for workflows or players that request SubRip captions. Expect WebVTT-specific positioning, regions, styles, and metadata to be simplified or removed.
- Plain text works for reading, quoting, or natural-language processing. Removing timestamps and markup produces a transcript, but loses the link between words and playback time.
- TTML is useful in systems that require an XML-based timed-text format. Conversion should be tested because layout and styling models differ.
- Another WebVTT file may be the safest target when you only need to retime, translate, or clean captions without discarding WebVTT features.
Always review converted captions against the media. Automated conversion can preserve timestamp values while still producing unreadable line breaks, incorrect speaker changes, or overlapping cues.
Accessibility, privacy, and security
Captions can make media usable for people who are deaf or hard of hearing, and subtitle tracks can provide translations. HTML also defines text-track roles for descriptions and chapter navigation.5 A valid file alone does not guarantee accessible captions. Accuracy, speaker identification, sound descriptions, timing, and readable line breaks still require editorial attention.
A .vtt file may reveal the complete dialogue, speaker names, chapter labels, or private events that occur in the media. Treat it as publishable content and review it separately from the video.
WebVTT does not include scripting. Its styling rules also prohibit fetching external resources. Even so, the specification recommends defensive parsing of unusually long lines and numeric values, and warns that poorly designed applications can misuse rapid metadata cues as triggers.3
Footnotes
- MDN Web Docs. WebVTT API. ↩ ↩2 ↩3 ↩4
- Internet Assigned Numbers Authority. text/vtt Media Type Registration. ↩
- World Wide Web Consortium. WebVTT: The Web Video Text Tracks Format. ↩ ↩2 ↩3 ↩4 ↩5
- World Wide Web Consortium. WebVTT Publication History. ↩
- WHATWG. HTML Standard: Media Elements and Text Tracks. ↩ ↩2