Burncaps hears the words, draws the captions and writes the new MP4 inside your own browser, so the video never leaves your device. Do not take that on trust: this page shows how to check it in your browser's own tools in about half a minute, and lists every request the page can make.
Live preview, rendered on this page by the same engine that burns your video.
Making captions is five jobs. Here is where each one runs, and what, if anything, leaves your device while it does.
| Job | Where it runs | What leaves your device |
|---|---|---|
| Opening the video | Your browser | Nothing |
| Hearing every word | Your browser, with OpenAI's open Whisper model, or a model made for one of twelve Indian languages | Nothing. If you choose our speech service instead: the sound only, in pieces of up to 30 seconds, never the picture |
| Correcting the script and the look | Your browser | Nothing |
| Spelling names, the best 30 or 60 seconds, a translation | Our AI service, only when you use one of them | The transcript text, not stored. Keep everything on this device stops it |
| Writing the captioned MP4 | Your browser's own video encoder | Nothing from the video. One small check: a random ID for your browser and one for the file |
On a computer, English is heard on the device unless you ask for our speech service. For another language, or when the computer is listening slower than the video plays, the page asks before any sound leaves. A phone asks once, on its first video, and remembers your answer. With the service, each piece goes as 16 kHz mono sound to burncaps.app/api/listen, and our server passes it to Microsoft's MAI-Transcribe in Ireland, which by Microsoft's statement keeps none of it; neither do we. Ticking Keep everything on this device stops every request that carries sound or words.
In Chrome or Edge on a computer, press F12 (Cmd, Option and I on a Mac) and choose Network. Tick Preserve log, because a video dropped on this page opens in the editor on the front page. Then drop a video and let it caption.
Choose Fetch/XHR. The requests to burncaps.app are small, and clicking one and opening Payload shows what it carries: a step name or a random ID, never your file. The large rows are downloads coming in, such as the speech model, about 190 MB with a graphics chip or 80 MB without, once.
Click the first row, the page itself, and open Headers. Its Content-Security-Policy, under connect-src, names the only addresses the page's code may connect to: burncaps.app, jsDelivr, Hugging Face and Cloudflare's visit counter (blob: and data: are memory inside your browser). The browser refuses every other address.
Once the speech model has downloaded, turn your wifi off and caption the video again. Listening, correcting the words and the live preview keep working, which is only possible because the work happens on your own hardware. Exporting a free video is the one step that wants the connection back, for its small check with two random IDs. Microsoft is not on the connect-src list because the page never talks to it: when you choose our speech service, the sound goes to burncaps.app and our server passes it on.
| Request | When | What it carries |
|---|---|---|
| Hugging Face's CDN | The first video, then cached | Nothing from you. It downloads the speech model, plus a 138 MB model once for a video in one of twelve Indian languages |
| jsDelivr, a public CDN | When the page needs them | Nothing from you. It downloads the code that runs the models and the video writer, and the face and person models |
| /api/price | Once when a page opens | Nothing about you. The answer says which price applies where you are |
| /api/count | At each step | The step's name, where the visit came from, phone or computer and the country. Never an identifier |
| Cloudflare Web Analytics | Each page | A cookieless page-view count that cannot identify you |
| /api/pass | Before an export, and when it finishes | A random ID for your browser, a random ID for the file and whether it is the whole video or a clip. Never anything from the video |
| /api/listen | Only if you choose our speech service | Pieces of sound of up to 30 seconds, nothing from the picture |
| /api/pick | Only for the best 30 or 60 seconds, names to spell right, or a caption language other than the one spoken | The transcript text and the random browser ID. Not stored |
| /api/auth/me | Only on a device signed in to Pro | That device's sign-in |
| /api/interest, /api/news, /api/send-link | Only if you type your email into one of them | That email |
The face-detection library also tries to send usage statistics to Google every minute. The page's security policy refuses it, so it shows as blocked in the console. The privacy policy has every request in full.
Free to use: two videos every 30 days with no mark, or $49 once for unlimited videos. Subtitle files (SRT, VTT, ASS and text) are free without limit for videos up to ten minutes, with no account, and downloading them never uses one of your free videos.
No. The video is opened, captioned and written as a new MP4 inside your browser, and no request carries it. The sound stays on your device too, unless you choose our speech service: then pieces of sound of up to 30 seconds, never the picture, go to our server and on to Microsoft's MAI-Transcribe in Ireland, and nothing is kept.
Open your browser's developer tools, choose Network and tick Preserve log, then caption a video. Every request is listed with what it carries. On Burncaps you will see the speech model coming in once, and small requests going out that carry a step name or a random ID, never the file. The page's Content-Security-Policy header, under connect-src, names the only addresses its code may connect to, and the browser refuses every other one.
Listening on your device, correcting the script and previewing the captions keep working with the connection off, once the speech model has downloaded the first time. Exporting a free video needs the connection for one small check before the first frame is written: a random ID for your browser and one for the file, never anything from the video.
Step counts with no identifier, one request asking which price applies, and the export check. The sound goes only if you choose our speech service. The transcript text goes to our AI only if you choose the best 30 or 60 seconds, type names to spell right or pick a caption language other than the one spoken, and it is not stored. Ticking Keep everything on this device stops every request that carries sound or words.
The video stays on your computer, so it is not given to us or to anyone else. Leave our speech service off, or tick Keep everything on this device, and the sound and the words stay on it too. Whether that meets the terms of your agreement is for you to judge: the checks on this page show you exactly what leaves.
Free to use: two videos every 30 days with no mark, or $49 once for unlimited videos. The free videos have every feature, and subtitle files (SRT, VTT, ASS and text) are free without limit for videos up to ten minutes, with no account.
What it is: a browser tool that burns animated word-by-word captions into a talking video, or cuts it to its best 30 or 60 seconds.
Price: free with every feature, for two videos every 30 days with no mark; Pro, $49 once, gives unlimited videos with no mark. Pro is not a subscription.
Privacy: the video never leaves your browser. The sound leaves only if you choose our speech service.
Files: MP4 or MOV up to ten minutes in; an MP4 with the captions burned in out. SRT, VTT, ASS and text files are free without limit for recordings up to ten minutes. A longer recording, up to 90 minutes on a computer, gives its script and those files: the first ten minutes free, all of it with Pro.
Languages and styles: captions in the language spoken, twelve Indian languages heard on your device, translation into 37 languages, 20 caption styles.
After it listens: correct any word (one click changes it everywhere), add or cut words, one to six words at a time, position, size, text and highlight colours, and names this browser remembers, all free and without listening again.
Made by: Jordan Labs Ltd, UK company no. 17358646.
Against other tools: fifteen caption tools compared, from the vendors' own pages.