Automated YouTube Shorts generator from Reddit posts. No API keys required!
Convert Reddit's most engaging stories into professional YouTube Shorts videos with:
- 🎙️ Multi-language TTS (EdgeTTS or gTTS)
- 🎵 Karaoke-style captions with word-level timing (Whisper)
- 🎬 Auto-generated backgrounds with zoom punch effects
- 📤 Direct YouTube upload with OAuth2
- 📊 Performance metrics & Datadog integration
- 🐳 Docker support for cloud deployment
# Clone and install
git clone https://github.com/SeungheeKim/reddit-reaction-maker.git
cd reddit-reaction-maker
pip install -r requirements.txt
# Copy & customize config
cp config.template.toml config.toml
# Edit config.toml to change TTS voice, subreddit, etc.
# Generate your first video!
python main.py --limit 1Your video is in output/ — ready for YouTube! 🚀
docker build -t reddit-shorts .
docker run -v $(pwd)/output:/app/output reddit-shorts --limit 1
# Or: docker-compose up✅ No API Keys — Uses Reddit's public .json endpoints
✅ Multi-Language TTS — EdgeTTS (natural, fast) or gTTS (free, 100+ languages)
✅ Karaoke Captions — Word-level timing via Whisper
✅ Auto YouTube Upload — OAuth2-based with custom titles & thumbnails
✅ Observability — Metrics, logging, Datadog integration
✅ 34+ Subreddits — Pre-configured with CTR-optimized hooks
✅ Production Ready — GitHub Actions, Docker, metrics, retry logic
# Top posts from r/roblox this week
python main.py --limit 1
# Top posts from r/steam today
python main.py --subreddit steam --time day --limit 3
# Specific post by ID
python main.py --post abc123def456
# Local text file (no Reddit needed)
python main.py --file story.txt
# Batch process directory
python main.py --dir scripts/
# Help
python main.py --helpEdit config.toml:
[reddit]
subreddit = "amitheasshole"
post_limit = 3
[tts]
engine = "edge-tts"
voice = "en-US-GuyNeural"
[youtube]
enabled = true
privacy = "unlisted"See config.template.toml for 40+ options with detailed descriptions.
output/
├── roblox_abc123_2026-04-14.mp4 # Video
├── roblox_abc123_2026-04-14_meta.txt # Metadata
├── roblox_abc123_2026-04-14_thumb.png # Thumbnail
├── _metrics/metrics_*.json # Metrics
├── history.json # Processed posts log
└── logs/2026-04-14.log # Application logs
- TTS: 6-9s (↓ 40% via parallelization)
- Composition: 20-30s (↓ 35% via caching)
- Total: ~30s (↓ 35% overall)
Generate videos automatically on a schedule:
# Interactive setup (Linux/macOS/Unix)
./scripts/setup-crontab.sh
# Or add to crontab manually:
crontab -e
# 0 8 * * * cd /path/to/reddit-reaction-maker && /usr/bin/python3 main.py --limit 1Features:
- ✅ Automatic path resolution (works from any working directory)
- ✅ File locking prevents concurrent execution conflicts
- ✅ Detailed logging to
output/logs/ - ✅ Email notifications on error
- ✅ Datadog integration (optional)
See CRONTAB.md for full guide — scheduling examples, troubleshooting, monitoring.
- Get OAuth2 credentials from Google Cloud Console
- Download JSON →
credentials.json - Set
enabled = truein config.toml - Run once:
python main.py --limit 1(browser opens to authorize) - Done! Future runs upload automatically
- config.template.toml — All 40+ options with descriptions
- CRONTAB.md — Automatic scheduling with crontab (Linux/Unix)
- DOCKER.md — Docker & deployment guide
- CLAUDE.md — Development policy (TDD required)
34+ subreddits with custom hooks:
Stories: amitheasshole, relationship_advice, tifu, pettyrevenge, maliciouscompliance, choosingbeggars, entitledpeople, JustNoMIL
Gaming: steam, pcgaming, gaming, consoles, WoW, leagueoflegends
Anime: manga, manhwa, anime, anime_irl
Lifestyle: fitness, loseit, personalfinance, investing, skincare, asianbeauty
Tech: programming, learnprogramming, webdev, python, javascript
General: askreddit, todayilearned, lifeprotips
Unknown subreddit? Auto-generates CTR-optimized hooks!
# Missing dependencies
pip install -r requirements.txt
# Check TTS voices
edge-tts --list-voices
# View logs
tail -f output/logs/2026-04-14.log
# Check metrics
cat output/_metrics/metrics_*.json | grep -E "youtube_video_id|success"Issues and PRs welcome! TDD required. See CLAUDE.md.
MIT
Made with ❤️ by Seunghee Kim
Generate awesome YouTube Shorts from Reddit. No API keys. No subscriptions. Just stories. 🎬