caption-burn
Transcribes the finished vertical video's own audio and burns 1–3 word captions timed to what is actually said.
Image & VideoIntermediate★ 1,226⑂ 208AI score 8/10Last updated: Sep 28, 2026
What it does
transcribe.pytranscribes the finished render's audio for word-level timings (fal Whisper via the GooseWorks proxy, billed in cents).captions.pyburns 1–3 words at a time using Pillow + ffmpeg — no libass required.- Three looks:
plate(white bold on a dark rounded plate),outline(outlined, no plate),serif-word(one heavy-serif word at a time). - Placement: pinned to a split-screen seam (plate 25% above / 75% below the line) or at a fixed height via
--anchor fixed --y 0.62. - Optional red all-caps hook card for the opening seconds (
--card) and yellow keyword highlighting (--highlight). - For voice-free formats,
plates.pyburns per-beat black caption blocks into the emptiest band of the frame. - The final caption (the CTA) holds to the last frame.
Who it's for
- Performance marketers and editors shipping vertical ads for Reels, Shorts and TikTok
- Anyone who needs captions matched to real speech rather than script estimates
- Creative teams running Python/ffmpeg automation pipelines
Examples
python transcribe.py --media reel.mp4 --out reel.words.json, thenpython captions.py --video reel.mp4 --beats cutlist.aligned.json --words reel.words.json --out final.mp4.- Highlight the brand name in yellow:
--style outline --highlight Brand. - Silent product walkthrough:
python plates.py --video walk.mp4 --beats cutlist.json --out captioned.mp4 --logo logo.png.
· · · Install guide · · ·
Try it now, no install
Paste this into Claude to use the skill without installing anything.
Read the instructions in this file and follow them to help me: https://raw.githubusercontent.com/gooseworks-ai/goose-skills/HEAD/skills/ads/capabilities/caption-burn/SKILL.md What I want: (describe your task here)
If Claude can't open the link, open it yourself and paste the contents instead.
↓ If it works for you, download the ZIP below and install it. Then it runs on its own — no pasting each time.
Install in the Claude app (no terminal)
- Download the ZIP with the button below.
- In Claude, open Settings → Capabilities and turn on 'Code execution and file creation'. (one time)
- Go to Customize → Skills → + → 'Upload a skill' and upload the ZIP.
Install in Claude Code
Let Claude do it — paste this into Claude Code
Install the skill I found on Claude Skill Mart. Copy the skills/ads/capabilities/caption-burn folder from the GitHub repo gooseworks-ai/goose-skills into my ~/.claude/skills/caption-burn/. When it's done, tell me in one line what this skill can do.
Install with a command instead
git clone https://github.com/gooseworks-ai/goose-skills.git && mkdir -p ~/.claude/skills && cp -r goose-skills/skills/ads/capabilities/caption-burn ~/.claude/skills/⚠ This is a third-party skill. Check the source repository before installing.
- Open a terminal.
- Clone the repo:
git clone https://github.com/gooseworks-ai/goose-skills.git - Create the skills folder:
mkdir -p ~/.claude/skills - Copy the skill:
cp -r goose-skills/skills/ads/capabilities/caption-burn ~/.claude/skills/ - Install prerequisites:
ffmpeg(macOS:brew install ffmpeg) andpip install pillow. - Transcription needs GooseWorks proxy credentials and costs a few cents. Without them, run without
--wordsto preview placement only — never to ship. - Restart Claude Code and ask something like "burn captions onto this finished vertical ad" to trigger the skill.
View source on GitHub ↗License: MIT