This is a quick evidence check, not a verdict. Use it to decide which repo deserves a closer read.
Compare youtube-to-ebook vs gstack
gstack has a clearer install path than youtube-to-ebook.
Pick this if you want a bundled workflow suite instead of one focused skill.
Dimensionyoutube-to-ebookgstack
Shortlist fitsolid fitstrong fit
Installusableclear
Sourcestrongusable
Scopefocusedsuite
Compare youtube-to-ebook vs Andrej Karpathy Skills
Andrej Karpathy Skills has a clearer install path than youtube-to-ebook.
Pick this if you want the clearer install path before reading the repo.
Dimensionyoutube-to-ebookAndrej Karpathy Skills
Shortlist fitsolid fitstrong fit
Installusableclear
Sourcestrongstrong
Scopefocusedfocused
Source evidence
Source excerpts used for this adoption decision. Low-confidence cases link back to GitHub instead of forcing a misleading quote.
README excerpt
README.md
Features
Fetches latest videos from YouTube channels (automatically filters out Shorts)
Extracts transcripts from videos
Uses Claude AI to transform transcripts into polished magazine-style articles
Generates EPUB ebooks readable on any device
Optional: Email delivery with ebook attachment
Optional: Web dashboard for easy management
Quick Start
1. Clone and install:
git clone https://github.com/YOUR_USERNAME/youtube-to-ebook.git
cd youtube-to-ebook
pip install -r requirements.txt
2. Set up API keys:
cp .env.example .env
# Edit .env with your keys
3. Add your channels:
# Edit channels.txt with YouTube channel handles
@mkbhd
@veritasium
@3blue1brown
4. Generate your ebook:
python main.py
Web Dashboard
Launch a friendly web interface:
pip install streamlit
python -m streamlit run dashboard.py
"ModuleNotFoundError" when running automation
Your Mac may have multiple Python installations. The automation scripts use python3, but your packages might be installed in a different Python.
Fix: Find your Python path and update the scripts:
## Known Issues & Solutions
This project documents several YouTube API quirks:
| Problem | Solution |
|---------|----------|
| Shorts not filtered by duration | Check `/shorts/` URL pattern |
| Search API not chronological | Use uploads playlist instead |
| Transcript API syntax changed | Use instance method `ytt_api.fetch()` |
| Cloud servers blocked | Run locally, not GitHub Actions |
| Names misspelled in transcripts | Include video description in Claude context |
| Articles truncated mid-sentence | Increase `max_tokens` in write_articles.py |
See [SKILL.md](SKILL.md) for detailed explanations.
SKILL.md excerpt
SKILL.md
1. YouTube Shorts Detection
Problem: Filtering by duration doesn't work—some Shorts are longer than 60 seconds.