Subtitle shifter & converter
All tools

TXT to VTT converter

Create WebVTT (.vtt) captions for an HTML5 video, course or website from a plain text script or a timestamped transcript.

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

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

    Each line of text becomes one caption. Timestamps like [00:01:02] or a time on its own line set the start of the caption that follows; other lines are timed by reading speed so you have a sensible first draft.

    Load your video into the preview, play it, and use “Start = video” and “End = video” in the editor to snap each caption to the speech. The WEBVTT header and millisecond timestamps are written for you.

    For accessibility, keep captions to one or two short lines and include important sounds in brackets, for example [applause].

    Example

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

    TXT input

    [waves crashing]
    MARA: You kept the lamp burning all night again.
    Someone has to. The fog came in early.
    The ships don't need us anymore. They have satellites.
    Satellites don't see the rocks the way I do.

    VTT output

    WEBVTT
    
    00:00:00.000 --> 00:00:01.200
    [waves crashing]
    
    00:00:01.400 --> 00:00:04.600
    MARA: You kept the lamp burning all night again.
    
    00:00:04.800 --> 00:00:07.333
    Someone has to. The fog came in early.
    
    00:00:07.533 --> 00:00:11.133
    The ships don't need us anymore. They have satellites.
    
    00:00:11.333 --> 00:00:14.266

    TXT vs VTT at a glance

    TXTVTT
    Full namePlain textWebVTT
    File extension.txt.vtt
    Timestamp exampleNone (optional [00:01:02])00:01:02.500
    Time precision—Milliseconds
    StylingNoneClasses with CSS, <i>, <b>, <u>, voice spans
    PositioningNoneCue settings: line, position, align, size
    HeaderNoneRequired "WEBVTT" first line
    Works withAnything that opens text: documents, transcripts, translation toolsHTML5 <track>, browsers, YouTube, Vimeo, streaming players

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

    FAQ

    How do I add captions to an HTML5 video?

    Create the .vtt file here, upload it next to your video and add <track kind="captions" src="captions.vtt" srclang="en" label="English" default> inside the <video> element.

    Is this good enough for accessibility compliance?

    It produces valid WebVTT; accuracy, speaker identification and sound descriptions are up to you. Check the captions against the video before publishing.

    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.