Animated subtitles.In your browser.
Drop a video. Style the captions. Export.
Drop a video to start.
or browse files.
MP4 · WEBM · MOV
Free. No sign-up. No watermark.
The whole editor runs on your device, for free.
Drop a video, transcribe, style, export. No sign-up, no upload, no watermark on the output.
A framework, not a style picker.
Every caption style is configuration, not a fixed preset. Tune font, colour, weight, animation, and layout. Write your own CSS when the controls are not enough.
One video, many caption styles.
Group scenes into sheets. Each sheet carries its own template and overrides, so an intro, the body, and a closing line can each look different in the same video.
The little things are handled.
Gap-free joins. Filler punctuation cleanup. Per-word timing. Subtitle file export in five formats. Undo and redo across every edit.
How it works
From a dropped video to a finished clip.
- 01
Drop your video.
Whisper runs in your browser and the captions come back as text you can edit. Nothing is uploaded.
- 02
Edit, structure, style.
Pick a template. Tune font, size, colour, animation, and layout. Override per word or per scene where it matters. Use sheets when one video needs several looks.
- 03
Export.
A single MP4 with the captions rendered into every frame. Plays the same on TikTok, Reels, Shorts, or anywhere else.
The engine
A template framework, not a style picker.
Most subtitle tools give you a small grid of looks and a few color knobs. Tscaps gives you the engine those looks are built on, with the full browser toolkit open.
Read the engine overview →- Anything a browser can paint
Templates can lean on whatever the browser already does. CSS gives them variable fonts, keyframed animations, and custom properties. SVG filters extend the toolkit when CSS is not enough.
- Templates are folders
A new style is a CSS file and a small manifest. Add it to the templates directory and it shows up in the gallery. No app rebuild, no plugin system.
- Open library, open contributions
Every built-in template is open source. Read the source, propose changes, or contribute new styles through the repo. The library belongs to whoever wants to extend it.
- Edit in the editor
The editor ships a code tab for the active sheet. Change the CSS, see the preview redraw. The same files live in the library when you want to push your work back.
Local or cloud
Cloud removes the limits.
Same editor underneath. Local runs on your device, so speed, accuracy, and mobile support are tied to your hardware. Cloud handles transcription on our servers and adds AI styling on top.
Free, private, on your device.
The full editor in your browser. No upload, no account, no watermark. The work runs on your hardware, with the limits that come with it.
- Free. No sign-up, no upload, no watermark.
- Transcription via in-browser Whisper.
- Bigger models are more accurate but slower. None match cloud.
- Mobile may present performance issues for transcription.
- No AI styling (smart emphasis, contextual emojis, scene-aware grouping).
- Open-source and self-hostable.
Faster, more accurate, smarter.
Server-side transcription and AI styling. Same editor underneath, but without the hardware limits.
- Fast transcription, regardless of your device.
- Higher accuracy with multi-speaker recognition.
- Works on mobile.
- AI styles your video per scene, per speaker, per word.
- Smart emphasis, contextual emojis, scene-aware grouping.
- Projects sync across devices.
Developer API
Subtitle video programmatically.
Integrate Tscaps into your backend, apps, or bulk automated workflows. Send a video, choose any caption template, and get the finished video rendered in the cloud at low cost.
Open core
The editor is open source.
Tscaps is built on an open-source engine and a self-hostable web editor. The hosted version adds the parts that need a server: accounts, cloud transcription, project sync, AI assist. Everything else is the same code.
FAQ
Frequently asked questions.
Where does my video go?
It stays on your device. The editor opens the file locally, transcription runs in your browser via Whisper, and the export renders frames in the page. Nothing is uploaded.
Why are the captions part of the video instead of a subtitle track?
Subtitle tracks need the player to render them. TikTok, Reels, Shorts, and muted autoplay ignore them. Tscaps burns the captions into the pixels of every frame, so they play the same everywhere. Animated captions (word-by-word reveal, per-word emphasis, keyframe transitions) cannot be expressed in subtitle formats at all.
What languages does the transcription handle?
Whisper covers 99 languages in-browser, including English, Spanish, Portuguese, French, German, Italian, Dutch, Russian, Japanese, Chinese, Korean, Arabic, Hindi, Turkish, Vietnamese and Hebrew. You pick the language on the start dialog.
See all 99 supported languages
- Afrikaans
- Albanian
- Amharic
- Arabic
- Armenian
- Assamese
- Azerbaijani
- Bashkir
- Basque
- Belarusian
- Bengali
- Bosnian
- Breton
- Bulgarian
- Burmese
- Catalan
- Chinese
- Croatian
- Czech
- Danish
- Dutch
- English
- Estonian
- Faroese
- Finnish
- French
- Galician
- Georgian
- German
- Greek
- Gujarati
- Haitian Creole
- Hausa
- Hawaiian
- Hebrew
- Hindi
- Hungarian
- Icelandic
- Indonesian
- Italian
- Japanese
- Javanese
- Kannada
- Kazakh
- Khmer
- Korean
- Lao
- Latin
- Latvian
- Lingala
- Lithuanian
- Luxembourgish
- Macedonian
- Malagasy
- Malay
- Malayalam
- Maltese
- Maori
- Marathi
- Mongolian
- Nepali
- Norwegian
- Nynorsk
- Occitan
- Pashto
- Persian
- Polish
- Portuguese
- Punjabi
- Romanian
- Russian
- Sanskrit
- Serbian
- Shona
- Sindhi
- Sinhala
- Slovak
- Slovenian
- Somali
- Spanish
- Sundanese
- Swahili
- Swedish
- Tagalog
- Tajik
- Tamil
- Tatar
- Telugu
- Thai
- Tibetan
- Turkish
- Turkmen
- Ukrainian
- Urdu
- Uzbek
- Vietnamese
- Welsh
- Yiddish
- Yoruba
How does in-browser transcription compare to cloud?
In-browser runs Whisper locally on your CPU or GPU. Cloud uses a higher-accuracy model on our servers and adds AI features: smart word emphasis, contextual emojis, scene-aware styling. For short clips, offline work, or sensitive content, in-browser is the better fit. For accuracy and AI assistance, the cloud version is the right pick.
Do I need to know CSS to style the captions?
No. Each template ships its own controls: font, size, weight, colour, spacing, animation, and more. Most projects never need to leave the controls. When you want to go further, the editor has a code tab that opens the CSS with a live preview.
Can different parts of one video have different caption styles?
Yes. Group scenes into sheets and pick a template per sheet. An intro, the body, and a closing line can each look different in the same project.
Can I edit the transcript after it generates?
Yes. Rewrite words, retime per word or per scene, split lines, insert words mid-scene. You can also assign scenes to sheets by hand, one at a time or several at once.
Can I create my own caption styles and share them?
Yes. A template is a folder with a small manifest and a CSS file. Build it locally, open a pull request, and once it lands in the repo it is part of the built-in library.
Why is the local version free?
The editor and its engine are open source. The local path runs entirely on your machine, so there is no server cost. The cloud version exists for users who want hosted transcription, AI assistance, and project sync, and that is what the subscription pays for.