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

FeatureASS (.ass)WebVTT (.vtt)
TypographyFull control — fonts, sizes, colorsCSS-based styling via ::cue selector
PositioningPrecise per-line screen positioningCue settings: line, position, size, align
Karaoke effectsSupportedNot supported
AnimationsTransform, fade, motion animationsNot supported
HTML5 integrationNot native — requires player supportNative — works with <track> tag
CompatibilityVLC, MPC-HC, mpv — limited web supportAll modern browsers, streaming platforms
Timestamp precisionCentiseconds (H:MM:SS.cc)Milliseconds (HH:MM:SS.mmm — dot separator)
Header requiredNo special headerMust start with WEBVTT
Cue numberingSequential event numberingOptional cue identifiers

How the Conversion Works

  1. Parse [Events] section — reads the Format: column map to handle any column order
  2. Extract Dialogue lines — splits on exactly N-1 commas to handle commas in text correctly
  3. Convert timestampsH:MM:SS.ccHH:MM:SS.mmm (centiseconds × 10 = milliseconds; dot separator)
  4. Process inline tags{\i1}…{\i0}<i>…</i>, {\b1}…{\b0}<b>…</b>; remaining {…} blocks stripped
  5. Handle line breaks\N and \n → real newlines; \h → regular space
  6. Build VTT output — prepend WEBVTT header, then write each cue as start --> end\ntext
  7. Download — individual .vtt files or a timestamped ZIP archive

Frequently Asked Questions

Does WebVTT support bold and italic from ASS?
Yes — this converter maps {\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.
How is the WebVTT timestamp format different from SRT?
WebVTT timestamps use a dot as the millisecond separator (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).
Can I use the VTT file directly in an HTML5 <video> element?
Yes. Add a <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.
Are my files uploaded to any server?
No. All parsing and conversion runs entirely in your browser using JavaScript. No file data is ever sent to a server.
What happens to ASS position tags like {\pos(x,y)}?
Position override tags are stripped. WebVTT does support cue positioning via its own syntax (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.