VTT generator

Create WebVTT captions for the web, from a transcript you've checked.

AutoCap transcribes your video, lets you fix every word and timing, and writes a valid .vtt file with the WEBVTT header already in place.

No credit card · 2 free minutes every month · MP4, SRT and VTT export

your-video.vtt
WEBVTT

00:00:01.200 --> 00:00:03.400A subtitle file is only as good
00:00:03.400 --> 00:00:05.100as its timings.
00:00:05.300 --> 00:00:07.050These ones were reviewed.

Why it matters

WebVTT is the caption format the HTML track element reads, which makes it the format a browser's built-in video player understands. If your video plays on your own website or inside a web-based course, this is usually the file you need.

A VTT file looks almost like an SRT, and that resemblance is where broken files come from: a missing header line, or commas left in the timestamps after a quick find-and-replace. AutoCap writes both details correctly, from a transcript you've already checked against the video.

What you get

WebVTT files built for the browser.

Correct WebVTT structure

Every file opens with the WEBVTT header and puts a period before the milliseconds, two details that are easy to miss when converting by hand.

Cues timed from reviewed words

Each cue's start and end come from word-level timing you've checked, so captions appear with the speech rather than ahead of it.

Ready for the track element

Reference the file from an HTML5 <track> and the browser's own player can show the captions, with no plugin involved.

An SRT from the same project

Download an SRT for YouTube or an editing app as well; its words and timings match the VTT exactly.

Plain cues you can extend

Cues are written without positioning or styling, so you can add cue settings or ::cue CSS for your player without undoing anything.

How it works

Create a VTT file in four steps.

  1. 01

    Upload the source video

    Use an MP4 or MOV; the audio track is what gets transcribed.

  2. 02

    Proofread against playback

    Watch with the captions running and correct names, numbers and misheard phrases.

  3. 03

    Adjust cue boundaries

    Split or merge caption lines so each cue holds a readable phrase, and retime any word that's off.

  4. 04

    Download the .vtt

    Export the WebVTT file on a paid plan, then reference it from your player or upload it to your platform.

What a WebVTT file contains

WebVTT, short for Web Video Text Tracks, is a W3C specification. A file is plain UTF-8 text that must begin with the word WEBVTT, followed by a blank line and then a series of cues.

Each cue has an optional identifier, a timing line and the caption text. Timestamps put a period before the milliseconds and may leave out the hours, and a block that starts with NOTE is a comment that viewers never see.

example.vtt
WEBVTT

NOTE Cue identifiers are optional

00:00:01.200 --> 00:00:03.400
Web players read this format natively.

00:00:03.600 --> 00:00:05.900
The header line always comes first.

Cue settings and ::cue styling

WebVTT can place and style captions in ways SRT can't. After the timestamps on a timing line, optional cue settings control layout: line moves a cue up or down the frame, position and size set where its box sits across the frame and how wide it is, and align sets the text alignment inside that box.

Styling belongs in CSS. The ::cue pseudo-element lets a web page set the color, background and font of captions in its video player, and ::cue() with a selector can target individual cues.

AutoCap writes plain cues and leaves placement to the player. Add settings or CSS by hand if your own site needs them.

  • line:10% — raises a cue to near the top of the video
  • position:20% — shifts the cue box toward the left
  • size:50% — narrows the cue box to half the video's width
  • align:start — aligns the text to the start of each line
captions.css
video::cue {
  color: #ffffff;
  background-color: rgb(0 0 0 / 0.7);
  font-family: system-ui, sans-serif;
}

Where a VTT file is the one you need

Reach for WebVTT whenever a browser loads the captions. Self-hosted HTML5 video takes it through the track element, as in the snippet below, and players built on that element generally expect it too.

Elsewhere it's often one option among several. Canvas Studio accepts both SRT and VTT caption uploads, and YouTube lists WebVTT among its supported formats, though its help pages point newcomers to SRT.

Already have an SRT? Convert it rather than generating the captions again.

index.html
<video controls src="lesson.mp4">
  <track kind="captions" src="lesson.vtt" srclang="en" label="English" default>
</video>

Questions

Good to know.

What is a VTT file?

A WebVTT (.vtt) file is a plain-text caption file for web video. It starts with a WEBVTT header, lists timed cues, and is the format the HTML track element uses.

Does the VTT file include positioning or styling?

No. AutoCap writes standard cues with accurate timings and no cue settings, so each player applies its own caption style unless you add settings or CSS yourself.

Why won't my VTT file show up in the browser?

Check that the first line is exactly WEBVTT and that timestamps use periods, not commas. A file hosted on a different domain from the page also needs CORS headers and a crossorigin attribute on the video element.

Can I get a VTT file for free?

VTT downloads come with every paid plan, from $9 / €9 a month. If you already have an SRT, the SRT to VTT converter is free and runs in your browser.

Can I turn the VTT back into an SRT?

Yes. Download the SRT from the same project on a paid plan, or run the VTT through the free VTT to SRT converter.

Try it on the next video you post.

The free plan needs no card. Upload a clip, check the captions yourself, and only upgrade when you want the watermark gone.