Captions

Animated captions, timed word by word

Captions that pop in on the beat of speech, highlight the word being said, and stay inside the safe area of every platform, in themes you can switch in one click

Free plan: about 15 clips a month (300 credits) · no card needed

Lyrics timed to the audio, words landing on the beat · Real shitShorts output

How it works

  1. 01

    Add your video or audio

    Upload a clip, use one from the clipper, or start from a song

  2. 02

    Pick a caption theme

    Underline, boxed, karaoke, pop and more, all timed to the transcript at word level

  3. 03

    Edit and export

    Fix any word, change emphasis colours, move the block, then export up to 4K

What you get

  • Word-level timing

    Each word is timed to the audio, so highlights land exactly when it is spoken

  • Caption themes

    A library of styles tuned for sound-off viewing, switchable without re-timing anything

  • Brand kits

    Your fonts and colours applied to captions across every project

  • Safe-area placement

    Text sits clear of the like buttons and captions bars on TikTok, Reels and Shorts

FAQ

Questions people ask

Updated October 2026

How do I add captions to YouTube Shorts?
Upload the Short (or clip one from a long video), pick a caption theme, and captions are generated from the speech with word-level timing and placed above the Shorts interface. Fix any word, then export the MP4 with captions burned in, or schedule it straight to YouTube
Are captions included on the free plan?
Yes. Captions, caption themes, editing and exports are free on every plan. Credits are only spent on AI work such as generating video, premium voices or extracting clips from a long source
Can I edit the caption text?
Every caption is an editable layer in the Studio. Change a word, split or merge lines, adjust timing, pick emphasis words and restyle the whole block without regenerating the video
Which languages are supported?
Transcription covers the major languages spoken in short-form video. Captions keep the language of the source audio; check the language picker in the flow for the current list