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.

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
.vttfile from a podcast, interview, or lecture recording
Method 1: Generate an Editable AI Draft
An AI-powered service can generate a timed VTT draft without manual timestamp entry. Captain Transcribe exports WebVTT syntax after processing; review the transcript and timing before use.
Here is the complete workflow:
- Upload a supported file — Captain Transcribe accepts MP3, WAV, OGG, OPUS, FLAC, M4A, AAC, MP4, AVI, MOV, MKV, and WEBM up to 95 MB for signed-in users.
- Select your language — Choose the primary spoken language from the list. Captain Transcribe supports 28 languages including English, French, Spanish, German, Portuguese, and Japanese. Selecting the correct language is the single most important step for accuracy.
- Choose a subtitle style — Three styles are available, each producing a different cue length in the VTT output:
- Standard — Longer cue groups for conventional subtitle layouts.
- Short — Groups of up to four words for short-form editing.
- Word-by-word — One timed word per cue for granular editing in a downstream video editor.
- Download the VTT file — Once processing is complete, review the generated captions and click the VTT download button. The file uses the
WEBVTTheader, period-separated milliseconds, and UTF-8 encoding.
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:
- Open a new file in your text editor.
- Type
WEBVTTon the very first line. Leave one blank line after it. - 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. - Save the file with the
.vttextension using UTF-8 encoding. On Windows Notepad, choose "All files" as the file type and type the filename with.vttat 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 can be practical for a small number of cues. For longer or speech-dense material, compare the full time required to generate, review, time, and validate an automated draft with the manual workflow.
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:
- Add the header — Insert
WEBVTTas the very first line of the file, followed by a blank line. - 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. - 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.
- Save as UTF-8 with a
.vttextension.
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>
Major browsers implement WebVTT through the <track> element, but test the browser versions you support and configure the correct text/vtt MIME type and cross-origin headers.
YouTube
YouTube currently lists WebVTT and SRT. Follow the current Studio workflow, allow for platform processing, and preview the track before publication.
Vimeo
Vimeo documents supported caption and subtitle formats, including WebVTT. Check the current help page and video settings before upload because accepted formats and navigation can change.
E-Learning Platforms
Some learning-management and course-video systems accept WebVTT. Check the exact platform, player, role permissions, and current accepted-format list before preparing a track. Keep WebVTT files encoded as UTF-8.
Web Video Players
Many web-video players can expose browser text tracks or their own caption integrations. Confirm the player's current documentation, supported track formats, MIME and CORS requirements, and styling limitations; then test the exact versions and browsers you ship.
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:
- Invalid WEBVTT signature — A WebVTT file begins with the specification's signature, with an optional UTF-8 BOM and permitted header text. Do not add leading whitespace or misspell the signature; use a validator when a player rejects the file.
- 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,500is SRT syntax and will break a VTT file. It must be00: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-Typeheader must betext/vtt. If your server sendstext/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.vttfiles.
VTT vs SRT: Which Format Should You Generate?
The short answer: export both and follow the current documentation for your destination. WebVTT is native to HTML5 and accepted by platforms such as YouTube and Vimeo. SRT is broadly supported by desktop and web editors, including CapCut Desktop/Web; direct import options vary by product and device.
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 once processing completes. 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, check the WEBVTT header, cue syntax, period-based timestamps, blank lines, and UTF-8 encoding. When converting SRT, validate the result instead of relying on a blind global replacement.
Key Takeaways
- VTT transcription produces a timed subtitle file — not just a plain text transcript, but a
.vttfile with synchronized cues ready for video players. - AI tools remove manual timestamp entry — Captain Transcribe generates an editable VTT draft from supported audio or video uploads.
- 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 and destinations that document WebVTT support; check each editor or platform before import.
Related Articles
Related articles

What is a VTT File? Everything You Need to Know About WebVTT
A complete guide to the VTT (WebVTT) subtitle file format: what it is, how it works, how to create VTT files, and when to use VTT vs SRT for your videos.

How to Add Subtitles to TikTok Videos in 2026
Learn a reviewable workflow for adding subtitles to TikTok videos with an editable AI-generated draft.

Best AI Transcription Tools in 2026: Complete Comparison
Compare transcription workflows, exports, language coverage, and pricing links, then benchmark candidates with your own audio.
This article was drafted with AI assistance and reviewed by The Captain before publication.