Add captions to a video without uploading it

Most caption tools work the same way: you hand over the whole file, a server does the work, you download the result. For a client project under NDA, an unreleased product, an internal training video or a recording of a patient conversation, that is often the end of the conversation — not because anything bad will happen, but because you cannot promise it will not.

What actually has to leave your device

Less than people assume. Captioning a video has two separate jobs, and only one of them needs to go anywhere.

Understanding the speech needs the audio. Speech recognition models are large, and while they can run locally, on an average laptop that means minutes of work per minute of video. Sent to a hosted model, the same job takes seconds. What travels is the audio track alone — roughly one megabyte per minute, no picture.

Drawing the captions and cutting the video needs the video, and this is the part that used to force the upload. It no longer does. Since the WebCodecs API, a browser can decode a video, cut it, draw on the frames and re-encode it using the same hardware encoder your video calls use. The file never has to move.

So the honest description is not "nothing leaves your device". It is: the picture stays, the audio goes. Any tool claiming full local processing while still using a hosted speech model is describing itself generously.

Why this is also just faster

Privacy is the reason people look for it, but speed is what makes them stay. A 500 MB screen recording on a typical home connection takes several minutes to upload, then waits in a queue, then downloads again. Encoding the same clip locally is usually done before the upload would have finished. The round trip was always the slow part, not the work.

There is a second effect that matters more than it sounds: because the render is local, there is no queue to share. Ten people captioning at the same time do not slow each other down.

Where the approach runs out

It needs a browser with WebCodecs — Chromium-based browsers and recent Safari are fine, Firefox is partial. It uses your machine, so an old laptop will be slower than a server would have been, and a very long recording is better handled server-side. And it cannot help at all if you need the recognition to be local too; for that you want an offline tool with a bundled model, and you will pay for it in speed and setup.

If none of that applies to you, the trade is simply good: same result, no upload wait, and the file stays where it is.

How Caption & Cut does it

Rendering happens in your browser by default. The audio track is extracted locally and sent for transcription; the video is cut and the captions burned in on your own machine. You get word-by-word captions in the style short-form audiences expect, and the silences between sentences are removed in the same pass.

Before anything renders you see the transcript with every planned cut struck through, and one click puts a word or a pause back. There is a server-side option too, for machines that would rather not do the work themselves.

Try it

First three videos free, nothing to install. Upload a video — or rather, do not upload it.

Related: remove silence from a video · remove filler words · all features