A free, open-source YouTube downloader built with Python (Flask) + yt-dlp + FFmpeg Created by Mr. M. Hammad — YouTube Channel: Mr.Tech_Hammad
- ⬇️ Download YouTube videos at fixed 720p MP4
- 🎵 Extract audio as MP3 (320kbps)
- 📋 Download full playlists automatically
- 📊 Live progress bar with speed and ETA
- 🎨 Clean dark UI with smooth animations
- 🔍 Auto-fetches video/playlist info before download
Make sure these are installed on your system:
| Tool | Purpose | Download |
|---|---|---|
| Python 3.10+ | Backend language | python.org |
| FFmpeg | Merge video + audio | gyan.dev/ffmpeg |
| yt-dlp | YouTube download engine | Installed via pip |
| Flask | Web server | Installed via pip |
git clone https://github.com/MrTech-Hammad/YT-Video-Downloader.git
cd YT-Video-Downloaderpip install flask yt-dlp- Windows: Download from gyan.dev, extract to
C:\ffmpeg, addC:\ffmpeg\binto PATH - macOS:
brew install ffmpeg - Linux:
sudo apt install ffmpeg
Windows (PowerShell):
& "path\to\python.exe" app.pymacOS / Linux:
python app.pyhttp://localhost:5000
StreamDrop/
├── app.py ← Python Flask backend
├── index.html ← Frontend UI
├── requirements.txt← Python dependencies
├── downloads/ ← Temporary download folder (auto-created)
└── cookies.txt ← Optional: for age-restricted videos
| Method | Endpoint | Description |
|---|---|---|
| GET | / |
Serves the frontend |
| POST | /api/download |
Starts a download job |
| GET | /api/status/<job_id> |
Get live download progress |
| GET | /api/file/<job_id>/<filename> |
Download the finished file |
| POST | /api/playlist-info |
Fetch video/playlist metadata |
This project is 100% open source and made for learners!
You can improve it by:
- 🎨 Adding new UI themes or fonts
- 📱 Making it mobile responsive
- 🔊 Adding more quality options (1080p, 480p, 128kbps)
- 🌐 Adding support for other platforms
- 🔐 Adding user authentication
- 📦 Adding ZIP download for playlists
- 🌍 Adding multi-language support
- Fork this repository
- Create a new branch:
git checkout -b my-feature - Make your changes
- Commit:
git commit -m "Added new feature" - Push:
git push origin my-feature - Open a Pull Request
YouTube changes its download cipher regularly. If downloads stop working, run:
pip install -U yt-dlpThis project is licensed under the MIT License — see LICENSE file. You are free to use, modify, and share this project.
Built with:
⭐ If this project helped you, please give it a star on GitHub! Subscribe to Mr.Tech_Hammad for more projects!