Subtitle shifter & converter
All tools

VTT to ASS converter

Convert WebVTT (.vtt) captions into Advanced SubStation Alpha (.ass) so you can restyle them or burn them into a video with a consistent look.

…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 VTT to ASS

    1. Open the VTT file. Click Open subtitle file or drop your .vtt file onto the tool. You can also paste the text.
    2. Choose ASS. “Advanced SubStation Alpha (.ass)” 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 .ass file in UTF-8, or Copy to paste it elsewhere.

    What changes when you convert VTT to ASS

    Each WebVTT cue becomes a Dialogue line using a Default style on a 1920 × 1080 canvas. Italic, bold and underline are converted to ASS override tags; CSS classes, voice spans and inline karaoke timestamps are dropped because they rely on a stylesheet ASS does not read.

    Cues positioned near the top with line settings such as line:0 or line:10% are given the {\an8} alignment tag. Other cue settings (position, size, vertical text) have no direct ASS equivalent and are not carried over.

    A common use is burning web captions into a video for social media: convert to ASS, adjust the font and outline in the style line, then run ffmpeg with the subtitles filter.

    Example

    The first lines of the built-in sample as VTT, and the result of the conversion:

    VTT input

    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 output

    [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 vs ASS at a glance

    VTTASS
    Full nameWebVTTAdvanced SubStation Alpha
    File extension.vtt.ass
    Timestamp example00:01:02.5000:01:02.50
    Time precisionMillisecondsCentiseconds (1/100 s)
    StylingClasses with CSS, <i>, <b>, <u>, voice spansNamed styles: font, size, colors, outline, shadow
    PositioningCue settings: line, position, align, sizeExact positioning, rotation, movement, karaoke
    HeaderRequired "WEBVTT" first line[Script Info] and [V4+ Styles] sections
    Works withHTML5 <track>, browsers, YouTube, Vimeo, streaming playersVLC, mpv, MPC-HC, Plex, Jellyfin, Kodi, Aegisub

    Read the full comparison in SRT vs VTT vs ASS, or see all converters.

    FAQ

    Why would I convert VTT to ASS instead of SRT?

    If you plan to style the subtitles — a font, size, outline or background box — ASS keeps that styling in the file, and ffmpeg applies it exactly when burning subtitles in.

    Are WebVTT colors converted?

    WebVTT colors live in CSS classes, often in a separate stylesheet, so they cannot be read from the file reliably. Set colors in the ASS Default style instead.

    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.