TXT to VTT converter
Create WebVTT (.vtt) captions for an HTML5 video, course or website from a plain text script or a timestamped transcript.
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.
For subtitles that drift. Pick two cues far apart and enter when each should appear.
Rescale times when the subtitle was made for a video with a different frame rate.
The file open now is part 1 / language 1.
Cues
Save options
Output preview
How to convert TXT to VTT
- Open the TXT file. Click Open subtitle file or drop your .txt file onto the tool. You can also paste the text.
- Choose VTT. “WebVTT (.vtt)” is preselected in the Save as menu.
- Fix anything else (optional). Shift or sync the timing, repair the encoding or clean up overlaps before saving.
- 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
| TXT | VTT | |
|---|---|---|
| Full name | Plain text | WebVTT |
| File extension | .txt | .vtt |
| Timestamp example | None (optional [00:01:02]) | 00:01:02.500 |
| Time precision | — | Milliseconds |
| Styling | None | Classes with CSS, <i>, <b>, <u>, voice spans |
| Positioning | None | Cue settings: line, position, align, size |
| Header | None | Required "WEBVTT" first line |
| Works with | Anything that opens text: documents, transcripts, translation tools | HTML5 <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.