Intelligent YouTube Slide Extractor, High-Res Media Downloader & AI Study Assistant
A high-performance desktop and web application built with FastAPI, Tailwind CSS, PyWebView, and yt-dlp. Extract high-quality presentation slides from video lectures, download up to 4K video/320kbps MP3s, generate AI video summaries & concept mindmaps, and export study materials to PDF & PPTX.
- Architecture & Workflow
- Key Features
- Tech Stack
- Prerequisites
- Local Installation
- Docker & Cloud Deployment
- Configuration (.env)
- License
flowchart LR
A[YouTube URL] --> B[yt-dlp Engine]
B --> C[Video Stream Download]
B --> D[Audio & Subtitles Extract]
C --> E[Scene Transition Detection]
E --> F[Duplicate Frame Filtering]
F --> G[Image Sharpener & OCR Filter]
G --> H[Export Deck]
H --> H1[📄 PDF Document]
H --> H2[📊 PowerPoint PPTX]
H --> H3[📝 Markdown Notes]
D --> I[Offline NLP / Gemini AI Engine]
I --> J1[🧠 Video Summary]
I --> J2[🗺️ Concept Mindmap]
I --> J3[❓ Interactive Q&A]
- Smart Scene Detection: Detects slide changes automatically without capturing duplicate intermediate transition frames.
- Image Enhancer & Text Sharpening: Built-in 1-click filter (
ImageEnhance.Contrast+ImageEnhance.Sharpness) that cleans blurry webcam/recording artifacts to make text crystal clear. - Multi-Format Export: Export cleaned slides directly to:
- 📄 PDF Presentation (with custom branded title cover page).
- 📊 PowerPoint Presentation (
.pptx). - 📦 Zipped JPG/PNG Images.
- Resolution Selector: Download up to 4K (2160p), 2K (1440p), 1080p FHD, 720p HD, 480p, and 360p.
- Audio Bitrate Selector: High-fidelity MP3 extraction at 320 kbps, 256 kbps, 192 kbps, and 128 kbps.
- Subtitle Extractor: Download synchronized
.srt/.vttsubtitles.
- Engine Selector: Switch seamlessly between ⚡ Free Offline NLP (No API Key Required) and 🤖 Google Gemini AI.
- Interactive Concept Mindmaps: Generates visual Mermaid.js mindmaps breaking down core video topics.
- Video Q&A with Timestamp Seeking: Interactive timestamp buttons (e.g.,
⏱️ 02:45) that immediately jump the video player to that moment. - Interactive 3D Study Flashcards: Flip-card memory testing mode with real-time score tracking.
- Tag slides with color-coded markers (🔴 Exam Alert, 🟢 Definition, 🔵 Code Snippet, 🟡 Key Concept).
- Star favorite slides to create targeted quick-revision decks.
- Backend: FastAPI, Uvicorn, Python 3.9+
- Media Engine: yt-dlp, FFmpeg
- Image & Slide Processing: Pillow (PIL), python-pptx, pytesseract OCR
- Frontend / UI: Tailwind CSS, PyWebView, Mermaid.js
- AI / NLP: Google Gemini API / Local Heuristic NLP
- Python 3.9 or higher installed.
- FFmpeg:
- Windows: Auto-downloaded automatically on first run if not found in PATH!
- Linux / Ubuntu:
sudo apt-get install ffmpeg - macOS:
brew install ffmpeg
- (Optional) Tesseract OCR for text extraction from slides:
- Ubuntu:
sudo apt-get install tesseract-ocr - Windows: Download from UB-Mannheim Tesseract.
- Ubuntu:
git clone https://github.com/Ayush8512/Youtube_Slide_Extractor.git
cd Youtube_Slide_Extractor# Windows
python -m venv venv
venv\Scripts\activate
# Linux / macOS
python3 -m venv venv
source venv/bin/activatepip install -r requirements.txtMethod A — Run via Python:
python app.pyMethod B — Run via Windows Batch Script:
Double-click Yt_Slide_Extractor.bat in the project root.
Navigate to http://127.0.0.1:8000 in your browser (or it will automatically launch as a standalone desktop window via PyWebView).
A production-ready Dockerfile and render.yaml are included for 1-click deployments:
docker build -t yt-slide-extractor .
docker run -p 7860:7860 yt-slide-extractorOpen http://localhost:7860.
Works out-of-the-box on Hugging Face Spaces (Docker SDK) and Render.com Web Services.
Create a .env file in the root directory (refer to .env.example):
# Optional: Needed only if you wish to use the Gemini AI Engine instead of the Free Offline NLP engine
GEMINI_API_KEY=your_gemini_api_key_here
# Server Port (Default: 8000)
PORT=8000This project is licensed under the MIT License - see the LICENSE file for details.
Ayush Pandey
- GitHub: @Ayush8512
- LinkedIn: Connect on LinkedIn