Skip to content
Back to blog
Guide7 min read

VTT Transcription: How to Convert Audio and Video to WebVTT Format

Learn how to transcribe audio and video files directly to WebVTT (.vtt) format using AI tools, manual methods, or SRT conversion — with step-by-step instructions for every workflow.

CT
Written by The Captain
Published on

What Is VTT Transcription?

VTT transcription is the process of converting the spoken content of an audio or video file into a WebVTT (.vtt) subtitle file — a timed text file that tells a video player exactly when to display each line of caption text. The result is a .vtt file you can use directly with the HTML5 <track> element, upload to YouTube or Vimeo, or feed into any web-based video player.

Unlike plain transcription (which gives you a text document), VTT transcription produces a structured file with precise start and end timestamps for every subtitle segment. That timing information is what makes the captions stay in sync with the video, whether the clip is 30 seconds or 3 hours long.

People search for VTT transcription when they need to:

  • Add subtitles to a website video using the HTML5 <track> element
  • Upload captions to YouTube, Vimeo, or an e-learning platform that requires VTT
  • Build an accessible web video player with styled, positioned captions
  • Automatically generate a .vtt file from a podcast, interview, or lecture recording

Method 1: AI Transcription (Fastest — Recommended)

The fastest and most accurate way to get a VTT file from your audio or video is to use an AI-powered transcription service. Captain Transcribe produces a properly formatted, browser-ready VTT file in under a minute — no manual timing, no format errors, no conversion steps.

Here is the complete workflow:

  1. Upload your file — Go to captaintranscribe.com and upload your audio or video file. Supported formats include MP4, MOV, MKV, MP3, WAV, M4A, and all other common media types. There is no need to extract audio first — you can upload the video directly.
  2. Select your language — Choose the primary spoken language from the list. Captain Transcribe supports over 25 languages including English, French, Spanish, German, Portuguese, and Japanese. Selecting the correct language is the single most important step for accuracy.
  3. Choose a subtitle style — Three styles are available, each producing a different cue length in the VTT output:
    • Standard — Full-sentence segments, ideal for YouTube, Vimeo, and e-learning platforms where viewers expect traditional subtitle pacing.
    • Short — Two to four words per cue, designed for TikTok, Instagram Reels, and vertical video where captions appear word by word.
    • Karaoke — Word-level timing that highlights each word as it is spoken, perfect for music videos or lyric-style content.
  4. Download the VTT file — Once processing is complete (typically under 60 seconds), click the VTT download button. The file uses the correct WEBVTT header, period-separated milliseconds, and UTF-8 encoding — all the requirements that browsers and video platforms enforce.

You can also download an SRT file or a plain text transcript from the same transcription if you need multiple formats. There is no need to run a separate transcription job.

What Does an AI-Generated VTT File Look Like?

After transcribing a short English clip using the Standard style, Captain Transcribe produces a VTT file structured like this:

WEBVTT

1
00:00:00.840 --> 00:00:04.120
Welcome to this tutorial on WebVTT transcription.

2
00:00:04.440 --> 00:00:08.300
In this video, we will walk through
the three main methods for creating VTT files.

3
00:00:08.720 --> 00:00:12.560
Method one uses an AI transcription tool
for fast, automated results.

Every cue has a sequential identifier, a timestamp line using periods as the millisecond separator (a VTT requirement — not commas, which belong to the SRT format), and one or more lines of caption text. The WEBVTT header on line one is mandatory — without it, browsers silently ignore the file.

Method 2: Create a VTT File Manually

If your audio is short, simple, or you want complete control over every word and timestamp, you can write a VTT file by hand in any plain text editor — Notepad on Windows, TextEdit on Mac (in plain text mode), or VS Code on any platform.

Follow these steps:

  1. Open a new file in your text editor.
  2. Type WEBVTT on the very first line. Leave one blank line after it.
  3. For each caption segment, write an optional cue number, then the timestamp range on the next line using the format HH:MM:SS.mmm --> HH:MM:SS.mmm, then your caption text. Separate each cue from the next with a blank line.
  4. Save the file with the .vtt extension using UTF-8 encoding. On Windows Notepad, choose "All files" as the file type and type the filename with .vtt at the end, then select UTF-8 from the encoding dropdown.

A complete minimal example:

WEBVTT

1
00:00:01.000 --> 00:00:04.500
Hello and welcome to our webinar.

2
00:00:05.200 --> 00:00:09.800
Today we will cover three key topics
in just thirty minutes.

3
00:00:10.400 --> 00:00:14.100
Let us start with the first item
on our agenda.

Manual creation is practical for short videos (under five minutes) or for correcting a handful of cues in a generated file. For anything longer, AI transcription saves hours of work.

Method 3: Convert an SRT File to VTT

