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: 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:
- 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.
- 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.
- 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.
- Download the VTT file — Once processing is complete (typically under 60 seconds), click the VTT download button. The file uses the correct
WEBVTTheader, 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:
- 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 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:
- 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>
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,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: 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
.vttfile 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
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 the fastest way to add accurate subtitles to your TikTok videos using AI transcription.
Best AI Transcription Tools in 2026: Complete Comparison
We compare the top AI transcription services including pricing, accuracy, and features.
This article was drafted with AI assistance and reviewed by The Captain before publication.