πŸ“– Recipes
Content Creation (Slides & Video)

Content Creation Pipeline

Turn any URL β€” a GitHub repo, blog post, article, or tweet β€” into a polished YouTube Short. This pipeline covers the full journey from research to upload in 8 steps, with your Claw handling writing, video generation, and publishing.

Time to complete: ~30–45 minutes depending on HeyGen rendering.

This recipe is based on a working production pipeline. See the full reference at zenbin.org/p/rakis6363-content-pipeline (opens in a new tab).

What you need

The 8-step pipeline

Step 1: Research

Give your Claw a URL and ask it to compile a structured research document:

Research this URL: [link]
Find community reactions and context with web search.
Compile: source summary, key points, community pulse, angle ideas.
Save to content/research/<topic>.md

Step 2: Write the essay

Load your voice and writing style first, then write the script:

Read ESSAY_SOUL.md for my perspective and voice.
Write a 280–350 word conversational essay from content/research/<topic>.md
Structure: hook β†’ what happened β†’ why it matters β†’ your take β†’
broader implications β†’ punchy close.
Save to content/essays/<topic>.md

ESSAY_SOUL.md is the author's voice file β€” it captures their tone and personality, the principles and practices they hold, and their core approach to everything they create. It's what makes the output sound like them and not like a generic AI script. Before the Claw writes a single word, it reads this file to understand who it's writing for and how that person thinks.

The script should feel like a founder talking on a podcast β€” personal, opinionated, with a clear point of view.

Step 3: Proof with Writer.com

Run the essay through Writer.com's Palmyra X5 for grammar, AP style, and AI pattern cleanup:

cat content/essays/<topic>.md | python3 skills/public/writer-com/scripts/proof.py

Step 4: Humanize

Strip the remaining AI writing patterns β€” inflated symbolism, em dash overuse, filler phrases, vague attributions. Then add personality back in:

Humanize content/essays/<topic>.md
Remove: promotional language, AI vocabulary, negative parallelisms,
rule of three, superficial -ing analyses.
Add: opinions, rhythm variation, acknowledgment of complexity.
Edit in place.

Step 5: Generate the video via HeyGen

Send the script to HeyGen's Video Agent API. Use tone descriptions, not timestamps:

Send content/essays/<topic>.md to HeyGen Video Agent.
Append: "Tone: like a founder explaining something surprising on a podcast."
Avatar: e892396b3f354602b771f29146c5366f
Voice: 0356eda1a1414066bafac71d0f1e046c
Orientation: portrait (1080x1920)
Poll GET /v3/video-agents/{session_id} every 30-60s until completed.
Fetch captioned video URL from GET /v3/videos/{video_id}

HeyGen handles scene composition, B-roll, text overlays, and captions natively.

Step 6: Download

Download the captioned video. It's already 1080Γ—1920 portrait β€” no cropping needed.

Step 7: Stitch bumpers

Add branded intro and outro cards:

bash content/scripts/stitch_bumpers.sh input.mp4 output.mp4
  • Intro: 4 seconds ("This Week in Coding Agents")
  • Outro: 5 seconds ("Thanks for watching β€” Like and Subscribe β€” @Rakis6363")
  • Both are silent β€” the video's audio flows through uninterrupted

Step 8: Upload to YouTube

Upload unlisted first, review, then schedule for 6:00 AM ET:

python3 skills/public/youtube-publish/scripts/upload_video.py \
  --file="output.mp4" \
  --title="..." \
  --description="Source: [original URL]" \
  --keywords="AI,agents,..." \
  --privacyStatus="unlisted"

After reviewing, set status.publishAt to 10:00 UTC (6:00 AM ET).

Workspace layout

content/
β”œβ”€β”€ research/           # Research documents
β”œβ”€β”€ essays/             # Essay drafts (final = humanized version)
β”œβ”€β”€ scripts/
β”‚   └── stitch_bumpers.sh
β”œβ”€β”€ bumpers/            # Cached bumper card assets
└── videos/             # Final MP4 files

Required environment variables

VariableWhere to get it
HEYGEN_API_KEYapp.heygen.com/settings/api
WRITER_API_KEYapp.writer.com/settings/api
YouTube OAuthclient_secrets.json at workspace root

Lessons learned

  • Video Agent v3 > older endpoints β€” auto captions, native portrait, B-roll included
  • Great scripts first β€” personal stories beat lists of facts every time
  • Tone descriptions beat timestamps β€” "like a founder on a podcast" produces better results than "Scene 1 (0–5s)"
  • Always include the source URL in the YouTube description
  • Upload unlisted first, review, then schedule
  • The humanizer step is critical β€” even well-proofed text sounds like AI without it
  • HeyGen rendering takes 3–8 minutes β€” poll every 30–60 seconds, don't re-submit

The Humanizer skill is essential to this pipeline. Install it first: npx clawhub@latest install humanizer