Convert ASS to VTT
Turn ASS or SSA subtitles into WebVTT for web players and HTML5 video.
How to convert ASS to VTT
Open your .ass or .ssa file
Drop one Advanced SubStation Alpha file into the box above, or click to browse. It’s read by your browser and never uploaded.
Check what is removed
A notice says how many styles, positions and effects WebVTT won’t carry over, and the preview shows the script before and the captions after.
Download the .vtt file
Save the converted file. It keeps the original name with the new extension, so
episode-01.assbecomesepisode-01.vtt.
Two formats built for different screens
ASS was made for a desktop renderer. An Advanced SubStation Alpha file describes how every line should be drawn: a table of styles with fonts, colours and outlines, and override codes inside the text for position, rotation, fades and karaoke. A player with the libass renderer, such as VLC or mpv, draws it pixel for pixel.
WebVTT was made for the browser. The <track> element takes a .vtt file and the browser draws the captions itself, in a style the viewer can change in their accessibility settings. That is the point of the format: captions that every browser, screen reader and device can show without extra code.
The two don’t meet in the middle. A browser has no idea what {\pos(960,120)} or Style: Sign means, and would print the codes as text. So putting ASS subtitles on a web page means reducing them to what WebVTT understands.
What ends up in the .vtt file
A WEBVTT header on the first line, which browsers require.
One cue per Dialogue: line, with its start and end time written the WebVTT way, 00:01:02.340 --> 00:01:04.900.
Italic, bold and underline. {\i1}, {\b1} and {\u1} become <i>, <b> and <u>, which browsers show.
Real line breaks. A hard break \N becomes a new line and a soft break \n a space.
Nothing else from the script. The script info and style table are dropped. Each line that used a style other than Default, and each block of override codes other than italic, bold or underline, counts as one removed formatting item. Lines marked Comment:, which were never on screen, are left out and counted as well. The total is shown above the Download button.
Using the file on a web page
Add the track to your video and name its language, so the browser can label it in the captions menu:
<track kind="subtitles" src="episode-01.vtt" srclang="en" label="English" default>
The .vtt file must come from the same origin as the page, or be served with CORS headers and a crossorigin attribute on the <video> element. A track that silently fails to load is nearly always one of those two.
If you want colour or a different size back, style the captions with CSS on your page, using the ::cue selector. That keeps the look in one place instead of in every subtitle file.
Tips for a clean conversion
Read through signs and songs. Typeset signs and karaoke lyrics become ordinary captions at the bottom of the video. On a file with many of them, check the preview, and consider removing those cues from the .vtt in a text editor.
Keep the .ass file. The styles can’t be brought back from the WebVTT file. Keep the original for desktop players that can show it.
Need it for a TV or an editor instead? Those read SubRip. Use Convert ASS to SRT.
Subtitles out of sync as well? Converting never changes the timing. Fix lines that are early or late with Shift Subtitle Timing. If accented letters look wrong in the preview, pick the right encoding next to the file name or use Fix Subtitle Encoding; the .vtt file is always saved as UTF-8.
Frequently asked questions
Can a browser play .ass subtitles directly?
No. The HTML5 <track> element only reads WebVTT. Showing ASS in a browser takes a JavaScript renderer that draws the subtitles on a canvas, which is heavy and has to be set up by the site. Converting to .vtt gives you captions that the browser shows by itself.
Are the styles and positions kept in the WebVTT file?
No. WebVTT can place and style captions, but in its own way, with cue settings and CSS, and an ASS style table doesn’t map onto it cleanly. This tool writes plain cues with the text, the timing and italic, bold and underline, and tells you how many formatting items were removed.
Does this work with .ssa files too?
Yes. SubStation Alpha (.ssa) is the older version of the same format, and both are read here. Either one is saved as a .vtt file with the same name.
Will the timing change?
No. ASS writes time in hundredths of a second and WebVTT in thousandths, so 0:01:02.34 becomes 00:01:02.340. It is the same moment, and the preview lets you compare every line.
Are my subtitle files uploaded anywhere?
No. The file is read and converted by JavaScript in this browser tab. It never leaves your device, and the tool keeps working if you go offline after the page has loaded.
Related tools
Shift Subtitle Timing
Subtitles too early or too late? Move every line by any number of seconds.
Open toolFix Subtitle Encoding
Repair garbled characters like é or ??? caused by the wrong text encoding.
Open toolConvert ASS to SRT
Turn styled ASS or SSA subtitles into plain SubRip that every TV and player reads.
Open tool