⚡ A lightweight, self-hosted YouTube video summarizer with Gemini AI
Demo: https://tldr.milkshift.dedyn.io/


- 🎯 Customizable Prompts: Tailor the AI's instructions to get summaries in the format you prefer
- ⚙️ Model Selection: Choose any available Gemini model
- 📝 View Transcript: Access the full, raw video transcript
- 📚 History: Your summaries are saved locally in your browser for future reference
- 🔒 Privacy-Focused: Simple Rust server that runs on your own machine. Your data stays yours
- 🎨 Modern UI: Clean and beautiful user interface
YouTubeTLDR embraces simplicity — maximum functionality with minimal overhead.
- 🪶 Featherweight & Zero Bloat: Single binary ~0.6MB. No databases, no Tokio, no frameworks
- ⚡ Lightning Fast: Pure Rust + vanilla HTML/JS
- 🔑 BYOK: Bring Your Own Key. Uses your Google Gemini API directly — no proxies, no data collection
- 🎯 Single Purpose: Just generates and saves summaries, that's it
Note: This server is optimized for personal use and utilizes a multithreaded worker pool for concurrency. It is not designed to support hundreds of concurrent users.
- A Google Gemini API Key (Free tier with generous limits)
- Download the latest release and run the executable from console:
./YouTubeTLDR
- Open
http://localhost:8000
in your browser - Click "Advanced Settings" and enter your API key
- Paste a YouTube URL and click "Summarize"
You can change the IP and port with TLDR_IP
and TLDR_PORT
environment variables.
The amount of workers can be changed with TLDR_WORKERS
, set it to the amount of concurrent users you expect.
- Install the nightly Rust toolchain
- Clone the repository:
git clone https://github.com/Milkshiift/YouTubeTLDR.git cd YouTubeTLDR
- Build the release binary:
cargo build --release
- Find your executable at
target/release/YouTubeTLDR
By default, the native TLS implementation (like openssl) is used. If you want to use rustls build with --no-default-features --features rustls-tls