Skip to main content

A modern desktop GUI for yt-dlp — download video and audio in any format

Project description

YT-DLPx

A premium, modern desktop application for downloading media from YouTube and 1000+ other sites, and converting local media files between formats. Powered by yt-dlp and ffmpeg, with a beautiful, custom Slate/Indigo user interface built on CustomTkinter.

Current Version: 0.3.0


Key Features

  • Sleek Sidebar Navigation: Modern left-hand vertical sidebar for seamless switching between panels (Download, Convert, and Settings).
  • Video & Audio Downloader:
    • Download video formats (MP4, MKV, WEBM) and audio-only formats (MP3, AAC, FLAC, WAV, OGG) with customizable quality levels.
    • Paste multiple URLs at once for batch/playlist queueing.
    • Clipboard Helper: A one-click "📋 Paste" button to instantly retrieve and append links.
    • Card-style queue rows with Tailwind-inspired colored status badges, real-time speed, ETA, and progress bar feedback.
  • Local Media Converter:
    • Batch select local video/audio files.
    • Convert to 15+ formats (MP4 H.264/H.265, WEBM, MKV, GIF, MP3, AAC, FLAC, and more) with multi-threaded ffmpeg conversion.
    • Real-time conversion progress bar and thread-level cancellation.
  • Centralized Settings Panel:
    • Theme Switcher: Instantly toggle between System, Dark, and Light modes.
    • Custom Destinations: Configure and browse default save locations for downloads and conversions.
    • Concurrency Sliders: Move concurrent download/conversion limits to the settings view to keep the workspace clean.
    • Settings are saved automatically at ~/.config/ytdlpx/settings.json.

Prerequisites

Before installing yt-dlpx, make sure you have the following system dependencies installed on your system path.

1. FFmpeg

Used for merging downloaded video/audio streams and performing conversions.

# macOS
brew install ffmpeg

# Linux (Debian/Ubuntu)
sudo apt install ffmpeg

2. Python with Tcl/Tk support

The GUI requires Tkinter, which requires a Python interpreter compiled with Tcl/Tk. Standard builds downloaded by some managers (like default uv or pyenv) may omit Tcl/Tk on macOS. It is recommended to use Homebrew's Python.

# macOS (Python 3.11 - 3.13)
brew install python@3.13
brew install python-tk@3.13

Installation

There are two recommended ways to install yt-dlpx directly from PyPI (pip).

Method 1: Using pipx (Recommended for desktop use)

pipx installs yt-dlpx in an isolated environment and exposes the yt-dlpx command globally.

# 1. Install pipx (if needed)
brew install pipx
pipx ensurepath  # Restart your terminal after this

# 2. Install ytdlpx-gui (pointing to Homebrew's Python to ensure Tkinter support)
pipx install ytdlpx-gui --python $(brew --prefix python@3.13)/bin/python3.13

Method 2: Using uv (Fastest tool runner)

uv can install tools globally, or run them instantly on-the-fly.

  • Run on-the-fly (without installing):

    uvx --from ytdlpx-gui --python $(brew --prefix python@3.13)/bin/python3.13 yt-dlpx
    
  • Install globally:

    uv tool install ytdlpx-gui --python $(brew --prefix python@3.13)/bin/python3.13
    

Launch

Once installed, simply run:

yt-dlpx

Development Setup

If you want to run the project locally or contribute to development:

  1. Clone or navigate to the repository directory.
  2. Initialize and sync the virtual environment using uv (pointing to Homebrew's Python):
    uv sync --python $(brew --prefix python@3.13)/bin/python3.13
    
  3. Run the application:
    uv run python src/ytdlpx/app.py
    

Troubleshooting

ModuleNotFoundError: No module named '_tkinter'

Your Python interpreter lacks Tcl/Tk. Ensure you installed python-tk from Homebrew and force a reinstall pointing explicitly to that Python version:

pipx install ytdlpx-gui --python $(brew --prefix python@3.13)/bin/python3.13 --force

ffmpeg not found warning on launch

The application will launch, but video/audio merging and local file conversions will fail. Install ffmpeg using Homebrew or your Linux package manager.


License

This project is licensed under the GNU General Public License v3.0 (GPLv3). See the LICENSE file for the full license text.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ytdlpx_gui-0.3.0.tar.gz (40.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ytdlpx_gui-0.3.0-py3-none-any.whl (39.1 kB view details)

Uploaded Python 3

File details

Details for the file ytdlpx_gui-0.3.0.tar.gz.

File metadata

  • Download URL: ytdlpx_gui-0.3.0.tar.gz
  • Upload date:
  • Size: 40.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for ytdlpx_gui-0.3.0.tar.gz
Algorithm Hash digest
SHA256 ad7b730adbd8eb02859f27a6e177457292ee98a3938fcff6fe41afdedb50eefe
MD5 cd69b1c28a3de1aeb0a97a3660667935
BLAKE2b-256 ff1f13419918ac2881b399977f0d2e604873edf0c0f2fbaa9eaedf0e00ff1918

See more details on using hashes here.

File details

Details for the file ytdlpx_gui-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: ytdlpx_gui-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 39.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for ytdlpx_gui-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cd3ec6ff7126ab61a3542fa601b96338611e60f7565fbfa359d085da16414b38
MD5 886bbab4e35d3d651beb8ab615e66366
BLAKE2b-256 a5d08582a26f3cc755d3ce706619ee04ddb5688f526ecf01cac5f9c641ab9144

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page