VTT ⇄ Text Converter
Turn a .vtt file into a readable text transcript with timestamps, or rebuild a VTT from that same text format, for files up to 200MB.
Or convert a file directly — supports files up to 200MB
Drag & drop a file here, or click to browse
Processed in the background, so the page stays responsive even for huge files
How to use this tool
Paste or upload a .vtt file with VTT → Text selected to get a readable transcript, one bracketed timestamp line per cue. After editing, switch to Text → VTT and paste it back. Anything over 5 MB is converted in the background, with 200 MB as the limit.
Worked example: what the transcript keeps
WEBVTT NOTE checked 2026-09-26 intro 00:01.000 --> 00:03.000 line:0 <v Asha>Where were you?</v> 00:02.505 --> 00:04.000 <c.yellow><i>At home</i></c> <00:00:03.000>I swear
[00:00:01,000 --> 00:00:03,000] Asha: Where were you? [00:00:02,505 --> 00:00:04,000] <i>At home</i> I swear
Who is speaking survives as a name before the line, and italics stay as <i>. The reviewer's NOTE, the cue name and the line:0 position are not in the transcript, so converting it back gives a VTT with every caption at the default position at the bottom. The timestamps use SRT's comma, which is why the same transcript can also be turned into an SRT with the SRT ⇄ Text converter.
Using the words without the timestamps
For show notes or a blog post you usually want only the words. The transcript always keeps its timestamp lines so that it can be converted back, but they are easy to remove: in an editor that supports regular expressions, such as VS Code or Notepad++, replace ^\[.*\]\n with nothing. That leaves the caption text with a blank line between captions. Captions are often split mid-sentence, so join the lines into paragraphs before publishing.
Frequently Asked Questions
Does Text → VTT accept timestamps written with a comma?
Yes. It reads 00:00:02,505 and 00:00:02.505 alike, with or without the square brackets, and writes the full stop that WebVTT requires. Times without milliseconds, like 00:00:12, are read as 12 seconds exactly.
Does converting VTT to text lose any WebVTT-specific formatting?
Some of it. Voice tags are kept as a "Name: " prefix and <i>, <b> and <u> stay as tags. Cue positions and alignment, cue names, colour classes, NOTE comments and STYLE blocks are left out, because the transcript has nowhere to put them. Captions positioned at the top of the video will be at the bottom after a round trip.
Can I use this to quickly proofread captions before publishing them?
Yes. Reading the transcript is faster than reading raw cues, and a spell checker in any editor works on it without tripping over timing lines. Fix the words, keep each timestamp line as it is, and convert back to VTT.
Related Tools
Related Blog Posts
SRT vs VTT vs ASS — Subtitle Formats Compared
The same caption written in SRT, WebVTT and ASS, what each format can express, and exactly what survives when you convert between them: timing precision, italics, positioning and speaker tags.
Read moreHow to Convert JSON to Excel, CSV, XML and YAML (and Back)
What actually happens to your data when JSON becomes a spreadsheet, XML, or YAML: missing keys, nested values, leading zeros, and the XML array problem, with real converter output.
Read moreConverting CSV and XML to Excel Without Losing Data
Why double-clicking a CSV mangles PIN codes, long IDs and ₹ signs, what a careful CSV-to-Excel conversion does instead, and how XML records map to spreadsheet columns.
Read more