Build a Faceless AI Video Channel · 20 min · Python · FFmpeg · Anthropic Claude API
Introduction
By the end of this course, a single command produces a complete, watchable video — topic discovered, script written, voiced, assembled with B-roll and captions, uploaded — in under 5 minutes. Today: which niche, and get every account working before any pipeline code exists.
Objective
What you're building
Nothing generates video yet. Today is a real niche decision and a fully verified set of API keys — skipping this and "figuring out the niche later" is exactly how a channel ends up with no consistent identity.
The 7-node pipeline, end to end
trending topic (Reddit)
│
▼
script writer (Claude)
│
▼
voiceover generator (ElevenLabs)
│
▼
B-roll assembler (Pexels + MoviePy) ◀── the most complex node (Lesson 5)
│
▼
caption generator (Whisper word timing)
│
▼
final assembler (MoviePy -> MP4)
│
▼
auto uploader (YouTube Data API)
Every box is one lesson, in this exact order — each node's output is the next node's input, which is why niche and voice consistency decided today (not per-video later) matter: changing them mid-pipeline means re-touching every downstream stage.
Niche selection: 3 real criteria, not "whatever seems fun"
Search volume + low competition + replicability -- all 3, not just one
A niche with high search volume but saturated with established channels (tech news) is hard to break into. A niche with low competition but no real search volume (extremely narrow hobby facts) has no audience to find you. A niche that's replicable (you can make video #50 as easily as video #1 -- "productivity tips," "AI news," "nature facts") sustains a real content calendar; one that requires deep, non-repeatable research per video (investigative journalism) doesn't fit an automated pipeline at all.
Budget for ElevenLabs before you start, not mid-course
ElevenLabs' free tier (10k characters/month) covers roughly 3-4 full video scripts -- you WILL hit this limit during this course's 3-video requirement plus testing. Either budget for the Starter plan (~$5/month) before Lesson 4, or plan your testing carefully. This is exactly the kind of real cost this course's own SPEC flags upfront rather than letting you discover it mid-pipeline.
Verify every account before writing pipeline code
# One test call per service -- verify all 5 work BEFORE building anything
python -c "import praw; print('PRAW: OK')"
curl -s https://api.elevenlabs.io/v1/voices -H "xi-api-key: $ELEVENLABS_API_KEY" | head -c 100
curl -s "https://api.pexels.com/videos/search?query=nature&per_page=1" -H "Authorization: $PEXELS_API_KEY"
ffmpeg -version | head -1
python -c "import anthropic; print('Anthropic SDK: OK')"
Checking all 5 services before building anything means any account/billing/permission problem surfaces here, in 2 minutes, instead of 3 lessons deep when you're debugging what feels like a pipeline bug but is actually a missing API key.
You're deciding between "AI news" (high search volume, many established channels already covering it) and "underrated productivity tools" (moderate search volume, few channels covering it well). Which better fits an automated faceless pipeline, and why?
All 3 criteria matter together: high search volume in a saturated niche means competing against channels with years of head start; moderate volume with real gaps for a niche you can consistently produce content about (replicability) is usually the better bet for a new automated channel, even though the total addressable audience is smaller on paper.
What you're building today
project_setup.md: your chosen niche with reasoning against all 3 criteria, verified working API keys for all 5 services, and the project folder structure — before Lesson 2's topic finder writes a single line of pipeline code.