How to Convert SRT to VTT (3 Methods)

You've got an SRT subtitle file, but the video player you're working with expects VTT. Or you're embedding a video with an HTML <track> tag and the browser won't recognize SRT. Either way, you need a format change without losing any of your timing or text.
Converting SRT to VTT is one of the simpler file conversions in video work. The two formats are structurally close, and the differences are small enough to fix by hand in under a minute for short files. For longer ones, free online tools do it in seconds.
This guide walks through 3 ways to convert SRT to VTT: manual text editing, online converters, and re-generating from the original video when the SRT isn't accurate.
To convert SRT to VTT, open the SRT file in any text editor, add "WEBVTT" as the very first line, then use Find and Replace to change all comma separators in timestamps to periods (00:00:01,000 becomes 00:00:01.000). Save the file with a .vtt extension. For larger files, a free online converter handles this automatically in seconds.
Why Video Players Need VTT Instead of SRT
SRT was built for desktop media players like VLC and Windows Media Player. VTT was designed from the ground up for the web, standardized by the W3C as part of HTML5.
The concrete difference: the HTML <track> element only accepts VTT. If you're embedding video on a website with captions via <track>, SRT won't load. Most browser-native video players follow the same pattern.
VTT (Web Video Text Tracks) was standardized by the W3C in 2010 as part of HTML5. It works natively in all major browsers through the HTML <track> element: Chrome, Firefox, Safari, and Edge all support it without plugins. SRT (SubRip Text) predates VTT by nearly a decade, originating from SubRip software around 2000-2001. While both formats encode subtitle timing and text, they differ in three key ways. VTT requires a "WEBVTT" file header. It uses period separators in timestamps (00:00:01.000) rather than commas (00:00:01,000). And it supports additional features: region definitions, CSS class cues, and speaker identification via voice tags. Most popular web video players, including Video.js, JW Player, Plyr, and Flowplayer, use VTT as their default subtitle format. YouTube accepts both. But if you're embedding video with an HTML <track> tag, VTT is the required format.
Popular web video frameworks like Video.js, JW Player, and Plyr use VTT as their default subtitle format. Streaming platforms built on these frameworks typically expect VTT uploads too.
YouTube accepts both formats, so for YouTube-only work you can skip the conversion entirely. But anywhere you're hosting or embedding video yourself, VTT is the standard.
Method 1: Convert SRT to VTT in a Text Editor
This works without any software beyond what's already on your computer. Use Notepad on Windows, TextEdit in plain text mode on Mac, or a code editor like VS Code or Notepad++.
Step 1: Open the file
Right-click your .srt file and open it with your text editor. You'll see cue blocks like this:
1
00:00:01,000 --> 00:00:04,500
Welcome to the presentation.
2
00:00:05,200 --> 00:00:09,000
Today we'll cover three topics.
Step 2: Add the WEBVTT header
Go to the very top of the file. Type "WEBVTT" on the first line, then leave one blank line before the first cue block:
WEBVTT
1
00:00:01,000 --> 00:00:04,500
Welcome to the presentation.
Nothing should appear before "WEBVTT" in the file. Even an invisible byte order mark (BOM) will break browser playback.
Step 3: Replace commas with periods in timestamps
Open Find and Replace (Ctrl+H on Windows, Cmd+H on Mac). Search for , and replace with ..
This converts every timestamp from 00:00:01,000 to 00:00:01.000. One thing to check: if your subtitle text includes numbers with comma formatting (like "1,000 users"), those will get converted too. Scan the output for mangled number lines if your content includes that kind of text.
Step 4: Save as .vtt
Save the file and rename its extension from .srt to .vtt. On Windows, make sure "Show file extensions" is enabled in File Explorer so you can see and rename the extension directly.
The sequence numbers and all subtitle text stay exactly the same. The conversion is done.
When to use this: Files with fewer than 200 cue entries, or when you want to inspect the content at the same time. Takes under 2 minutes for most files.
Method 2: Use a Free Online Converter to Convert SRT to VTT
Online converters handle the text editor steps automatically. Upload your SRT file, download a VTT file. No software installation or manual editing required.
A few reliable free tools:
- VEED (veed.io): Drag-and-drop interface, outputs VTT in one click, no account needed
- GoTranscript (gotranscript.com): Simple upload page, free, no login required
- Maestra (maestra.ai): Free tier covers basic format conversion
The workflow is the same across all of them:
- Go to the converter page
- Upload your .srt file or paste its contents
- Select VTT as the output format
- Download the converted file
Most tools handle files up to 10 MB without issues. A subtitle file for a feature-length film is typically 100-200 KB, so size limits rarely come up.
One thing to watch: some converters drop sequence numbers in the output. VTT doesn't require them, and their absence doesn't affect playback in standard players. But if a specific player you're targeting depends on sequence numbers, check the output file before deploying.
When to use this: Large files, batches of multiple files, or when you'd rather skip the text editor entirely. Fastest option for most workflows.
Method 3: Re-Generate VTT Directly from the Original Video
If the SRT you're working with is inaccurate (timing off, speaker names wrong, or poorly auto-generated), converting it to VTT just carries those mistakes into a different format. A cleaner approach: re-transcribe from the source and download VTT directly.
PixScript lets you paste a YouTube, TikTok, or Instagram URL, or upload a local video or audio file, and download the transcript as a .vtt file with accurate timestamps. No intermediate SRT step needed.
Here's how to generate VTT with PixScript:
- Go to pixscript.com and sign in (free tier: 10 transcriptions per month)
- Paste the video URL or upload your file (supports MP4, MOV, MP3, WAV, M4A, WEBM, and most common formats up to 500 MB)
- Wait for the transcript to complete (most videos under 30 minutes finish in under 90 seconds)
- Click Export and select VTT
You get a clean .vtt file with timestamps. The accuracy typically beats auto-generated captions because PixScript runs a dedicated transcription model rather than a platform's built-in speech recognition.
For more on how timestamps map to subtitle cue entries in VTT output, see our guide to transcription with timecodes.
When to use this: When the original SRT has accuracy problems, when you still have access to the source video or URL, or when you want to improve caption quality at the same time as changing formats.
Common Errors After Conversion
A technically correct conversion can still produce a file a player won't load. Here are the problems that come up most often.
Missing or broken WEBVTT header. The header line must be exactly WEBVTT with nothing before it. A BOM character (invisible, sometimes added by Windows text editors) will break browser playback. In Notepad++, check the encoding in the bottom bar and save as "UTF-8 without BOM."
Wrong file encoding. VTT files should be UTF-8. Windows Notepad sometimes defaults to Windows-1252 (ANSI) encoding for older documents. This breaks non-Latin characters in subtitle text. Set the encoding explicitly when saving.
No blank line before the first cue. There must be exactly one blank line between the WEBVTT header and the first cue block. Without it, some players skip the first subtitle entry or reject the file outright.
Comma-in-text edge cases. If subtitle text includes something like "at 1,000 users we hit capacity," a global comma replace will convert that to "1.000 users" in the displayed text. Scan for number formatting issues if your content includes large numbers.
For a closer look at SRT file structure before you convert, our guide to what is an SRT file covers the block format and common errors in detail.
Which Method Should You Use?
| Situation | Best method |
|---|---|
| Short file, want to check the content | Text editor (Method 1) |
| Large file or batch of files | Online converter (Method 2) |
| Original video available, SRT is inaccurate | Re-generate with PixScript (Method 3) |
| Need to preserve sequence numbers | Text editor, or verify online tool output |
| Browser only, no software | Online converter (Method 2) |
For most people, Method 2 handles it in under a minute with no manual work. Method 1 is worth knowing because it makes the format differences tangible, which helps when you're debugging playback problems. Method 3 trades speed for accuracy when the subtitle content itself needs to improve.
If you're working regularly with both formats, our SRT vs VTT comparison guide covers when each is the better choice for a given workflow.
Frequently Asked Questions
What's the difference between SRT and VTT?
SRT uses comma separators in timestamps (00:00:01,000) and has no file header. VTT starts with a WEBVTT line and uses period separators in timestamps (00:00:01.000). VTT also supports CSS cue settings and speaker voice tags. Both carry the same subtitle text and timing data. For more detail, see our SRT vs VTT comparison.
Does converting SRT to VTT lose any data?
No. Subtitle text and timing data transfer completely. Some converters drop sequence numbers, which are optional in VTT and don't affect playback. If your SRT has HTML-style formatting tags in the text lines, most tools preserve them in the output.
Can I convert VTT back to SRT?
Yes. The process reverses cleanly: remove the WEBVTT header, replace period separators in timestamps with commas, and re-add sequence numbers if they were dropped. The same text editor method and online tools work in both directions.
Why won't my VTT file load in the browser?
Three common causes: the WEBVTT header is missing or has an invisible byte order mark before it, the file isn't UTF-8 encoded, or there's no blank line between the header and the first cue block. Open the file in a text editor to check all three.
Is there a size limit for SRT to VTT conversion?
A text editor has no limit. Online tools typically handle files up to 10 MB, which covers most subtitle files. A feature-length film subtitle file is usually 100-200 KB. If you hit a size limit with an online tool, the text editor method works without any cap.
If you have the original video and the SRT is causing problems, PixScript can re-transcribe it and export a clean .vtt file directly. Paste a YouTube URL or upload your video file at pixscript.com. The free tier covers 10 transcriptions per month, and the Pro plan adds VTT export, SRT, PDF, and timestamps for $9 per month.