Auto-captions
Word-by-word captions, generated on your own machine. The video never leaves it.
Your file
Drop a file here, or click to choose
It stays on this device. Nothing is sent anywhere.
Settings
Check the transcript
Why this one is different
Every other automatic captioning service works the same way: you upload your footage, their servers transcribe it, and you get a file back. Your unpublished video sits on someone else's disk in the meantime, and most of them put a watermark on the result or cap you at a few minutes a month.
This runs OpenAI's Whisper speech recognition model compiled to WebAssembly, inside the page. The audio is pulled out of your video with FFmpeg, transcribed in the tab, turned into a subtitle file, and burned back into the picture. All four steps happen on your device. There is no upload and no length limit beyond your own patience.
The three caption styles
- Karaoke shows a short line with the word being spoken picked out in your accent colour. This is the style most short-form creators use, because it holds attention without hiding the picture.
- One word at a time puts a single large word on screen. Maximum impact, best for fast-cut vertical video.
- Plain lines is ordinary subtitling: a couple of lines at a time, held for as long as they are spoken.
All three are generated from word-level timestamps, so the text lands on the syllable rather than drifting a second behind.
Getting them to look right
Font size is in pixels of the source video, so a 1080 by 1920 vertical clip wants something around 72, and a 1080p landscape clip around 48. The edge margin defaults to 220 pixels to clear the buttons and captions that TikTok, Reels and Shorts overlay along the bottom of the frame. If your captions are colliding with a platform's own interface, raise it.
The first run downloads a model
Speech recognition needs model weights: 145 MB for the fast model, 278 MB for the accurate one. That downloads once, in the background, and is then cached by your browser the same way the FFmpeg engine is. There is no file to save and nothing appears in your downloads. Every run after the first starts immediately.
Transcription runs at roughly three to six times faster than real time, so a one minute clip takes about ten to twenty seconds, and a ten minute video takes a couple of minutes.
Common questions
Is my video really not uploaded?
Really. Open your browser's network panel and run a job: after the model weights are cached, there are no requests at all. The speech model runs in a WebAssembly worker on your own CPU.
Which is better, fast or accurate?
The fast model is fine for clear speech recorded close to a microphone, which covers most talking-head video. Switch to accurate for strong accents, background noise, several speakers, or technical vocabulary.
Why is the first run slow?
It is fetching the speech model, which is a one-time cost. The progress bar shows how far along it is. After that it is cached and every run starts straight away.
Can I fix a word it got wrong?
Not in this tool yet. Run transcribe instead, edit the SRT in any text editor, and burn it in with burn subtitles.
What languages does it handle?
Whisper covers around 100 languages and detects them automatically. The bundled font renders Latin, Greek and Cyrillic scripts, so Chinese, Japanese, Korean, Arabic and Indic text will transcribe correctly but not render when burned in. For those, use the transcribe tool and add the subtitles in an editor with a suitable font.
Does it put a watermark on my video?
No. Nothing is added but the captions you asked for.