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.1


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 (pointing to Homebrew's Python to ensure Tkinter support)
pipx install ytdlpx --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 --python $(brew --prefix python@3.13)/bin/python3.13 ytdlpx
    
  • Install globally:

    uv tool install ytdlpx --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 --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-0.3.1.tar.gz (40.9 kB view details)

Uploaded Source

Built Distribution

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

ytdlpx-0.3.1-py3-none-any.whl (39.7 kB view details)

Uploaded Python 3

File details

Details for the file ytdlpx-0.3.1.tar.gz.

File metadata

  • Download URL: ytdlpx-0.3.1.tar.gz
  • Upload date:
  • Size: 40.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ytdlpx-0.3.1.tar.gz
Algorithm Hash digest
SHA256 97f7af96bcde5c72f19e0f36cdb0362dba730a42681c2fd514a459f4c92ee94b
MD5 8b6292d2466223de0a0273ce7ce4be3c
BLAKE2b-256 d482007153a87c31854f7768022cfaa83198c9e1d3c13d0c94f03ec12293c91c

See more details on using hashes here.

Provenance

The following attestation bundles were made for ytdlpx-0.3.1.tar.gz:

Publisher: publish.yml on trinadhthatakula/yt-dlpx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ytdlpx-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: ytdlpx-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 39.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ytdlpx-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e7c48d105ec9afcd4c1865dbfbf5464c086f874b2b652083e1ed3f543c87d7f4
MD5 58c5d5259b82f62c14f60f191c6ab117
BLAKE2b-256 5682bee88d9464ac7e9c9528191acd0b0c59ad988f0143cad39adafe9d901639

See more details on using hashes here.

Provenance

The following attestation bundles were made for ytdlpx-0.3.1-py3-none-any.whl:

Publisher: publish.yml on trinadhthatakula/yt-dlpx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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