I got tired of manually creating content for YouTube, so I built a system that does it while I sleep.
The Problem
Creating consistent video content is exhausting. Editing takes forever, and maintaining the posting frequency needed for YouTube growth felt impossible.
The Solution
I built an automation system that:
- Monitors RSS news feeds for trending topics
- Generates contextual scripts using Claude AI (not just reading headlines)
- Creates voiceovers with text-to-speech
- Renders videos with FFmpeg
- Uploads directly to YouTube via API
The Architecture
News Feed → Claude AI Script → TTS Voiceover → FFmpeg Render → YouTube Upload
Why Claude AI?
Unlike basic template systems, Claude generates contextual scripts that feel natural. It understands the news article and creates engaging narratives, not robotic recitations.
const script = await anthropic.messages.create({
model: "claude-3-5-sonnet-20241022",
max_tokens: 500,
messages: [{
role: "user",
content: `Create a 60-second YouTube Short script about: ${newsHeadline}`
}]
});
The Tech Stack
- Node.js - Orchestration
- Claude AI API - Script generation
- FFmpeg - Video rendering
- YouTube Data API v3 - Automated uploads
- RSS Parser - News monitoring
Results
After 1 month:
- 120+ videos created automatically
- Consistent 4 videos/day schedule
- Growing subscriber base
- Zero manual editing
Key Learnings
1. Batch Processing Wins
Don't generate videos one-at-a-time. Queue them up and process overnight.
2. Claude's Context Matters
Better prompts = better scripts. I iterate on my prompt template weekly.
3. Error Handling is Critical
YouTube API has rate limits. Build retry logic with exponential backoff.
4. Storage Management
Delete rendered videos after upload. I filled 500GB in week 1.
The Code (Simplified)
async function createYouTubeShort(newsArticle) {
// Step 1: Generate script with Claude
const script = await generateScript(newsArticle);
// Step 2: Create voiceover
const audioPath = await textToSpeech(script);
// Step 3: Render video with FFmpeg
const videoPath = await renderVideo(audioPath, newsArticle.image);
// Step 4: Upload to YouTube
const videoId = await uploadToYouTube({
title: newsArticle.title,
description: script,
file: videoPath
});
// Step 5: Cleanup
fs.unlinkSync(audioPath);
fs.unlinkSync(videoPath);
return videoId;
}
Is This Right for You?
This approach works if:
- You have consistent content sources (news, trends, data)
- You value quantity + quality over perfection
- You can invest time upfront for automation payoff
This approach doesn't work if:
- You need highly-curated, brand-specific content
- Your niche requires deep human insight
- You want viral hits (automation optimizes for consistency, not virality)
What's Next
I'm adding:
- AI-generated thumbnails (DALL-E integration)
- Sentiment analysis for topic selection
- A/B testing for upload times
- Multi-channel support (TikTok, Instagram Reels)
Try It Yourself
The full system is available at ai-solutions.store/claude-droid. Includes:
- Complete source code
- Setup documentation
- API key management
- Deployment guide
Happy to answer questions about the architecture or Claude integration!
Built with Claude AI, FFmpeg, and determination.
Top comments (0)