Free video caption generator
A free video caption generator that transcribes your clip on your own device. Choose a video, check the word-timed captions over a 9:16 preview, fix any word and download an SRT or VTT file. Nothing is uploaded.
Runs on your device: the video is never uploaded. The first run downloads a speech model (about 85 MB) from Hugging Face, kept in this browser afterwards. Speed depends on your device; phones are slower than laptops. Check names, numbers and brand terms before you post.
How to add captions to a video
There are two ways to put captions on a video. A caption file (SRT or VTT) is uploaded next to the video, and the platform draws the text: viewers can turn it off, and search engines can read it. Burned-in captions are part of the picture, so they show everywhere, in your font and colors, with the sound off.
| Where | Caption file | What to do |
|---|---|---|
| YouTube | SRT or VTT | YouTube Studio → Subtitles → your video → Add language → Upload file, “With timing”. |
| Facebook and LinkedIn | SRT | Add the file in the video's caption settings when you post it. Facebook wants the language in the file name, like video.en_US.srt. |
| Vimeo and your own site | VTT (or SRT on Vimeo) | Upload it in the video's settings, or add it to an HTML5 video as a <track>. |
| YouTube Shorts | SRT or VTT, from YouTube Studio | Upload it like any video's subtitles. Viewers see them only with captions on, so burn them in as well for the look. |
| TikTok and Instagram Reels | No caption file | Burn the captions in: import the SRT into an editor that reads it (Premiere Pro and DaVinci Resolve do), or caption in the editor itself. |
| Premiere Pro, DaVinci Resolve, Final Cut Pro | SRT | Import the file as captions, style it, and export the video with the captions burned in. |
For short-form UGC, burn them in: most people watch TikTok and Reels with the sound low, and a viewer who can't read the hook scrolls on. Keep the SRT anyway: it's the transcript a brand may ask for, and the text you'll reuse for the post caption.
SRT vs VTT: which caption file do you need?
Both are plain text: a start and end time for each caption, then its lines. The differences are small but matter to the software that reads them.
| Format | What it looks like | Use it for |
|---|---|---|
| SRT (.srt) | Numbered captions; milliseconds after a comma (00:00:01,200) | The most widely accepted: YouTube, Facebook, LinkedIn and nearly every video editor. Pick this when unsure. |
| WebVTT (.vtt) | Starts with WEBVTT; milliseconds after a period (00:00:01.200); can carry position and styling | Web players and the HTML5 <track> element, Vimeo, and YouTube. |
| Plain text (.txt) | The words only, in paragraphs split at long pauses | A transcript for the brand, the post caption, a blog post or show notes. |
1 00:00:01,200 --> 00:00:03,050 I tried this serum for 30 days 2 00:00:03,050 --> 00:00:04,400 and here's what happened
WEBVTT 00:00:01.200 --> 00:00:03.050 I tried this serum for 30 days 00:00:03.050 --> 00:00:04.400 and here's what happened
A caption file has no font, color or word highlight: the player decides how it looks. The styles in the preview above show how the same timing reads when burned in.
Caption style tips for UGC videos
- Short captions, read in a glance. One or two lines, three to six words each. The defaults here are six words and 24 characters per line; for fast talkers, try three words or One word.
- Keep them out from under the app. The bottom third of a TikTok or Reel is covered by the caption, the username and the buttons. The dashed line in the preview is each app's published safe zone; the TikTok safe-zone guide and Reels safe zone pages have the exact margins.
- Make the spoken word stand out. Word-timed styles (a highlighted or boxed word that moves with the voice) keep eyes on the caption, which is why they're everywhere in UGC ads. Captions here carry word timings so you can see it in the preview.
- Caption the hook first. The opening line does the work; check that its caption is on screen from the first frame and spelled exactly right.
- Check every name, price and claim. Speech recognition guesses at brand names and numbers, and a brand will notice. Fix them in the list before you download.
- High contrast, no clutter. White text with a shadow or a solid tag reads on any background; skip outlines in three colors.
The UGCLive app does all of this inside the edit: it captions every word as you cut, with the same Highlight, Tag, Karaoke and One word styles, and burns them into the export. Writing the script first? The UGC script template and the teleprompter help you say it in one take.
What runs on your device
The page reads the sound from your file with the browser's own audio decoder, then runs OpenAI's Whisper (MIT license) through Transformers.js (Apache 2.0) and ONNX Runtime Web (MIT), in a background thread. It uses your graphics chip through WebGPU where the browser has it, and the CPU otherwise. Your video and its transcript stay in this tab; close it and they're gone.
| Model | With WebGPU | Without WebGPU | Notes |
|---|---|---|---|
| Standard (Whisper base) | About 145 MB | About 85 MB | Whisper base: better with accents, names and noisy rooms |
| Small download (Whisper tiny) | About 75 MB | About 50 MB | Whisper tiny: faster and lighter, makes more mistakes |
Clips can be up to 10 minutes and 1 GB; longer ones are slow in a browser and can run out of memory on a phone. The audio is transcribed in parts of up to 30 seconds, cut at quiet moments, and silent parts are skipped, since Whisper tends to invent words in silence.
How to use Video caption generator
- 1
Choose your video
Pick or drop a video or audio file up to 10 minutes long: MP4, MOV, WebM, MP3, M4A or WAV. Set the spoken language, or leave it on automatic.
- 2
Generate the captions
Press Generate captions. The first time, the page asks before it downloads the speech model, which then stays in your browser. The transcription runs on your device, part by part.
- 3
Edit, preview and download
Set the words per caption and characters per line, fix any word in the list, and play the preview to check timing and the safe zone. Then download SRT, VTT or a plain-text transcript.
FAQVideo caption generator FAQ
Is this caption generator really free, and is my video uploaded?
It's free with no sign-up, no watermark and no limit on how many videos you caption. Your video never leaves your device: the sound is read and transcribed in your browser. The only download is the open speech model itself, from Hugging Face, the first time you use it.
How big is the download, and how long does it take?
The Standard model is about 85 MB on most devices (about 145 MB where the browser can use the graphics chip, which makes it faster); the Small download model is about 50 MB. It's saved in your browser, so later videos start straight away. Transcribing takes longer on phones than on laptops, and longer for longer clips; keep the tab open until it's done.
How accurate are the captions?
It uses OpenAI's Whisper, in its smaller base and tiny sizes so it can run in a browser. Clear speech close to the microphone comes out well; music, crosstalk, heavy accents and product names cause more mistakes than the large models cloud services run. Read the captions through and fix names, prices and brand terms before you post.
Which languages does it support?
Whisper recognises about 100 languages. The menu lists the common ones for UGC (English, Spanish, Portuguese, French, German, Indonesian, Hindi and more), and automatic detection works for the rest. Picking the language yourself is faster and more reliable on short clips.
Can I add the SRT file to TikTok or Instagram Reels?
Not from their phone apps: TikTok and Instagram make their own auto captions and don't take caption files there. For those, burn the captions into the video in an editor that imports SRT. YouTube, Facebook, LinkedIn and Vimeo accept SRT or VTT files with the upload.
Can it burn the captions into the video?
Not on this page: it makes caption files and a preview. To burn word-timed captions into the video on your iPhone, the UGCLive app captions every word with the same styles you see in the preview and exports them in the MP4.
Still have questions?Email us
More free tools
TikTok safe zone checkerTikTok safe zone for 1080 × 1920 video: keep text 240 px from the top, 660 px from the bottom and clear of the side buttons. Check your own video below.
TeleprompterA free online teleprompter that runs in your browser. Paste your script, pick a reading speed and press Start. No sign-up, and your script stays on your device.
Script template builderA free video script template for UGC ads: pick one of seven formats, a product and a length, and get a timed script with three hooks, on-screen text and B-roll notes. It stays in your browser.
Safe Zone CheckerSafe zone checker for TikTok, Instagram Reels, Instagram Stories and YouTube Shorts: drop in a vertical video or image and see what each app's buttons and captions cover.
From the UGCLive appCaptions that follow every word, burned in.
UGCLive captions your video as you edit, with the word-timed Highlight, Tag, Karaoke and One word styles, placed clear of the app buttons and exported in the MP4.
Join the waitlist- Starter will be free
- No card to join the waitlist
- Made for iPhone