app
Adom Video Post-Production
Public Made by Adomby adom
AI-driven studio for finishing demo videos: review every captured clip, flag and re-record the weak ones, speed up dead air, narrate, mux and auto-level, validate the final cut, and publish straight to the wiki, driven end to end by your AI.
← Commit history
Publish 1.0.7
4 files changed
+18−6
Cargo.toml+1−1@@ -1,6 +1,6 @@ [package] name = "adom-video-post"-version = "1.0.6"+version = "1.0.7" edition = "2021" description = "Post-process screen recordings: speed up boring sections with overlay captions, voiceover after the fact, publish to the Adom Wiki" license = "MIT"
SKILL.md+4@@ -217,6 +217,10 @@ fabrication exports) that you want to compress. Flow B is the original pipeline. Still supported, still correct when it's the right fit. +## 🔤 Captions on frames: brand fonts, wrapped, never ffmpeg drawtext with a system font++Text drawn on a frame is Familjen Grotesk (labels), Satoshi (captions) or JetBrains Mono (chips), wrapped to the frame and set on a blurred dark halo. That is what `gang_takes.py` does (it fetches the brand fonts from the wiki and converts them itself). A raw `drawtext` with DejaVu or Arial, or any single unwrapped line, is a defect: on 2026-09-12 one shipped with the caption running off both edges of the video. Split a single take into one clip per beat and give each its label, chip, captions and narration; a demo video is never silent (adom-tts narration fitted to the cut). Full checklist, including the wiki README embedding rules and the rendered-page check: the **demo-video-publishing** skill in the demo-authoring-skillpack.+ ## 🎞️ Gang several takes into one narrated video: the `gang-takes` skill When the user wants "one video from these takes", "only show the action", "cut the boring parts and narrate", or "captions over the screen recording in our fonts", use the bundled **gang-takes** skill (`~/.claude/skills/gang-takes/`, tool `gang_takes.py`). It keeps the frames pure (no cards, no letterbox), cuts each take to its action in real time by change detection (idle before, between and after removed, nothing sped up unless asked), states the real duration on screen, measures the cut and fits the adom-tts narration to that length, and draws the labels and captions in the Adom brand fonts on a soft glow. Reference output: the 21 s three-engine routing video on the kicad-bridge page, cut from three raw takes of 12, 38 and 43 s.
page.json+1−1@@ -26,7 +26,7 @@ "binary_name": "adom-video-post" }, "type": "app",- "version": "1.0.6",+ "version": "1.0.7", "description": "AI-driven studio for finishing demo videos: review every captured clip, flag and re-record the weak ones, speed up dead air, narrate, mux and auto-level, validate the final cut, and publish straight to the wiki, driven end to end by your AI.", "bundled": true, "dependencies": {},
skills/gang-takes/SKILL.md+12−4@@ -104,9 +104,17 @@ like KiCad, or the canvas is white), the label does not sit on the thing being d every change you expected made it into the cut (compare the report's events with the number of commits you made), and the narration report says it fit. +## One take, several beats+A single recording works too: cut it into one clip per beat (`ffmpeg -ss A -to B -c copy`) and list+each as a segment with its own label, chip, captions and narration. Do not reach for ffmpeg+`drawtext` instead: a system font and an unwrapped line are exactly what this tool exists to avoid.+ ## Publishing -Push the MP4 and poster to the page and embed with a `<video>` tag whose `src` is-`/blob/app/<page>/docs/videos/<file>.mp4`, with a plain "Watch" link to the-`/api/pages/<owner>/<page>/files/...` URL for phones. Confirm the URL serves with curl before-telling anyone it is live.+Push the MP4 and poster through the page's git repo (`adom-wiki repo push <owner>/<slug> --files+...`) and embed with `<video controls preload="metadata" width="1080" poster="<folder>/poster.png"+src="<folder>/final.mp4"></video>`: paths are written from the page root even inside a sub-folder+README, the sanitizer strips `style` so the numeric `width` is what keeps the video inside the+column, and a plain "Download the video" link serves phones. Then verify the RENDERED page: read+its `<video>` tag, HEAD the resolved `src`, and open it in a browser on a test box. A curl of a URL+you typed proves nothing (the **demo-video-publishing** skill has the full checklist).