ASS to VTT converter
Convert Advanced SubStation Alpha (.ass/.ssa) subtitles to WebVTT (.vtt) so they work in the HTML5 <track> element, web players and streaming platforms.
Move subtitles by a fixed amount when every line is off by the same delay.
Seconds (2.5), milliseconds (1500ms) or a time (00:00:02,500). Subtitles appear too early → Later.
For subtitles that drift. Pick two cues far apart and enter when each should appear.
Rescale times when the subtitle was made for a video with a different frame rate.
The file open now is part 1 / language 1.
Cues
Save options
Output preview
How to convert ASS to VTT
- Open the ASS file. Click Open subtitle file or drop your .ass file onto the tool. You can also paste the text.
- Choose VTT. “WebVTT (.vtt)” is preselected in the Save as menu.
- Fix anything else (optional). Shift or sync the timing, repair the encoding or clean up overlaps before saving.
- Download. Click Download to save the .vtt file in UTF-8, or Copy to paste it elsewhere.
What changes when you convert ASS to VTT
Browsers cannot render ASS, so web players need WebVTT. The converter keeps the text and timing of every Dialogue line, turns \N into line breaks and converts italic, bold and underline to WebVTT tags. Fonts, outlines, colors, karaoke and vector drawings are removed.
Lines aligned to the top of the screen ({\an7}, {\an8}, {\an9}) are given the cue setting line:0 so signs stay out of the way of dialogue. Times move from centiseconds to milliseconds without any change in value.
If you need the exact look of the original ASS on the web, render it into the video instead (hard subtitles) — WebVTT styling is far more limited.
Example
The first lines of the built-in sample as ASS, and the result of the conversion:
ASS input
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.20,0:00:03.40,Default,,0,0,0,,[waves crashing]
Dialogue: 0,0:00:03.60,0:00:06.10,Default,,0,0,0,,MARA: You kept the lamp burning\Nall night again.
Dialogue: 0,0:00:06.30,0:00:08.90,Default,,0,0,0,,Someone has to.\NThe fog came in early.
Dialogue: 0,0:00:09.10,0:00:12.00,Default,,0,0,0,,{\i1}The ships don't need us anymore.\NThey have satellites.{\i0}VTT output
WEBVTT 00:00:01.200 --> 00:00:03.400 [waves crashing] 00:00:03.600 --> 00:00:06.100 MARA: You kept the lamp burning all night again. 00:00:06.300 --> 00:00:08.900 Someone has to. The fog came in early. 00:00:09.100 --> 00:00:12.000 <i>The ships don't need us anymore.
ASS vs VTT at a glance
| ASS | VTT | |
|---|---|---|
| Full name | Advanced SubStation Alpha | WebVTT |
| File extension | .ass | .vtt |
| Timestamp example | 0:01:02.50 | 00:01:02.500 |
| Time precision | Centiseconds (1/100 s) | Milliseconds |
| Styling | Named styles: font, size, colors, outline, shadow | Classes with CSS, <i>, <b>, <u>, voice spans |
| Positioning | Exact positioning, rotation, movement, karaoke | Cue settings: line, position, align, size |
| Header | [Script Info] and [V4+ Styles] sections | Required "WEBVTT" first line |
| Works with | VLC, mpv, MPC-HC, Plex, Jellyfin, Kodi, Aegisub | HTML5 <track>, browsers, YouTube, Vimeo, streaming players |
Read the full comparison in SRT vs VTT vs ASS, or see all converters.
FAQ
Can a browser play ASS subtitles directly?
No. Native HTML5 video only reads WebVTT through the <track> element, so ASS files must be converted or rendered with a JavaScript library.
What happens to karaoke effects?
Karaoke timing tags (\k) are removed and the whole line is shown for its full duration.
Are my subtitle and video files uploaded?
No. Files are opened and processed by JavaScript in your browser, on your own device. Nothing is sent to a server, so unreleased or private material stays private.