Skip to content

Repository files navigation

YouTube Roast logo

YouTube Roast

AI-powered YouTube channel analyzer — savage, sharable, screenshot-worthy.

中文版


Overview

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.

Screenshots

Profile & about Roast card Analysis cards

Features

  • 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

Quick Start

Try it online

👉 youtube7.streamlit.app

Run locally

# 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.py

API Key

YouTube Roast supports two AI backends:

  • OpenCode (free, no key needed for limited usage) — OPENCODE_API_KEY
  • SiliconFlow (fallback) — get your key from SiliconFlow Console

Project Structure

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

How It Works

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]
Loading
  1. Input — paste a YouTube channel link (supports @handle, https://youtube.com/@handle, /channel/UC...)
  2. Scrape — fetches YouTube public page data via tutubo, no browser or login required
  3. Analyze — trimmed profile data + video summaries sent to DeepSeek V4 Pro with a savage, witty prompt
  4. Report — 18 cards rendered in a responsive grid with profile card, video stats, and channel valuation
  5. Download — screenshot any section or download the full bundle as PNG

Tech Stack

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

License

Apache 2.0

About

avage AI roast for any YouTube channel. 18-dimension personality report + channel valuation. | YouTube 频道人格照妖镜。一键生成 18 维人格画像、频道价值评估与无情吐槽。

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages