SSubToolDesk
en
VTT → ASS

Convert WebVTT (.vtt) to Advanced SubStation Alpha

Turn a .vtt caption file into a styled .ass subtitle track with a proper style definition and centisecond timing, ready for players and editors that expect ASS. Nothing uploaded to do it.

Detected: …
Drop a file, paste, or edit directly
…

Your files never touch a server. Every conversion on this page runs locally in your browser using the JavaScript FileReader API. Nothing is uploaded, logged, or stored. Safe for confidential Zoom/Teams recordings, unreleased video, and legal interviews.

How the VTT to ASS conversion works

WebVTT (.vtt) is built for browser captioning: a WEBVTT header, then cues as a HH:MM:SS.mmm --> HH:MM:SS.mmm timecode range with a line or two of text, optionally with cue settings or <v Speaker> voice tags. Advanced SubStation Alpha (.ass), the format Aegisub, many fansub groups, and advanced players like MPV and VLC use, is structured very differently: a [Script Info] header, a [V4+ Styles] section defining fonts, colors, outlines, and screen position, and an [Events] section referencing those styles per line.

SubToolDesk's VTT to ASS converter parses your WebVTT cues locally in your browser, discards the WEBVTT header and any voice tags, converts every timecode to ASS's centisecond H:MM:SS.cc format, and writes out a complete, valid .ass file with a working [Script Info] block, a single Default style, and one Dialogue: line per cue.

How to convert VTT to ASS (step-by-step)

  • Drag your .vtt file onto the converter above, or click “Upload File” to browse for it.
  • Confirm the auto-detected format badge reads VTT.
  • Toggle Strip speaker labels on if your source has <v Speaker> tags or leading name labels you don't want carried over.
  • Press Download to save a valid .ass file, named to match your original file.

What the generated .ass file contains

The output is a complete, player-ready ASS file. It includes a real [Script Info] block, a [V4+ Styles] section with one style named Default (white text, a thin outline and shadow for legibility over video, bottom-centered), and an [Events] section with a Dialogue: line for every cue. You can open the result in Aegisub afterward to adjust fonts, colors, or position.

What happens to WebVTT-only features

WebVTT's cue settings (like align:start position:10%) and <v Speaker Name> voice tags don't have a direct ASS equivalent in this converter's output; cue settings are dropped and voice tags are removed by the Strip speaker labels toggle, same as every other converter on this site. If you need that same information in ASS, it's expressed differently there, through per-line MarginL/MarginR/MarginV overrides or a dedicated style, and is a manual follow-up step once you have the base file.

Why timecodes look different in ASS

WebVTT times to the millisecond with a period separator (00:00:09.400); ASS times to the centisecond, one-hundredth of a second, with a non-zero-padded hour (0:00:09.40). The converter handles that rounding automatically, so a cue starting at 9.4 seconds in the source lands at the correct centisecond in the output.

Why people move from VTT to ASS

  • Fansubbing and anime release groups, where ASS's styling and positioning overrides are the de facto standard, even when the source caption was exported as WebVTT.
  • Editors working in Aegisub, which expects ASS as its native project format rather than a plain VTT import.
  • Players and pipelines that render styled overrides, like MPV or certain streaming encoders, where WebVTT's cue settings don't map to the same positioning and font control ASS offers.
  • Starting a styled subtitle project from a web-exported caption track, using this converter to get a structurally valid ASS file in place before adding styles by hand.

Privacy by architecture, not by policy

Parsing the VTT and writing the ASS file both happen in JavaScript running in your browser tab. There is no upload endpoint this feature could hit, which matters whether the source is a public YouTube caption export or a confidential recording.

What this tool intentionally doesn't do

It writes one Default style and doesn't attempt to guess at karaoke timing, per-character colors, or positioning overrides, those are a manual (or Aegisub-assisted) step once you have a valid base file. It also doesn't translate WebVTT cue settings into ASS margin or alignment overrides automatically; that mapping isn't one-to-one and is left for you to apply deliberately if you need it.

Frequently Asked Questions

How do I convert a VTT file to ASS?

Drag your .vtt file onto the converter above, or paste its contents into the left pane. Once the format badge confirms VTT, press Download. A complete, valid .ass file is generated in your browser.

Will the ASS file open correctly in Aegisub, VLC, or MPV?

Yes. The output includes a valid [Script Info] header, a [V4+ Styles] section with a Default style, and an [Events] section with properly formatted Dialogue lines, the structure all three expect.

What happens to WebVTT voice tags and cue positioning?

Voice tags like <v Speaker Name> are removed by the Strip speaker labels toggle. Cue positioning settings (like align or position) don't carry over automatically; ASS expresses that information differently, through styles and per-line margin overrides.

Why do the timecodes look different in the ASS output?

ASS uses centisecond precision with a different format than WebVTT's millisecond timecodes (0:00:09.40 instead of 00:00:09.400). The converter handles this conversion automatically.

Is my caption file uploaded anywhere to do this conversion?

No. Parsing the VTT and generating the ASS file both happen entirely in your browser's JavaScript engine. Nothing is sent to a server.

Will YouTube or Vimeo accept an .ass subtitle file?

No. Most upload forms, YouTube and Vimeo included, accept SRT or VTT, not ASS. Convert to ASS for editors and players that render its styling (Aegisub, MPV, VLC), but keep a VTT or SRT copy for platform uploads.

Is ASS better than VTT, or should I just stick with VTT?

It depends on what you need. ASS supports positioning, karaoke timing, and per-line font and color overrides that VTT's cue settings can't fully express; VTT is the format browsers and the HTML5 <track> element actually require. Use ASS when your workflow specifically needs styling in a player like Aegisub or MPV; use VTT for web playback.