app
AI Flow: Video
Public Made by Adomby adom
Turn a board build into a narrated walkthrough video on your wiki page and YouTube.
← Commit history
Publish 0.5.1
9 files changed
+7−7
Cargo.lock+1−1@@ -4,7 +4,7 @@ version = 4 [[package]] name = "adom-aiflow-video"-version = "0.5.0"+version = "0.5.1" dependencies = [ "clap", "serde",
Cargo.toml+1−1@@ -2,7 +2,7 @@ # Copied from adom/adom-aiflow template/flow-app. This copy is yours: change anything, never depend on aiflow. [package] name = "adom-aiflow-video"-version = "0.5.0"+version = "0.5.1" edition = "2021" license = "MIT"
README.md+1−1@@ -102,4 +102,4 @@ Your film is yours: it carries no Adom logo. The Adom logo sting is only for off ## Status -0.5.0. It grew out of the Ghost Hand films ([john/ghost-hand](https://wiki.adom.inc/john/ghost-hand)). Working today: the flow and its hints, clip recording, the disk estimate, script feedback, the text privacy scan, file tracking and cleanup, the walkthrough director, the narration page (voice, camera picture, drawing, playback check, AI notes), and the YouTube channel check, title and thumbnail feedback and upload. Still done by the AI by hand, with the skill as the guide: the cut itself, putting the voice, picture and drawings on the film, lining up a second recorder, composing thumbnails, and the frame-by-frame privacy check.+0.5.1. It grew out of the Ghost Hand films ([john/ghost-hand](https://wiki.adom.inc/john/ghost-hand)). Working today: the flow and its hints, clip recording, the disk estimate, script feedback, the text privacy scan, file tracking and cleanup, the walkthrough director, the narration page (voice, camera picture, drawing, playback check, AI notes), and the YouTube channel check, title and thumbnail feedback and upload. Still done by the AI by hand, with the skill as the guide: the cut itself, putting the voice, picture and drawings on the film, lining up a second recorder, composing thumbnails, and the frame-by-frame privacy check.
bin/adom-aiflow-video⋯ 1 unchanged line ⋯
docs/screenshots/example-thumbnail.jpg⋯ 1 unchanged line ⋯
package.json+1−1@@ -1,7 +1,7 @@ { "slug": "adom-aiflow-video", "type": "app",- "version": "0.5.0",+ "version": "0.5.1", "title": "AI Flow: Video", "description": "Make a narrated walkthrough video of a board built in Adom Hydrogen, put it on the project's wiki page and help the human upload it to YouTube. A dynamic skill: a small Rust binary that suggests each step, records clips, ships a ready-made 3D walkthrough director and gives gentle feedback; the AI does the work. Open source (MIT): the full Rust source ships on this page; build it yourself with ./build.sh.", "category": "Developer Tools",
page.json+1−1@@ -1,7 +1,7 @@ { "slug": "adom-aiflow-video", "type": "app",- "version": "0.5.0",+ "version": "0.5.1", "title": "AI Flow: Video", "description": "Make a narrated walkthrough video of a board built in Adom Hydrogen, put it on the project's wiki page and help the human upload it to YouTube. A dynamic skill: a small Rust binary that suggests each step, records clips, ships a ready-made 3D walkthrough director and gives gentle feedback; the AI does the work. Open source (MIT): the full Rust source ships on this page; build it yourself with ./build.sh.", "category": "Developer Tools",
skills/adom-aiflow-video/SKILL.md+1−1@@ -118,7 +118,7 @@ After they press Use this take they are looking at the narration page, not at yo ## YouTube: the title, the thumbnail, the upload -The title and the thumbnail decide whether anyone presses play, so do them with the human, not for them. Offer about five titles, best first (`youtube title "A" "B" ...` gives feedback on each): what was made, for whom or why, and the tool, in words a person would search for. Compose two or three thumbnails at 1280 x 720: one clean frame of the finished board or product, a frame of the narrator from their camera take if they were on camera, and 3 to 5 large words that do not repeat the title; `youtube thumbnail <file>` checks size and weight. Let them choose. Adom's own thumbnail style and logo are for official Adom videos only (see `brand`).+The title and the thumbnail decide whether anyone presses play, so do them with the human, not for them. Offer about five titles, best first (`youtube title "A" "B" ...` gives feedback on each): what was made, for whom or why, and the tool, in words a person would search for. Compose two or three thumbnails at 1280 x 720: one clean picture of the finished product where it is used (the gadget in its case on the counter with the sink behind it tells the story; a bare board does not, unless the board is the story). When the film has no such frame, set one up: open the project's 3D model in the Adom 3D viewer, put the camera low and close to the product with its surroundings behind it, hide the viewer's controls and take the picture. Add a frame of the narrator from their camera take if they were on camera, and 3 to 5 large words that do not repeat the title; `youtube thumbnail <file>` checks size and weight. Let them choose. Adom's own thumbnail style and logo are for official Adom videos only (see `brand`). Write the description in their voice: the hook in the first two lines, the link to the project's wiki page, what the film shows, chapters as `m:ss Title` lines starting at 0:00 with every chapter at least 10 seconds long, and what it was built with.
src/youtube.rs+1−1@@ -62,7 +62,7 @@ pub fn thumbnail(file: &str) -> (String, Vec<String>) { if w == 0 { hints.push("Could not read the picture: make a 1280 x 720 JPG or PNG.".into()); } else { if w * 9 != h * 16 { hints.push(format!("{w} x {h} is not 16:9: YouTube will add bars or crop it; 1280 x 720 is the standard.")); } if w < 1280 { hints.push(format!("{w} px wide is small: 1280 x 720 or larger stays sharp.")); } } if size > 2_000_000 { hints.push(format!("{:.1} MB is over YouTube's 2 MB limit: save it as a JPG at a lower quality.", size as f64 / 1e6)); }- hints.push("How to compose one: take a clean frame of the finished board or product from the film (`ffmpeg -ss <t> -i film.mp4 -frames:v 1 frame.png`), a frame of the narrator from their camera take if they were on camera, and 3 to 5 large words on the left. Keep faces and words out of the bottom-right corner (the duration badge) and the bottom-left (link previews on social sites cover it). View it at 320 px wide: if the words are not readable there, they are too small.".into());+ hints.push("How to compose one: show the finished product where it is used, not a bare board (if the film has no such frame, stage one in the Adom 3D viewer: camera low and close, the surroundings behind it, the viewer's controls hidden). Take a clean frame (`ffmpeg -ss <t> -i film.mp4 -frames:v 1 frame.png`), a frame of the narrator from their camera take if they were on camera, and 3 to 5 large words on the left. Keep faces and words out of the bottom-right corner (the duration badge) and the bottom-left (link previews on social sites cover it). View it at 320 px wide: if the words are not readable there, they are too small.".into()); hints.push("Show the human two or three versions and let them choose. It is their face and their channel.".into()); (format!("thumbnail {w} x {h}, {:.2} MB", size as f64 / 1e6), hints) }