keryx reel¶
Manage and build reels. A reel workspace is the resumable unit of the authoring loop — see the Workspace concept.
Workspace lifecycle¶
keryx reel new <slug> [--theme <kw>] [--bundle <dir>] [--from-post <md>] [--force]
keryx reel list
keryx reel rename <old> <new>
keryx reel duplicate <src> <dst> # copies authoring inputs, resets posting status
keryx reel rm <slug> --yes
keryx reel link <slug> <dir> # associate a content directory (page bundle)
keryx reel prune <slug> # drop candidate takes + cache (keep selected)
newscaffolds<root>/<slug>/withworkspace.yaml, an empty schema-validstoryboard.json,vo/+cards/dirs, and a.gitignorefor takes/cache (refuses to clobber without--force—R-WS-4/5).--from-postmarks the board unreviewed;keryx storyboard draft(LLM) seeds it later.listenumerates the project's reels with status + theme + bundle (R-WS-16).duplicatecopies authoring inputs but notsocial.json— a copy hasn't been posted (R-WS-17);rename/rmare guarded (R-WS-18;rmrequires--yes).linkrecords an associated content directory inworkspace.yaml(R-WS-19).
The reel root defaults to reels/ (configurable via workspace.root).
keryx reel build¶
keryx reel build¶
Assemble a 9:16 reel from a storyboard — render each card, crossfade with ffmpeg,
optionally mix a VO-driven audio track. A port of the blog gen-reel.py
(spec §3.1).
keryx reel build --storyboard board.json [--cover cover.png] [--theme <kw>] [--silent] [--out reel.mp4]
keryx reel build --workspace <dir> # uses <dir>/storyboard.json, vo/, music.mp3, cover.png
| Flag | Meaning |
|---|---|
--storyboard |
storyboard.json path (standalone mode) |
--workspace |
a reel workspace dir (storyboard.json, vo/*.mp3, music.mp3, cover.png) |
--cover |
cover image for bookend cards |
--theme |
reel theme (palette + card fonts/treatment); else the configured reel default |
--silent |
render with no audio, using the storyboard dur timing — the fast pacing proof |
--out |
output MP4 path (default reel.mp4) |
How it builds¶
- Parse + validate the storyboard (exit
2on schema errors — see Storyboard). - Render each card to a PNG (block or overlay) in the theme's palette + fonts.
- Timing.
--silent/novo/→ storyboarddur; a workspacevo/→ VO-driven (card = VO + lead + tail; cards crossfade). - Assemble with ffmpeg: an xfade chain, plus (when audio is present) the music bed ducked under the VO, mixed and limited.
Output is 1080×1920, 30fps, H.264 (+ AAC when there's audio).
keryx reel build --storyboard board.json --cover cover.png --silent --out draft.mp4
keryx reel build --workspace content/post/my-slug/reel --theme editorial
Notes¶
- Rendering is provider-selected via
providers.render(default local ffmpeg) — see Providers. Needsffmpeg/ffprobe+ the theme's card fonts (DejaVu by default). - Generated video panels are deferred to Phase 5; overlay cards use stills (generated or uploaded).