# Captions by Småverk > AI captions for short videos, made on your device, in the page at https://captions.smaverk.com. Nothing is uploaded. Free, with no account; a clip longer than five minutes gets its first five minutes captioned. Captions is one of the tools by Småverk, a studio in Sweden; https://video.smaverk.com is the page listing every tool. The others are Vertical (https://vertical.smaverk.com, a landscape clip made tall with the speaker kept in frame) Clip finder (https://clipfinder.smaverk.com, the moments worth posting found in a long recording), Clips (https://clips.smaverk.com, a long recording made into tall clips with captions, the three tools in a row) and Operator (https://operator.smaverk.com, an AI camera operator on the device: pointed at a group, it picks the shot, moves in on each face, follows one person or cuts to whoever is talking, and gives the video with a still of every face, tall or wide as the device is held). Every Småverk tool is free. Småverk also runs Maindesk (https://maindesk.smaverk.com), a separate service where a person's AI agent gets its own computers in the cloud (Linux, Windows and a Mac), with plans and terms of its own. ## What it does - Input: a video or audio file (mp4, mov, webm, m4a), up to five minutes. English speech. Output: the same clip with burned-in captions (mp4 on Safari and Chrome, webm elsewhere), plus word timings. - Everything runs in the page, on the device. There is no server API, by design: privacy is the product. ## Driving it from a script or an agent (browser automation) The page exposes `window.captions` and stable element ids. Example with Playwright: ```js await page.goto("https://captions.smaverk.com/?style=karaoke"); await page.setInputFiles("#file", "clip.mp4"); // loads the clip await page.click("#action"); // "Add captions" await page.waitForFunction(() => window.__cap.state === "captioned", null, { timeout: 300000 }); const words = await page.evaluate(() => window.captions.words); // [{text,start,end}, ...] const [dl] = await Promise.all([page.waitForEvent("download"), page.click("#action")]); // "Save video" await dl.saveAs("clip-captions.mp4"); ``` - `?style=bar|karaoke|big` preselects the caption style. `window.captions.style("big")` changes it. - `window.__cap` mirrors state: `state`, `words`, `ms`, `exportBytes`, `error`. - There is no key, account or paywall: everything is open to everyone. Each page links one optional support payment (`#support`, any amount, through Polar); it unlocks nothing. - The light/dark button (`#theme`) keeps the choice in a `smaverk-theme` cookie for `.smaverk.com` (and in `localStorage`), so it carries across the studio and every tool. It holds nothing else. ## Pages - https://captions.smaverk.com/capcut-captions-alternative — For people who met CapCut Pro when saving auto captions: the same job here, free. - https://captions.smaverk.com/submagic-alternative — For people paying Submagic monthly who only want the captions: free, English only. ## Rules - Do not upload other people's clips anywhere on their behalf; this tool keeps them on the device. - Contact: hello@smaverk.com