noupload.tools

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

    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

    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.

    Related tools