A clean, fast, and stable desktop application to download YouTube videos or audio using yt-dlp, built with Python and CustomTkinter.
- 📹 Download videos in MP4 (360p–4K)
- 🎧 Download audio in MP3 (128–320 kbps)
- 📊 Real-time progress bar
- ❌ Cancel download anytime
- 🧠 Thread-safe UI (no freezing)
- 🪟 Safe window close during download
- 🧹 Windows-safe filenames
- 🔒 No playlists (single video only)
- Python 3.9+
- CustomTkinter
- yt-dlp
- FFmpeg (required for MP3 downloads)
git clone https://github.com/ra5533/video-downloader.git
cd video-downloaderpython -m venv venv
venv\Scripts\activatepip install -r requirements.txt- Download from: https://ffmpeg.org/download.html
- Add FFmpeg to system PATH
python src/app.py- URL validation is handled internally by yt-dlp
- Hard subprocess killing is avoided for safety
- Download resume is not supported by design
These are intentional trade-offs, not bugs.
MIT License