If you already have an SRT subtitle file — from a previous project, a video editor, or another transcription tool — converting it to VTT is straightforward because the two formats share the same logical structure. The differences are purely syntactic:

  1. Add the header — Insert WEBVTT as the very first line of the file, followed by a blank line.
  2. Change the timestamp separator — SRT timestamps use a comma (00:00:01,500); VTT requires a period (00:00:01.500). Use Find & Replace in your text editor with the comma-in-timestamp pattern to make this change across the whole file. In most editors: find , and replace with . — but scope the replacement carefully so you only change timestamp commas, not any commas inside the caption text itself.
  3. Keep or remove cue numbers — VTT cue numbers are optional. You can leave the SRT sequence numbers in place (they are valid VTT cue identifiers) or remove them if you prefer a cleaner file.
  4. Save as UTF-8 with a .vtt extension.

For bulk conversions or if you want to avoid manual editing, use a tool like Captain Transcribe which exports both SRT and VTT from a single transcription job. See our full guide on SRT vs VTT for a detailed side-by-side comparison of the two formats.

Where to Use Your VTT File

Once you have a .vtt file, here is how to deploy it across the most common platforms:

HTML5 Video (Web Pages)

VTT is the native subtitle format for the web. Add it to any HTML5 video with a single line inside your <video> tag:

<video controls>
  <source src="my-video.mp4" type="video/mp4">
  <track src="subtitles.vtt" kind="subtitles" srclang="en" label="English" default>
</video>

Every modern browser — Chrome, Firefox, Safari, and Edge — supports WebVTT natively through this <track> element. No JavaScript libraries or plugins are required.

YouTube

YouTube accepts VTT uploads alongside SRT. In YouTube Studio, go to your video, click Subtitles, select Add Language, choose your language, then click Upload file and select your .vtt file. YouTube parses the timestamps and makes the captions available to viewers immediately after you publish them.

Vimeo

Vimeo actually recommends VTT as its preferred caption format. In your Vimeo video settings, navigate to the Distribution tab, then Subtitles & Captions, and upload your VTT file there.

E-Learning Platforms

Learning management systems (LMS) including Moodle, Canvas, and Coursera use VTT as the standard format for video captions. Most LMS platforms provide an upload interface in the video settings where you can attach your .vtt file. Always verify the encoding is UTF-8, especially for courses with accented characters or non-Latin scripts.

Web Video Players

Third-party JavaScript video players — Video.js, Plyr, JW Player, and Flowplayer — all use VTT natively. Pass the .vtt file path to the player's tracks configuration. These players also unlock VTT's styling capabilities: with the ::cue CSS selector, you can control font, color, background, and text-shadow for your subtitles.

Common VTT Transcription Mistakes to Avoid

Whether you are using an AI tool or creating the file by hand, a few errors account for most VTT failures:

  • Missing WEBVTT header — The single most common reason a VTT file does not work. The first line of the file must be exactly WEBVTT. Any leading whitespace, a byte-order mark (BOM), or a misspelling causes browsers to reject the file silently.
  • Using commas instead of periods in timestamps — If you manually edit an AI-generated file or copy-paste from an SRT, watch for commas slipping into timestamps. 00:00:01,500 is SRT syntax and will break a VTT file. It must be 00:00:01.500.
  • Wrong file encoding — Save with UTF-8. Saving as Windows-1252 or Latin-1 corrupts accented characters and can cause some players to refuse the file.
  • Missing blank lines between cues — Every cue block must be followed by at least one blank line. Without it, the parser merges adjacent cues or skips them.
  • Wrong MIME type on the server — When serving VTT files from a web server, the Content-Type header must be text/vtt. If your server sends text/plain, some browsers will refuse to load the track. Most modern web servers set this automatically, but if your subtitles are not showing up on a self-hosted page, check your server's MIME type configuration for .vtt files.

VTT vs SRT: Which Format Should You Generate?

The short answer: generate both from your transcription tool and keep both on hand. Use the VTT when embedding video on a website or uploading to Vimeo. Use the SRT when uploading to TikTok, editing in Premiere Pro, DaVinci Resolve, or CapCut, or when you are unsure which format a platform requires — SRT has wider compatibility across desktop software.

For a full breakdown, read our comparison of SRT vs VTT subtitle formats. If you need just the VTT format explained in detail, see our guide on what is a VTT file.

Start Creating VTT Files Today

VTT transcription does not have to be complicated. With an AI tool like Captain Transcribe, you upload your audio or video, choose a subtitle style, and download a correctly formatted VTT file in under a minute. No text editor juggling, no timestamp arithmetic, no conversion steps. The free tier gives you enough credits to transcribe your first files and see the quality for yourself.

For manual corrections or short clips, the three-step method (WEBVTT header, period timestamps, UTF-8 save) is all you need. And if you are starting from SRT, the conversion is a two-minute find-and-replace operation.

Key Takeaways

  • VTT transcription produces a timed subtitle file — not just a plain text transcript, but a .vtt file with synchronized cues ready for video players.
  • AI tools are the fastest method — Captain Transcribe generates a VTT file in under a minute from any audio or video upload.
  • VTT requires WEBVTT as the first line — omitting this header causes browsers to silently ignore the file.
  • Timestamps use periods, not commas — the most common manual error when writing or converting VTT files.
  • VTT is the native web format — use it for HTML5 video, Vimeo, and e-learning platforms; use SRT for video editors and TikTok.

Related Articles

Related articles

This article was drafted with AI assistance and reviewed by The Captain before publication.

© 2026 Captain Transcribe. All rights reserved.