Individual skill
caption-burn
Burned-in captions for a finished vertical video, three kinds. transcribe.py gets word timings from the video's own audio through the GooseWorks proxy (fal Whisper, charged to your GooseWorks credits, cents); captions.py burns one to three words at a time with Pillow + ffmpeg (no libass needed), either pinned to a split-screen seam (plate 25% above / 75% below) or at a fixed height, in a plate, outline or one-word serif style, with an optional red hook card; plates.py burns per-beat caption blocks (black, one union silhouette, placed in the emptiest band) for formats with no voice. The last caption (the CTA) holds to the final frame. Use as the last step of any video ad.
skills/video/caption-burn/SKILL.md
Source commit df8298140d434a6363de0c265eb6af2e571d97a5
What was checked
- Matches the observed repository HEAD
- Yes
- Scanner rules are current
- Yes
- Repository scan complete
- No
- Skill scan complete
- No
- Observed behavior
- Network or broad shell
- Last checked
- Nov 11, 2026
These are observations at the recorded commit, not a guarantee of safety. Review the source before running it.
Install this skill
Choose an agent in your Stack or copy a command below. Commands fetch the pinned commit and copy only this skill directory. Existing destinations are refused. Copying a command does not install anything.
An install command is unavailable: current rules, complete repository and skill scans, an eligible behavior level and a permitted license are required.
Repository context
- Repository stars (not skill ratings)
- 1,315
- Repository last updated
- Nov 6, 2026
- License
- MIT
Observed agent integration: No specific integration evidence. Standard SKILL.md installation does not imply verified compatibility.
- claude Repository topic
- claude-skills Repository topic
- claudecode Repository topic
- claudecode-skills Repository topic
- codex Repository topic
- cursor Repository topic
- gtm Repository topic
- skills Repository topic
- engineering Derived category
Files and excerpt
File metadata and permitted, redacted excerpts come from the recorded scan. Source links are pinned to that commit.
Browse files
SKILL.mdcore · 4,805 bytesSKILL.mdcore · 4,805 bytesSKILL.mdcore · 4,805 bytesSKILL.mdcore · 4,805 bytesscripts/_fonts.pyruns · 3,120 bytesscripts/captions.pyruns · 12,920 bytesscripts/footprint.pyruns · 2,708 bytesscripts/media_proxy.pyruns · 58,192 bytesscripts/plates.pyruns · 7,679 bytesscripts/transcribe.pyruns · 1,937 bytesskill.meta.jsonasset · 243 bytestests/smoke-test.mddoc · 634 bytes
Read excerpt
> **Superseded:** the video kit now does this with the captions-layer part, version 1.1.0, in the parts folder of this repository. It burns the same plate captions from the speech timings, holds the last caption to the end, transcribes only when there are no timings, and returns a WebVTT of what it drew. This atom stays, unchanged in behaviour, for skills outside the kit until they move; its scripts still run.
# caption-burn
Captions timed to what is actually said in the finished video, not to the script's
estimate.
## Run
```bash
python transcribe.py --media reel.mp4 --out reel.words.json # paid, cents
python captions.py --video reel.mp4 --beats cutlist.aligned.json \
--words reel.words.json --out final.mp4 [--style plate|outline] [--highlight Brand]
```