Add subtitles to a video, free.
An auto caption generator that runs in your browser: drop a video and Whisper writes the captions, in the language spoken or translated into English. Check the words, pick a style, and get the video back with the subtitles burned into the picture for Instagram, TikTok and Reels, or added as a subtitle track you can switch on and off. You can also bring your own SRT. The video is never uploaded, there is no watermark and no sign-up.
drop a video
MP4, MOV, WebM or MKV, up to about 600 MB. Drop an SRT or VTT with it to use your own subtitles.
At a glance
| Captions | OpenAI Whisper (tiny, base or small) in your browser: 99 languages, or translated into English; or your own SRT/VTT |
|---|---|
| Editing | Every caption in an editable list, with a live preview on the video |
| Styles | Three sizes, top or bottom, white or yellow, outline or dark box; short 3–5 word captions for social video, timed on their own words |
| Burned in | Drawn into the picture with libass and Noto Sans (Latin, Greek, Cyrillic, Devanagari, Arabic), re-encoded as H.264 MP4; the sound is kept as it is |
| Subtitle track | Added beside the untouched picture in seconds: MP4/MOV (mov_text), MKV (SRT) or WebM (WebVTT) |
| Also saves | SRT and VTT files |
| Uploads your video | No. It never leaves the tab; no watermark, no account |
How the automatic captions are made
The soundtrack is decoded in the tab and handed to Whisper, the open speech recognition model from OpenAI, running in the browser through ONNX Runtime. It returns the speech as timed phrases with punctuation and capitals. Each phrase becomes a caption of up to two lines of 42 characters, the line length broadcasters and Netflix use, and stays on screen for at least a third of a second. Whisper base is accurate for clear speech in English and the major European languages; choose small for accents, noisy rooms or other languages, at the cost of a bigger one-time download. "Translated into English" makes English captions from speech in any language, in the same pass.
Machine captions are good, not perfect. Names and technical words are written the way they sound, so the list exists to fix them before you save. Click a caption's time to play the video from there and hear it. The preview on the video uses your browser's own caption display, so the size and font there are approximate; the saved video uses the style you chose.
Burned-in captions or a subtitle track
Burned in means the words are drawn into the pixels of every frame. They show on every phone, in every app and in every feed, including Instagram, TikTok, Reels, YouTube Shorts, LinkedIn and X, where most people watch with the sound off. The price is that the picture is encoded again, as H.264 at high quality (CRF 20), which takes a little while in a browser: measured on a laptop (Apple, 8 cores), 30 seconds of 720p took about 21 seconds; a machine busy with other work took two to three times as long, and 1080p or 4K take proportionally longer. The sound is copied untouched where the container allows it.
A subtitle track sits beside the picture, like the subtitles on a film file. Nothing is re-encoded, so it takes seconds and the quality is exactly the original's. Viewers turn it on and off in the player's CC menu: VLC, QuickTime and most desktop and TV players handle it. Social apps ignore subtitle tracks, so for those, burn them in. For YouTube, upload the SRT file alongside the video instead; YouTube Studio reads it directly and keeps the captions searchable.
Captions for TikTok, Reels and Shorts
"Short, 3–5 words" splits each sentence into quick captions, the style that keeps a vertical video readable at a glance. With the default accuracy (Whisper base), each short caption is timed on its own words: a version of the model that reports when every word is spoken is used for this, and its times are corrected for a lag it has. Measured on words placed at known moments, three voices, every word Whisper recognised started within 0.15 seconds of the truth, the median within 0.05. With the tiny or small model, short captions are spread across each phrase in proportion to their length instead, which is close at a normal pace of speech. There is no word-by-word karaoke highlighting. Use Large and the dark box for busy footage; white with an outline suits darker scenes. Captions placed at the top stay clear of the app buttons along the bottom of a vertical feed.
Using your own subtitles
Choose "my subtitle file" and pick an SRT or VTT, or drop it together with the video. Times are read as written, formatting tags are removed, and every caption lands in the same editable list, so you can also use this page to burn a translator's SRT into a video or fix a typo in one. To translate captions into Spanish, French, Italian, Portuguese or Hindi and have them spoken, use video dubbing; for a plain transcript, audio to text.
What it can't do
Burned-in captions are drawn in Noto Sans for the Latin, Greek and Cyrillic alphabets, Noto Sans Devanagari for Hindi, Marathi and Nepali, and Noto Sans Arabic for Arabic, Persian and Urdu, with the letters properly joined and ordered (right to left for Arabic); the font follows the captions' main script, so one video gets one script. Chinese, Japanese, Korean, Bengali, Tamil and other scripts are not drawn yet: for those, save the SRT or add a subtitle track, which the player draws with its own fonts. There is no word-by-word highlighting, no animated caption styles and no emoji. Whisper does not separate speakers here; the audio to text page labels who is speaking. Very long or very high-resolution videos take a long time to burn in a browser and need plenty of memory; trim to the part you need with your editor first.
FAQ
Is this auto caption generator really free, with no watermark?
Yes. There is no account, no watermark and no limit on how many videos you caption. Everything runs in your browser, so there is nothing to pay for per minute.
Is my video uploaded?
No. The video is read, transcribed and re-assembled in this tab. The only downloads are the speech model and the video encoder, the same for everyone, once.
How do I add subtitles to a video for Instagram or TikTok?
Drop the video, choose "Short, 3–5 words", press Make the captions, check them, then press Burn into the video. The captions become part of the picture, which is what Instagram, TikTok and Reels need: they ignore separate subtitle tracks.
Can I add an SRT file to a video?
Yes. Drop the video and the SRT together, or choose "My subtitle file". Burn it into the picture, or add it as a subtitle track without re-encoding, which takes seconds.
Which languages does it understand?
Whisper transcribes 99 languages and can translate any of them into English captions. Burned-in captions are drawn in Latin, Greek and Cyrillic, Hindi (Devanagari) and Arabic scripts; for others, such as Chinese or Japanese, save the SRT or add a subtitle track.
Will burning in the captions lower the quality?
The picture is re-encoded once as high-quality H.264 (CRF 20), which is visually very close to the original at normal viewing. If you need the picture untouched, add the captions as a subtitle track instead.