Skip to content
← All Guides
🔒 No Upload Required ✅ Free Forever 🌐 Browser-Based
Tutorial

How to Convert ASS Subtitles to WebVTT: Step-by-Step Tutorial

By Bill Crawford  ·  March 2026  ·  7 min read

Connect on LinkedIn →

🚀 Follow along using the free ASS to VTT Converter — open it in a new tab.

Open Converter →

Table of Contents

  1. Before You Start
  2. Converting a Single ASS File
  3. Batch Converting Multiple Files
  4. Using the Preview Panels
  5. Downloading Your VTT Files
  6. Using VTT in HTML5 Video
  7. Troubleshooting Common Issues
  8. What to Do Next

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:

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

  1. 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."
  2. Load your file.
    Drag your .ass file 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.
  3. 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.
  4. Click "Convert to VTT."
    Conversion runs in milliseconds. The status bar confirms the number of converted cues.
  5. Review the VTT output.
    The right panel (VTT Output) shows the generated WebVTT. The output should start with WEBVTT on 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).
  6. Download.
    Click Download. You will receive a .vtt file with the same base name as the original .ass (e.g., My.Show.S01E01.assMy.Show.S01E01.vtt).
    After download: The tool resets automatically, ready for the next batch.

Step-by-Step: Batch Converting Multiple Files

  1. Select all your ASS files at once.
    Drag multiple .ass files 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.
  2. 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.
  3. 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.
  4. 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.
  5. Click Download.
    A ZIP archive is generated and downloaded. The archive is named dataconvesioncenter_ass_to_vtt_yyyymmddhhmm.zip using your local time — for example, dataconvesioncenter_ass_to_vtt_202603051407.zip. Each VTT file inside preserves its original base name.

Using the Preview Panels

Downloading Your VTT Files

SituationZIP toggleResult
1 file convertedOff (default)Single .vtt file download
1 file convertedOnZIP containing 1 .vtt file
Multiple files convertedOn (default)ZIP containing all .vtt files
Multiple files convertedOffIndividual .vtt files downloaded sequentially

After any download, the tool resets automatically. Output filenames preserve the original name: Episode.01.assEpisode.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:

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

🎬 Ready? Convert your ASS subtitle files to WebVTT now — free, no signup, no upload.

Open ASS to VTT Converter →