Subtitle shifter & converter
All tools

SRT to VTT converter

Turn a SubRip (.srt) file into WebVTT (.vtt), the format HTML5 video and most web players require. Timing, line breaks and italics carry over exactly.

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

    1. Open the SRT file. Click Open subtitle file or drop your .srt 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 SRT to VTT

    WebVTT was designed as the web successor to SRT, so the conversion is almost lossless. The converter adds the required WEBVTT header, swaps the comma in every timestamp for a period (00:01:02,500 becomes 00:01:02.500) and drops the cue numbers, which WebVTT does not need.

    Italic, bold and underline tags are kept. <font color> tags are removed because WebVTT colors are set with CSS classes instead. Lines that start with the unofficial {\an8} tag — used for on-screen signs — become a cue placed at the top of the frame with the setting line:0.

    Characters with special meaning in WebVTT, such as & and <, are escaped so the file validates. If you plan to use the file in a <track> element, serve it with the text/vtt MIME type.

    Example

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

    SRT input

    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 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.

    SRT vs VTT at a glance

    SRTVTT
    Full nameSubRipWebVTT
    File extension.srt.vtt
    Timestamp example00:01:02,50000:01:02.500
    Time precisionMillisecondsMilliseconds
    StylingBasic: <i>, <b>, <u>, <font color>Classes with CSS, <i>, <b>, <u>, voice spans
    PositioningOnly through unofficial {\an8} tagsCue settings: line, position, align, size
    HeaderNone — numbered blocksRequired "WEBVTT" first line
    Works withAlmost every player, TV, editor and video platformHTML5 <track>, browsers, YouTube, Vimeo, streaming players

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

    FAQ

    Why does my HTML5 video ignore my SRT file?

    Browsers only support WebVTT in the <track> element. Convert the SRT to VTT, link it with <track kind="subtitles" src="file.vtt" srclang="en" label="English">, and serve it from the same origin or with CORS enabled.

    Will the timing change when converting SRT to VTT?

    No. Both formats store milliseconds, so every start and end time is copied exactly; only the separator changes from a comma to a period.

    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.