SubtitleMedic

Convert VTT to ASS

Turn WebVTT captions into Advanced SubStation Alpha, with positions kept as {\an8} codes.

Processed in your browserNo sign-up.vtt

How to convert VTT to ASS

  1. Open your .vtt file

    Drop one WebVTT file into the box above, or click to browse. It’s read by your browser and never uploaded.

  2. Check what changes

    The “What changes” list says what the ASS file gains and loses, and the preview shows the captions before and the ASS script after.

  3. Download the .ass file

    Save the converted file. It keeps the original name with the new extension, so lecture.en.vtt becomes lecture.en.ass.

WebVTT and ASS solve different problems

WebVTT was designed for the HTML5 <track> element. A .vtt file holds the captions and a few placement hints, and leaves the look to the web page: the browser’s default style, or CSS written for the ::cue selector. That works on a website and nowhere else. Outside a browser there is no stylesheet, so each player draws WebVTT its own way, and many desktop tools read only part of it.

Advanced SubStation Alpha takes the opposite approach. The file is a small script with its own canvas size, a table of named styles and one Dialogue: line per subtitle. A renderer such as libass, used by VLC, mpv, MPC-HC, HandBrake and FFmpeg, draws it exactly as written, on every screen.

That is why people convert in this direction: to edit the captions of an online course or a YouTube video in Aegisub, to burn them into a video so they appear on any device, or to give them a consistent look in a desktop player.

What the conversion does

Writes a script header. The file opens with [Script Info], which declares a 1920 × 1080 canvas, and [V4+ Styles] with one style named Default: white Arial at size 64 with a black outline, centred at the bottom. The WEBVTT line, along with any STYLE, REGION and NOTE blocks, is removed; the STYLE and REGION blocks count as formatting items.

Keeps positions. WebVTT places a cue with settings such as line:0 (top), line:50% (middle) and align:start (left). Each is turned into the matching numpad code, {\an8}, {\an5} or {\an1} and so on, at the start of the line. A cue at the bottom centre needs no code, because that is where ASS puts lines anyway. Settings without an ASS equivalent, such as size: or region:, are removed and counted.

Keeps simple formatting. <i>, <b> and <u> become {\i1}, {\b1} and {\u1}. Voice tags (<v Ana>), class tags and karaoke timestamps inside a line are removed and counted. Character references such as &amp; are turned back into the characters they stand for.

Writes rolling captions once. Auto-generated captions repeat each line while it scrolls up. The ASS file keeps one copy of each line, so it doesn’t stack the same words twice on screen.

Rounds times to hundredths. ASS writes 0:01:02.35, not milliseconds, so each time moves by 5 ms at most. No line changes order or length in a way you can see.

Tips

Restyle once. In Aegisub, open Subtitle → Styles Manager and edit Default: a new font or size applies to every line.

Keep the .vtt for the web. Browsers don’t play ASS. Keep the original for your web player and use the .ass for editing, burning in and desktop players.

Have SubRip instead? Convert SRT to ASS does the same for .srt files. If you need to go the other way, Convert ASS to VTT turns a styled script back into web captions.

Captions out of sync? Converting never changes timing. Fix early or late captions with Shift Subtitle Timing.

Frequently asked questions

Why convert VTT to ASS?

WebVTT is made for web players, where the page’s CSS decides how captions look. An .ass file carries its own font, colours, outline and position, which is what you need to restyle captions in Aegisub, burn them into a video, or show them the same way in VLC, mpv and other desktop players.

What happens to cue settings like line:0 or align:start?

They become ASS position codes. A cue placed at the top gets {\an8}, top left gets {\an7}, and so on, so captions that sat above a lower third still do. Settings ASS has no word for, such as size or region, are removed and counted.

Do YouTube auto-captions convert cleanly?

Yes. YouTube’s rolling captions repeat every line two or three times as the text scrolls. The converter writes each line once and drops the word-by-word timing tags, so the .ass file reads like normal subtitles.

What style does the file use?

One style named Default, white Arial with a black outline, at the bottom centre of a 1920 × 1080 script. Edit that one style to change every line.

Is my file uploaded?

No. The conversion runs in this browser tab. Your captions never leave your device, and the tool keeps working offline once the page has loaded.