What is a VTT file, and how do you open or convert one?
Updated October 18, 2026
A .vtt file is a WebVTT file: plain text that holds the captions or subtitles of a video, each line with the time it appears and disappears. WebVTT (Web Video Text Tracks) is the caption format of the web. HTML5 video players, YouTube, Vimeo, online course platforms and Zoom recordings all use it.
Because it is plain text, you can open a VTT file in any text editor and read it. Whether a video player shows it is another question, and that is where most problems start.
What is inside a VTT file
Here is a short, complete WebVTT file:
WEBVTT
00:00:01.000 --> 00:00:03.500
Is this seat taken?
00:00:04.200 --> 00:00:06.800 line:10%
<v Mara>Only by my coat.
<i>Please, sit down.</i>
NOTE This line is a comment and is never shown.
Each part has a job:
- The
WEBVTTheader. The first line of the file must be the wordWEBVTT. A player that doesn’t find it refuses the whole file, even if everything below is correct. - Cues. A cue is one subtitle: a timing line, then one or more lines of text, then a blank line. A cue can also have an optional name or number on the line above its timing.
- Timestamps with a period. Times are written
hours:minutes:seconds.milliseconds, with a period before the milliseconds. The hours can be left out, so01:03.500is valid too. - Cue settings. After the end time, settings such as
line:10%,position:oralign:move the text, for example to the top of the screen so it doesn’t cover on-screen writing. - Tags.
<i>,<b>and<u>style the text,<v Mara>names the speaker, and<c.yellow>applies a class a web page can colour. - Notes and styles.
NOTEblocks are comments. ASTYLEblock can hold CSS for the captions, which only web players read.
WebVTT files are always saved as UTF-8, so accented letters and other alphabets are not a problem the way they are with old SRT files.
Where VTT files come from
You usually end up with a .vtt file without asking for one:
- YouTube captions, downloaded with a browser extension or a tool such as yt-dlp. Automatic captions come as VTT with a timing tag on every word.
- Online courses on platforms such as Udemy or Coursera, which serve their captions as WebVTT.
- Zoom and other meeting recordings, whose transcripts are saved as .vtt.
- Websites that put captions on an HTML5
<video>with a<track>element. The<track>element only accepts WebVTT.
How to open a VTT file
To read it, open it in a text editor: Notepad on Windows, TextEdit on a Mac (switch it to plain text), or any code editor. You see the timings and the text exactly as shown above.
To watch it with a video, use a player that reads WebVTT. VLC and MPV do: give the .vtt file the same name as the video (lecture.mp4 and lecture.vtt) and it loads by itself, or add it from the Subtitle menu.
On a TV, in a video editor or in an older player, a .vtt file is often ignored or refused. Many smart TVs, media boxes and editing programs only read SRT. That is the most common reason to convert a VTT file.
VTT and SRT: the differences
The two formats look almost the same, and most of the time the words and the times are all that matter. The differences are in the details:
- Header: VTT starts with
WEBVTT; SRT has no header. - Timestamps: VTT uses a period (
00:00:01.000), SRT a comma (00:00:01,000). - Numbers: SRT numbers every subtitle; in VTT the numbers are optional.
- Positions and speakers: VTT has cue settings, voice tags and classes; SRT only has basic tags such as italics.
- Where it plays: VTT is for the web; SRT is read by almost every TV, player and editor.
Read more about the other format in What is an SRT file?
How to convert a VTT file
To SRT, for a TV, Plex, a video editor or any player that won’t take the .vtt: use Convert VTT to SRT. It writes the commas and numbers SRT needs, keeps italics, and turns a top position into the {\an8} code most players understand. YouTube’s automatic captions are unrolled, so each sentence appears once instead of two or three times.
To plain text, for notes, a blog post or a transcript: use Convert VTT to TXT. It drops the timings and tags and can join the lines into paragraphs.
The other way, from SRT to VTT, for a website or an HTML5 player: use Convert SRT to VTT.
All three run in your browser. The file is read on your device and never uploaded.
Common problems with VTT files
The player says the file is invalid. Check that the very first line is WEBVTT. A blank line or a stray character before it, or a file that is really SRT renamed to .vtt, is enough to make a strict player refuse it.
Every sentence shows up two or three times. That is how YouTube’s automatic captions roll up the screen. Converting the file with Convert VTT to SRT or Convert VTT to TXT keeps each line once.
The captions are early or late. The whole file can be moved by any number of seconds with Shift Subtitle Timing, which keeps the .vtt format.
Strange tags show on screen. A player that doesn’t understand WebVTT may print <c> or <v Mara> as text. Convert the file to SRT for that player, or strip the tags with Remove Formatting from Subtitles.