AI-powered YouTube channel analyzer — savage, sharable, screenshot-worthy.
YouTube Roast is a single-user YouTube channel personality analyzer. Paste a channel link → scrape their profile & latest videos → AI generates an 18-dimension personality report with roast cards, strengths, weaknesses, and channel valuation.
Forked from X-POSE, adapted for YouTube.
- Scrape — fetches channel info + latest 20 videos via tutubo (no login required)
- Analyze — sends profile + video list to DeepSeek V4 Pro and returns structured JSON
- 18 Report Cards — about, roast, strengths, weaknesses, love life, money, health, and more
- Download as Image — one-click PNG screenshot via html2canvas (4 sections + full bundle)
- Channel Valuation — estimates channel value using a weighted formula (subscribers × 4.5 + avg_views × 3.0)
- Bilingual UI — Simplified Chinese / English toggle
- 1-Click Concurrency Limit — prevents server overload on Streamlit Cloud
# 1. Clone
git clone https://github.com/your-username/youtube-roast.git
cd youtube-roast
# 2. Install Python deps
pip install -r requirements.txt
# 3. Configure API key
# Create .streamlit/secrets.toml with:
# OPENCODE_API_KEY = "sk-your-key-here"
# SILICON_API_KEY = "sk-your-key-here"
# 4. Run
streamlit run streamlit_app.pyYouTube Roast supports two AI backends:
- OpenCode (free, no key needed for limited usage) —
OPENCODE_API_KEY - SiliconFlow (fallback) — get your key from SiliconFlow Console
youtube-roast/
├── streamlit_app.py # Home page — link input → scrape
├── pages/
│ └── 1_Analysis.py # Analysis report page (profile + stats + AI cards)
├── lib/
│ ├── ai.py # AI prompt & API call (YouTube-adapted)
│ ├── tweet_utils.py # Video formatting & stats
│ └── sidebar.py # Sidebar navigation
├── scraper/
│ ├── __init__.py # Exports fetch_all, YouTubeChannel, YouTubeVideo
│ ├── fetcher.py # tutubo wrapper — fetch channel + videos
│ ├── models.py # YouTubeChannel, YouTubeVideo dataclasses
│ └── storage.py # Local JSON caching
├── locales/
│ ├── zh.json # Chinese UI strings
│ └── en.json # English UI strings
├── i18n.py # i18n helper
├── requirements.txt
└── packages.txt # System deps for Streamlit Cloud
flowchart LR
A[Paste YouTube Channel Link] --> B[tutubo Scraper]
B --> C[Profile JSON + Video List]
C --> D[DeepSeek V4 Pro]
D --> E[18-Field JSON Report]
E --> F[Card Grid UI]
F --> G[Download PNG]
- Input — paste a YouTube channel link (supports
@handle,https://youtube.com/@handle,/channel/UC...) - Scrape — fetches YouTube public page data via tutubo, no browser or login required
- Analyze — trimmed profile data + video summaries sent to DeepSeek V4 Pro with a savage, witty prompt
- Report — 18 cards rendered in a responsive grid with profile card, video stats, and channel valuation
- Download — screenshot any section or download the full bundle as PNG
| Layer | Technology |
|---|---|
| Frontend | Streamlit (single-page app) |
| AI Model | DeepSeek V4 Pro via OpenCode / SiliconFlow |
| Scraper | tutubo (pure Python, no browser needed) |
| Deployment | Streamlit Cloud |
| License | Apache 2.0 |


