Translate a VTT (WebVTT) subtitle file
Last updated September 2026
WebVTT (.vtt) is the caption format used by HTML5 <track> elements and exported by YouTube, Vimeo, Zoom, Teams and many course platforms. It starts with a “WEBVTT” header and can include cue identifiers, positioning settings (like “line:0 align:start”), NOTE blocks and voice tags. This tool translates only the caption text and leaves all of that structure intact, running entirely on your computer in desktop Chrome or Edge.
How to do it
- Open the translator in desktop Chrome 138+ or Microsoft Edge.
- Drop your .vtt file in — for example, a transcript downloaded from YouTube Studio, Zoom or a course platform.
- Choose the source and target languages.
- Press Translate. The WEBVTT header, cue identifiers, timing lines and cue settings (position, line, align) are preserved.
- Download the translated .vtt and upload it back to your platform as a new caption language, or use it in a <track> element.
Tips
- VTT timestamps use a period before milliseconds (00:00:01.000) and the hours part is optional — both are kept as in your file.
- Auto-generated captions (e.g. from Zoom or YouTube) often lack punctuation; translation quality improves if you add sentence punctuation first.
- When serving a .vtt on your own site, the server should send it as text/vtt, or some browsers will ignore the track.
- Karaoke-style timestamp tags inside cues (<00:00:05.000>) are kept, but word-level timing won't line up with translated words.
FAQ
Does it keep VTT cue positioning?
Yes. Settings after the timestamp — line, position, size, align, vertical — are copied unchanged. Only the caption text is translated.
Can I upload the translated VTT to YouTube?
Yes. YouTube Studio accepts .vtt as a subtitle file under Subtitles → Add language → Upload file (with timing).
Does this work in Firefox or Safari?
No. The page relies on the on-device Translator API that currently ships only in desktop Chrome 138+ and Microsoft Edge.