ASS to VTT Subtitle Converter
Convert .ass (Advanced SubStation Alpha) subtitle files to .vtt (WebVTT) format entirely in your browser. Batch convert multiple files, preview both input and output, and download individually or as a ZIP — no upload, no server, 100% private.
Drop .ass files here or click to select
Accepts .ass files only · Up to 50 files · 50 MB total
What This Tool Does
Parses ASS (Advanced SubStation Alpha) subtitle files and converts them to the WebVTT (.vtt) format — entirely client-side. It correctly handles the ASS [Events] Format: column declaration (regardless of column order), maps {\i1}…{\i0} to <i> tags and {\b1}…{\b0} to <b> tags, strips remaining override blocks, converts \N and \n line breaks, translates centisecond timestamps to the HH:MM:SS.mmm WebVTT format, and outputs a valid WEBVTT file with the required header.
Who This Is For
- Web developers embedding subtitles in HTML5
<video>elements via the<track>tag - Content creators uploading to platforms that accept WebVTT (YouTube, Vimeo, Wistia, Cloudflare Stream)
- Anime fans and subtitle editors converting fansub releases for browser-based players
- Video producers who need subtitles in a web-compatible format for their CMS or LMS
- Developers batch-processing subtitle archives for media pipelines that require VTT
💡 WebVTT is the native subtitle format for HTML5 video. Use <track src="subtitles.vtt" kind="subtitles" srclang="en"> inside a <video> element to display captions. For SRT output instead, use the ASS to SRT converter. To transcribe audio, try the Audio to Transcript tool.
Related Guides & Tutorials
ASS vs WebVTT — Format Comparison
| Feature | ASS (.ass) | WebVTT (.vtt) |
|---|---|---|
| Typography | Full control — fonts, sizes, colors | CSS-based styling via ::cue selector |
| Positioning | Precise per-line screen positioning | Cue settings: line, position, size, align |
| Karaoke effects | Supported | Not supported |
| Animations | Transform, fade, motion animations | Not supported |
| HTML5 integration | Not native — requires player support | Native — works with <track> tag |
| Compatibility | VLC, MPC-HC, mpv — limited web support | All modern browsers, streaming platforms |
| Timestamp precision | Centiseconds (H:MM:SS.cc) | Milliseconds (HH:MM:SS.mmm — dot separator) |
| Header required | No special header | Must start with WEBVTT |
| Cue numbering | Sequential event numbering | Optional cue identifiers |
How the Conversion Works
- Parse [Events] section — reads the Format: column map to handle any column order
- Extract Dialogue lines — splits on exactly N-1 commas to handle commas in text correctly
- Convert timestamps —
H:MM:SS.cc→HH:MM:SS.mmm(centiseconds × 10 = milliseconds; dot separator) - Process inline tags —
{\i1}…{\i0}→<i>…</i>,{\b1}…{\b0}→<b>…</b>; remaining{…}blocks stripped - Handle line breaks —
\Nand\n→ real newlines;\h→ regular space - Build VTT output — prepend
WEBVTTheader, then write each cue asstart --> end\ntext - Download — individual
.vttfiles or a timestamped ZIP archive
Frequently Asked Questions
{\i1}…{\i0} to <i>…</i> and {\b1}…{\b0} to <b>…</b>. WebVTT supports these HTML-like tags natively in compliant players. Other ASS tags (colors, positioning, animations) are stripped.00:01:02.500), while SRT uses a comma (00:01:02,500). Both use millisecond precision from the same ASS centisecond source (cc × 10).<track> child to your <video> element: <track src="subtitles.vtt" kind="subtitles" srclang="en" label="English">. The browser will load and display the captions natively without any JavaScript.line:90%, position:50%), but mapping from ASS coordinates to VTT cue settings requires knowledge of the video resolution and is out of scope for this tool. The text content is always preserved.