Skip to content

About

A Python-based YouTube video and audio downloader built using yt-dlp, featuring an easy-to-use interface and support for multiple formats and quality options.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

4 Commits

Folders and files

Repository files navigation

yt-dlp GUI Download Manager

Python Platform License yt-dlp

A modern, fast, and feature-rich desktop GUI for yt-dlp, built with Python and CustomTkinter.

The application provides an intuitive graphical interface for downloading videos, playlists, channels, and audio from 1000+ supported websites with live progress tracking, download speed, ETA, queue management, and advanced post-processing.


✨ Features

  • 🌙 Modern Dark Mode Interface built with CustomTkinter

  • ⚡ Multi-threaded downloads (UI never freezes)

  • 📥 Batch download queue with multiple URLs

  • 📊 Live progress bars, download speed & ETA

  • 🎥 Video quality selection

    • Best Available
    • 2K
    • 1080p
    • 720p
    • 480p
  • 🎵 Audio extraction

    • MP3
    • M4A
    • WAV
    • FLAC
  • 📦 Output container selection

    • MP4
    • MKV
    • WEBM
  • 📝 Real-time download logs

  • 🔁 Retry failed downloads

  • 🖼 Embed thumbnails as cover art

  • 🏷 Embed metadata

  • 💬 Download & embed subtitles

  • 📁 Browse output folder

  • 🧹 Automatic temporary file cleanup

  • ❌ Safe download cancellation

  • 🚀 Responsive and lightweight interface


🚀 GUI vs CLI

Feature yt-dlp CLI yt-dlp GUI
Graphical Interface ❌ ✅
Batch Downloads ⚠️ Command required ✅
Progress Bar Terminal Beautiful GUI
Download Queue Manual Built-in
Speed & ETA Terminal Live UI
Folder Browser ❌ ✅
Retry Failed Downloads Manual ✅
Metadata Options Command Flags Checkboxes
Responsive UI N/A ✅

💻 Supported Platforms

  • ✅ Windows 10 / 11
  • ✅ Ubuntu
  • ✅ Debian
  • ✅ Linux Mint
  • ✅ Fedora
  • ✅ Arch Linux
  • ✅ EndeavourOS
  • ✅ Manjaro
  • ✅ openSUSE
  • ✅ macOS (Intel & Apple Silicon)

📦 Prerequisites

Before running the application, install:

  • Python 3.10+
  • yt-dlp
  • FFmpeg
  • Git (optional)

Install yt-dlp

Ubuntu / Debian / Linux Mint

sudo apt update
sudo apt install yt-dlp

Fedora

sudo dnf install yt-dlp

Arch Linux / EndeavourOS / Manjaro

sudo pacman -S yt-dlp

openSUSE

sudo zypper install yt-dlp

Alpine Linux

sudo apk add yt-dlp

Any Distribution (pip)

pip install -U yt-dlp

Install FFmpeg

Ubuntu / Debian / Linux Mint

sudo apt install ffmpeg

Fedora

sudo dnf install ffmpeg

Fedora users may need to enable the RPM Fusion repositories before installing FFmpeg.

Arch Linux / EndeavourOS / Manjaro

sudo pacman -S ffmpeg

openSUSE

sudo zypper install ffmpeg

Alpine Linux

sudo apk add ffmpeg

Windows

Download FFmpeg from the official website and add the bin folder to your system PATH.


Installation

Clone the repository:

git clone https://github.com/Nebula953/YT-DLP-GUI.git
cd YT-DLP-GUI

Create a virtual environment:

python3 -m venv venv

Activate it:

Linux/macOS

source venv/bin/activate

Windows

venv\Scripts\activate

Install dependencies:

pip install -r requirements.txt

Run the application:

python main.py

or

./venv/bin/python main.py

📂 Project Structure

YT-DLP-GUI/
├── main.py
├── requirements.txt
├── README.md
├── .gitignore
├── assets/
├── screenshots/
└── ytdlp_gui/
    ├── __init__.py
    ├── config.py
    ├── downloader.py
    ├── ui.py
    └── utils.py

⚙️ How It Works

  1. Paste one or more URLs.
  2. Select Video or Audio mode.
  3. Choose quality and output format.
  4. Configure metadata and subtitle options.
  5. Click Start Download.
  6. Downloads run in background worker threads.
  7. The GUI updates progress bars, ETA, speed, and logs in real time.
  8. Clicking Stop safely cancels downloads using yt-dlp progress hooks.

🌐 Supported Websites

Since this application uses yt-dlp, it supports downloading from 1000+ websites, including:

  • YouTube
  • Vimeo
  • Dailymotion
  • Twitch
  • Facebook
  • Instagram
  • X (Twitter)
  • TikTok
  • Reddit
  • SoundCloud
  • Bilibili
  • And many more...

For the complete list, visit the official yt-dlp Supported Sites page.


🛠 Tech Stack

  • Python
  • CustomTkinter
  • yt-dlp
  • FFmpeg
  • Threading
  • Queue

🤝 Contributing

Contributions, bug reports, and feature requests are welcome.

Feel free to fork the repository, open an issue, or submit a pull request.


⭐ Support

If you find this project useful, please consider giving it a ⭐ on GitHub. It helps others discover the project and supports future development.

About

A Python-based YouTube video and audio downloader built using yt-dlp, featuring an easy-to-use interface and support for multiple formats and quality options.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages