Add captions to a video, free

flshy transcribes your clip in the browser, on your own machine, and puts every cue on the timeline as a text clip you can edit like any other. No upload, no watermark, no cap on how much you caption. This page is the whole run, including the parts that are fiddly.

Open flshyFree forever · no credit card · runs in your browser
Price
Free, no watermark
Runs
On your device
Languages
14, plus auto detect
Styles
Caption presets

How to caption a video in flshy

Eight steps, and only one of them involves waiting.

  1. Open the editor and bring your clip in

    Go to app.tryflshy.com and make a free account, either with a six digit code sent to your email or with Google sign-in. Then drag your video onto the timeline.

    There is no upload bar, because there is no upload. Your browser reads the file off your own disk and the footage stays there.

  2. Select the clip and open Captions

    Click the clip on the timeline, then open the Captions panel. It has three tabs: Presets for the look, Transcript for the words, Properties for size and placement.

  3. Pick the spoken language, or leave it on auto

    The language picker offers Auto detect plus English, French, German, Spanish, Italian, Portuguese, Hindi, Japanese, Korean, Chinese, Russian, Turkish, Polish and Vietnamese.

    Auto is the model’s own default and is usually right. Naming the language yourself helps most on short clips, where there is not much audio for it to judge from.

  4. Transcribe the clip

    Press Generate captions. The first run downloads the speech model into your browser cache, then transcription runs on your own machine. The download has a progress bar; transcription shows a spinner and a status line.

    The bundled model is about 42 MB, so the wait is short and it only happens once. After that the model is cached and captioning works with no network at all. Once captions exist, that same button reads Regenerate captions.

  5. Put the cues on the timeline

    When the transcript comes back, the card lists every cue and the button under that list counts them: Add 24 as Editable Text, or whatever your number is. Press it.

    This is the press that puts the captions on the timeline. Until you make it the cues live only in that card, the Transcript tab still reads “No transcript yet”, and there is nothing to style or retype.

  6. Choose a caption style

    Presets run from Stacked and Minimal through Punch, Karaoke Pop and Neon to Outline, Block and Marker. Each one sets its own face, weight and cue length, and most add a stroke, a plate or a highlight colour on top.

    The preview cards are typeset from the preset’s real values at one shared scale, so the face, weight and colours on a card are the preset’s own rather than card decoration. Cue length is the exception: captions generated here are cut to five words at most, so a preset whose card shows more than five will land shorter than the card.

  7. Fix the words the model got wrong

    Every cue is an ordinary editable text clip on a Captions track, so you can retype a name, restyle one line, or drag a cue that lands early.

    The cues stay attached to the clip they came from. Drag that clip along the timeline and its captions travel with it; trim it and they are shortened to match, with any cue left entirely outside the new edge removed.

  8. Export

    Render to H.264 MP4 on your own hardware, up to 4K, with the captions burned in and no watermark anywhere in the frame.

Word-by-word highlighting, and when you get it

Presets like Karaoke Pop light each word as it is spoken, and that needs timings per word rather than per phrase. Which timings you get depends on which model did the transcribing.

Bundled model
Whisper Tiny, about 42 MB, ships with the app and runs on any machine. It returns timings per phrase, so a word-animated preset falls back to static text and the panel says so rather than quietly dropping the animation.
Large local model
Whisper Large V3 Turbo, about 760 MB, returns real word timings and is the most accurate option. WebGPU is recommended, and it needs a model host configured for the build you are running.
Cloud captions
Animates per word. This is the one path that sends anything off your machine: the clip's audio goes to a speech-to-text service and is discarded after transcription.

Getting captions that read well

Questions people actually ask

Is it actually free?

Yes. There is no paid tier, no trial timer, no credit card, no watermark and no export limit. A free account is needed to open the editor, and that is the whole of it.

Does my video get uploaded anywhere?

Your footage stays put. Import, editing, preview and export all happen on your own machine, and the video files themselves are never uploaded. On-device transcription is the default for captions. Three features do send something, and none of them until you ask for it: cloud captions and AI Highlights each send the clip's audio to a speech-to-text service, and the Director chat sends a summary of your project, meaning its name, your track and clip layout and your media file names, to a hosted Claude model.

Which languages can it caption?

Auto detect, plus English, French, German, Spanish, Italian, Portuguese, Hindi, Japanese, Korean, Chinese, Russian, Turkish, Polish and Vietnamese.

Can I edit the words after they are generated?

Yes. Each cue is a normal text clip, so you can retype it, restyle it, retime it or delete it like anything else on the timeline.

Can I use subtitles I already have?

Yes. Import an SRT or VTT file and every cue in it becomes an editable text clip on the Captions track. Imported cues arrive with their own plain styling rather than the preset you picked, so restyle them once they are in.

Does it work on a phone?

No. flshy needs a desktop or laptop browser and tells you so on a small screen. A Chromium browser such as Chrome or Edge is the best supported.

From the blog

Every post

Next

Open the editor