embedded-captions

Adds verbatim or cinematic captions to talking-head videos using transcription and subject matting.

13|17|Updated Jan 30, 2025
One-click install
npx skills add https://github.com/CodeWithSally/CodeWithSally-Apex-English --skill embedded-captions-codewithsally
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: embedded-captions
Source: https://github.com/CodeWithSally/CodeWithSally-Apex-English/tree/main/Sessions/ClaudeCode/Session007/.agents/skills/embedded-captions
Command: npx skills add https://github.com/CodeWithSally/CodeWithSally-Apex-English --skill embedded-captions-codewithsally

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires hyperframes, whisperx, onnxruntime, and includes scripts (resource) and references (resource) and assets (resource) components.

What problem does it solve? Adding styled captions to talking-head videos normally requires manual editing, keyframing, and rotoscoping. This Skill automates the full pipeline locally: it transcribes speech, segments the subject from the background, and composites captions into the scene without altering the original footage. ## Core Features & Use Cases - 35-style identity catalog: Pick one visual identity (e.g. cream, ink, anchor, terminal, vhs) from a single catalog; the engine, compiler, and authoring file are derived automatically. - Rail + embed caption model: A verbatim lower-third rail carries most text while scarce peak words are composited behind the subject using matte occlusion for a cinematic depth effect. - Local end-to-end pipeline: One prepare script runs subject matting, WhisperX transcription, and safe-zone analysis in parallel, followed by JSON authoring, fast preview-frame QA, and a gated render to final.mp4. - Use Case: Given a 30-second founder update clip, probe the footage, pick the keynote identity, author a small JSON of caption blocks, preview composite frames, and render a captioned video with the climax word embedded behind the speaker. ## Quick Start Ask the agent to add captions to your talking-head video file and let it probe the clip, recommend an identity from the catalog, and render the captioned result.

Frequently Asked Questions about embedded-captions

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add captions to a talking-head video automatically?

Run the skill's pipeline: initialize a project with your video, run prepare.sh to matte the subject and transcribe speech in parallel, author a small JSON of caption choices, preview composite frames, then render to final.mp4. The footage itself is never edited.

How do I choose between the caption styles or identities?

Pick one identity from the 35-entry catalog in CATALOG.md based on content register and scene brightness; the engine and compiler are derived automatically. Bright scenes suit ink, explainers default to the quiet anchor rail, and VFX-grade asks map to themed identities like ordnance or terminal.

What videos does this caption skill refuse to process?

It refuses multi-speaker or hard-cut footage, clips without a clear human subject, videos under 3 seconds or without speech, footage with existing burned-in captions, garbage transcripts, and busy handheld shots where the matte flickers.

Does the captioning pipeline require cloud services or manual installs?

No. Everything runs locally: transcription uses WhisperX via uvx, matting uses a bundled ONNX model on CPU, and rendering uses the hyperframes CLI. Python touchpoints are handled through uvx without manual package installs.

Why do my captions wash out or look unreadable on bright footage?

Screen-blend caption styles fail on backgrounds above roughly 180 luminance. The fix is to pick the ink identity built for bright scenes or the opaque anchor rail, never to recolor a locked template. Preview frames before rendering catch this early.

Can captions be placed behind the subject in the video?

Yes. The embed track composites peak words behind the subject using the person matte, targeting roughly 30-55 percent occlusion. Embed is intentionally scarce: at most one hero per beat, with the verbatim rail carrying the rest of the text.