Subtitle shifter & converter
All tools

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.

…or drop it here. SRT, VTT, ASS, SSA or TXT. Files are processed on your device and never uploaded.

sample.srtLoading…

 

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.

Cues

     

    Save options

    Output preview

    
    

    How to convert ASS to VTT

    1. Open the ASS file. Click Open subtitle file or drop your .ass file onto the tool. You can also paste the text.
    2. Choose VTT. “WebVTT (.vtt)” is preselected in the Save as menu.
    3. Fix anything else (optional). Shift or sync the timing, repair the encoding or clean up overlaps before saving.
    4. 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

    ASSVTT
    Full nameAdvanced SubStation AlphaWebVTT
    File extension.ass.vtt
    Timestamp example0:01:02.5000:01:02.500
    Time precisionCentiseconds (1/100 s)Milliseconds
    StylingNamed styles: font, size, colors, outline, shadowClasses with CSS, <i>, <b>, <u>, voice spans
    PositioningExact positioning, rotation, movement, karaokeCue settings: line, position, align, size
    Header[Script Info] and [V4+ Styles] sectionsRequired "WEBVTT" first line
    Works withVLC, mpv, MPC-HC, Plex, Jellyfin, Kodi, AegisubHTML5 <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.