Subtitle shifter & converter
All tools

VTT to SRT converter

Convert WebVTT (.vtt) captions — from YouTube, Zoom, Vimeo, online courses or HTML5 players — into SubRip (.srt), the format almost every player, TV and editor understands.

…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 SRT

    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 SRT. “SubRip (.srt)” 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 .srt file in UTF-8, or Copy to paste it elsewhere.

    What changes when you convert VTT to SRT

    The converter numbers every cue, switches timestamps to the SRT style with a comma (00:01:02.500 becomes 00:01:02,500) and removes the WEBVTT header, NOTE comments and STYLE blocks, which SRT has no place for.

    WebVTT voice spans (<v Speaker>), class spans (<c.yellow>), ruby text and karaoke timestamps inside cues are removed so the text displays cleanly; italic, bold and underline survive. Cues positioned at the top of the screen are marked with {\an8}, which VLC, mpv, Plex and most TVs honor.

    Short timestamps without hours (01:02.500) are expanded to the full 00:01:02,500 form, and HTML entities such as &amp; are turned back into normal characters.

    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.

    SRT output

    1
    00:00:01,200 --> 00:00:03,400
    [waves crashing]
    
    2
    00:00:03,600 --> 00:00:06,100
    MARA: You kept the lamp burning
    all night again.
    
    3
    00:00:06,300 --> 00:00:08,900
    Someone has to.
    The fog came in early.
    

    VTT vs SRT at a glance

    VTTSRT
    Full nameWebVTTSubRip
    File extension.vtt.srt
    Timestamp example00:01:02.50000:01:02,500
    Time precisionMillisecondsMilliseconds
    StylingClasses with CSS, <i>, <b>, <u>, voice spansBasic: <i>, <b>, <u>, <font color>
    PositioningCue settings: line, position, align, sizeOnly through unofficial {\an8} tags
    HeaderRequired "WEBVTT" first lineNone — numbered blocks
    Works withHTML5 <track>, browsers, YouTube, Vimeo, streaming playersAlmost every player, TV, editor and video platform

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

    FAQ

    How do I convert YouTube auto-captions VTT to SRT?

    Open the .vtt file here and save as SRT. Auto-generated captions often repeat words across overlapping cues — run Fix → overlaps and duplicates before saving for a cleaner file.

    Do I lose anything converting VTT to SRT?

    Only styling that SRT cannot express: CSS classes, exact positions other than top or bottom, and voice labels. The text and timing are kept exactly.

    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.