youtube-video-kit — one keyword, one video, one kit
Max records the face; everything else is produced here. The video targets the SAME
keyword as an existing page (usually a /best/<slug> page) so the two boost each
other: the page embeds the video (videoId seam already live in
lib/seo/best-pages.ts + components/seo/lite-youtube.tsx + VideoObject JSON-LD),
and the video description links the page.
Inputs
- A slug (e.g.
crm-for-small-business) or keyword. Resolve the matching page +
registry data (best-pages.ts contenders / competitor-pricing.ts numbers).
Produce (write everything to docs/strategy/video-kits/<slug>/)
- script.md — 6-9 minutes spoken (~950-1400 words), structured:
- COLD OPEN (first 15s): the pain number, not the topic ("A missed call costs a
plumber about $120. Here's the CRM setup that stops that.")
- The honest framing sentence early: "I build one of these tools, so I'm biased —
I'll tell you exactly when the others win." (never-lies ON camera too)
- One chapter per contender, EXACTLY the facts from the registry (same numbers,
same hedges — the video must never contradict the page), each with the honest
watchOut.
- SeldonFrame's chapter states the flat price + the free build-before-signup.
- CLOSE: "full written breakdown + the calculator is linked below."
- Short sentences, spoken register, grade-6. Mark [B-ROLL: show ]
cues where screen-recording the live page fits.
- thumbnail.png — pull from the live OG endpoint (it IS a thumbnail generator):
https://www.seldonframe.com/api/og?kind=best&title=...&aud=...&n=...
(or kind=tool for calculator videos). Download it; if a stronger hook exists,
note alternate param text. 1200x630 upscales fine for YT.
- metadata.md —
- 3 title options, keyword-FIRST ("Best CRM for Small Business in 2026 —
honest ranking (I build one)"), ≤60 chars preferred.
- Description: keyword in the first sentence, then the page link, the matching
calculator link, timestamp chapters, and the standing disclosure line.
- Chapters (from the script sections, MM:SS placeholders).
- Pinned comment draft: the one-line honest summary + page link.
- 10-15 tags.
- shorts.md — 3 clip specs (start/end cue by script section, the hook line,
vertical caption text) for the repurpose pass. No native shorts content.
After Max publishes
Given the videoId: set videoId (+ videoUploadDate YYYY-MM-DD) on the matching
BEST_PAGES entry in lib/seo/best-pages.ts, run the seo specs, commit, push,
merge per the house merge method. The page then renders the lite embed + VideoObject
schema automatically.
Rules
- Facts come ONLY from the registries — if the script needs a number the registry
lacks, flag it, don't invent it.
- The disclosure line is non-negotiable and appears in script + description.
- One video = one keyword = one kit dir. Don't bundle.
1---2name: youtube-video-kit3description: Produce the complete publishing kit for one keyword-targeted YouTube video (script, thumbnail, title/description/chapters/pinned comment) from its matching SEO page, and wire the videoId back into the page after publish. Invoke with a /best or /tools slug, or a keyword.4---56# youtube-video-kit — one keyword, one video, one kit78Max records the face; everything else is produced here. The video targets the SAME9keyword as an existing page (usually a `/best/<slug>` page) so the two boost each10other: the page embeds the video (videoId seam already live in11`lib/seo/best-pages.ts` + `components/seo/lite-youtube.tsx` + VideoObject JSON-LD),12and the video description links the page.1314## Inputs15- A slug (e.g. `crm-for-small-business`) or keyword. Resolve the matching page +16 registry data (`best-pages.ts` contenders / `competitor-pricing.ts` numbers).1718## Produce (write everything to `docs/strategy/video-kits/<slug>/`)19201. **script.md** — 6-9 minutes spoken (~950-1400 words), structured:21 - COLD OPEN (first 15s): the pain number, not the topic ("A missed call costs a22 plumber about $120. Here's the CRM setup that stops that.")23 - The honest framing sentence early: "I build one of these tools, so I'm biased —24 I'll tell you exactly when the others win." (never-lies ON camera too)25 - One chapter per contender, EXACTLY the facts from the registry (same numbers,26 same hedges — the video must never contradict the page), each with the honest27 watchOut.28 - SeldonFrame's chapter states the flat price + the free build-before-signup.29 - CLOSE: "full written breakdown + the calculator is linked below."30 - Short sentences, spoken register, grade-6. Mark [B-ROLL: show <page URL>]31 cues where screen-recording the live page fits.322. **thumbnail.png** — pull from the live OG endpoint (it IS a thumbnail generator):33 `https://www.seldonframe.com/api/og?kind=best&title=...&aud=...&n=...`34 (or kind=tool for calculator videos). Download it; if a stronger hook exists,35 note alternate param text. 1200x630 upscales fine for YT.363. **metadata.md** —37 - 3 title options, keyword-FIRST ("Best CRM for Small Business in 2026 —38 honest ranking (I build one)"), ≤60 chars preferred.39 - Description: keyword in the first sentence, then the page link, the matching40 calculator link, timestamp chapters, and the standing disclosure line.41 - Chapters (from the script sections, MM:SS placeholders).42 - Pinned comment draft: the one-line honest summary + page link.43 - 10-15 tags.444. **shorts.md** — 3 clip specs (start/end cue by script section, the hook line,45 vertical caption text) for the repurpose pass. No native shorts content.4647## After Max publishes48Given the videoId: set `videoId` (+ `videoUploadDate` YYYY-MM-DD) on the matching49`BEST_PAGES` entry in `lib/seo/best-pages.ts`, run the seo specs, commit, push,50merge per the house merge method. The page then renders the lite embed + VideoObject51schema automatically.5253## Rules54- Facts come ONLY from the registries — if the script needs a number the registry55 lacks, flag it, don't invent it.56- The disclosure line is non-negotiable and appears in script + description.57- One video = one keyword = one kit dir. Don't bundle.