How to Convert ASS Subtitles to WebVTT: Step-by-Step Tutorial
🚀 Follow along using the free ASS to VTT Converter — open it in a new tab.
Open Converter →Table of Contents
This tutorial walks through the complete workflow for converting ASS subtitle files to WebVTT using the browser-based converter on this site. WebVTT is the native subtitle format for HTML5 video — this tool gets you from .ass to a deployment-ready .vtt file without any software installation.
Before You Start
You need:
- One or more
.asssubtitle files (the converter accepts up to 50 files per session) - A modern browser — Chrome, Firefox, Edge, or Safari all work
- No libraries, no plugins, no account required
If your subtitles are in .ssa format (the older SubStation Alpha), try renaming the extension to .ass — the two formats share the same [Events] structure and the converter handles most SSA files correctly.
Step-by-Step: Converting a Single ASS File
-
Open the converter.
Navigate to /video-tools/ass-to-vtt/. You will see the drop zone with the instruction "Drop .ass files here or click to select." -
Load your file.
Drag your.assfile onto the drop zone, or click the drop zone to open your browser's file picker. Select your file and confirm.
What happens: The file is read entirely in browser memory. The controls row appears with Convert, Download, and Reset buttons. -
Check the ASS preview.
The left panel (ASS Input) shows your file. Click Raw to see the original ASS text, or Parsed to see a clean list:start VTT time → end VTT time | text. Verify the content looks correct. -
Click "Convert to VTT."
Conversion runs in milliseconds. The status bar confirms the number of converted cues. -
Review the VTT output.
The right panel (VTT Output) shows the generated WebVTT. The output should start withWEBVTTon the first line, followed by a blank line, then the cues:WEBVTT 00:01:02.340 --> 00:01:05.120 Subtitle text here.
Note the dot separator in the timestamps — this distinguishes VTT from SRT (which uses a comma). -
Download.
Click Download. You will receive a.vttfile with the same base name as the original.ass(e.g.,My.Show.S01E01.ass→My.Show.S01E01.vtt).
After download: The tool resets automatically, ready for the next batch.
Step-by-Step: Batch Converting Multiple Files
-
Select all your ASS files at once.
Drag multiple.assfiles onto the drop zone, or use the file picker with multi-select (Ctrl+click or Cmd+click). Non-.ass files are filtered out with a warning. -
Verify the file list.
Both preview panels show a sidebar listing each loaded file with a "Pending" status badge. Click any filename to preview that file's content. -
Click "Convert to VTT."
All files are converted in sequence. Converted files show a green "✓ Converted" badge. Files with errors show a red "✗ Error" badge and a description in the status bar. -
Keep "Download as ZIP" enabled.
The ZIP toggle is automatically checked when more than one file is loaded. Leave it checked for a single-archive download. -
Click Download.
A ZIP archive is generated and downloaded. The archive is nameddataconvesioncenter_ass_to_vtt_yyyymmddhhmm.zipusing your local time — for example,dataconvesioncenter_ass_to_vtt_202603051407.zip. Each VTT file inside preserves its original base name.
Using the Preview Panels
- ASS Input — Raw mode: Shows the exact file content. Confirm the file has a
[Events]section andDialogue:lines. - ASS Input — Parsed mode: Shows each dialogue event as
timestamp → timestamp | text. Use this to quickly scan for correct timestamps and complete dialogue. - VTT Output panel: Shows the generated WebVTT. Verify: the file starts with
WEBVTT, timestamps use dots (not commas), and bold/italic ASS tags have been converted to<b>/<i>where applicable. - Switching files: With multiple files loaded, click any filename in either sidebar to update both panels. Useful for spot-checking a few files before downloading the full batch.
Downloading Your VTT Files
| Situation | ZIP toggle | Result |
|---|---|---|
| 1 file converted | Off (default) | Single .vtt file download |
| 1 file converted | On | ZIP containing 1 .vtt file |
| Multiple files converted | On (default) | ZIP containing all .vtt files |
| Multiple files converted | Off | Individual .vtt files downloaded sequentially |
After any download, the tool resets automatically. Output filenames preserve the original name: Episode.01.ass → Episode.01.vtt. If two uploaded files share a base name, the second gets a suffix: subtitle (2).vtt.
Using Your VTT File in HTML5 Video
Once you have the .vtt file, adding it to a web page is straightforward. Here is the minimal HTML:
<video controls width="800">
<source src="episode.mp4" type="video/mp4">
<track src="episode.vtt" kind="subtitles"
srclang="en" label="English" default>
</video>
The default attribute auto-enables the track when the video loads. Remove it if you want the user to manually enable subtitles.
Important for web hosting: Your web server must serve .vtt files with the MIME type text/vtt, otherwise browsers refuse to load the track. Add to your server config if needed:
- Apache
.htaccess:AddType text/vtt .vtt - Nginx: add
text/vtt vtt;inside thetypes { }block
Cross-origin note: If the VTT file is hosted on a different domain than your page, the server hosting the VTT must include Access-Control-Allow-Origin: * (or the specific page origin) in its response headers.
Troubleshooting Common Issues
"No [Events] section found"
The file lacks a valid [Events] section. Open it in a text editor and verify the line [Events] exists. If not, the file may be corrupt or not a true ASS file.
"No Events Format line found"
The [Events] section exists but has no Format: line. You can manually add the standard Format line before the Dialogue lines: Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Subtitles appear but timing is off in the video player
The converter outputs exactly the timestamps from the source ASS file. If timing is wrong, it was wrong in the source. Use a subtitle editor like Aegisub to adjust timing before converting, or use a time-shift tool after.
VTT file not loading in HTML5 video
Check: (1) server MIME type is text/vtt — not text/plain; (2) CORS headers if file is on a different domain; (3) the VTT file path in the src attribute is correct and the file is accessible.
Garbled non-ASCII text
The source ASS file is encoded in Windows-1252, not UTF-8. Open it in Notepad++ (Windows) or a text editor with encoding support, re-save as UTF-8 without BOM, then re-upload and convert.
Bold/italic tags not showing in the player
VTT inline tags (<b>, <i>) require a player that renders them. The HTML5 native player renders them correctly. Some third-party players may strip or ignore inline markup — check your specific player's documentation.
What to Do Next
- Test in a browser: Open an HTML page with your video and
<track>element in Chrome or Firefox. Use browser DevTools (F12 → Console) to check for any VTT loading errors. - Upload to YouTube: In YouTube Studio, go to Videos → Subtitles → Add Language → Upload File → select your VTT. YouTube processes it and adds it to the video.
- Upload to Vimeo: In Vimeo Settings → Distribution → Subtitles, click Add CC/Subtitles and upload your VTT file.
- Use in a video player library: Video.js, Plyr, and Shaka Player all support VTT natively. Pass the
.vttpath as a track source in their configuration. - Need to convert the video format too? Use the MOV to MP4 converter — also browser-based, no upload required.
- Need SRT instead? If you need SRT format for device playback rather than web use, use the ASS to SRT converter.
🎬 Ready? Convert your ASS subtitle files to WebVTT now — free, no signup, no upload.
Open ASS to VTT Converter →