Skip to main content

ez-yt-dlp

Small, focused wrapper around yt-dlp to make common downloads easier.

This is a single-file Python module that provides a clean CLI for downloading videos and audio from YouTube and other sites supported by yt-dlp.

Features

  • Simple CLI - argparse-based with sensible defaults
  • Interactive mode - Run without arguments for guided prompts
  • Video/Audio modes - Download video (mp4) or extract audio (mp3, m4a, etc.)
  • Playlist support - Download single items or entire playlists
  • Dry-run - Preview commands before executing
  • Auto-install - Attempts to install yt-dlp if missing (can be disabled)

Install

From source

# Install yt-dlp for direct use
python3 -m pip install --user -r requirements.txt

# Run directly
python3 ez_yt_dlp.py --help

# Or install as a package
python3 -m pip install --user .

Installing the package provides the ez-yt-dlp command.

Usage

Interactive mode

ez-yt-dlp
# or
python3 ez_yt_dlp.py

Command-line mode

# Download video (default)
ez-yt-dlp "https://www.youtube.com/watch?v=..."

# Download audio (mp3)
ez-yt-dlp --audio "https://www.youtube.com/watch?v=..."

# Download audio playlist as m4a
ez-yt-dlp --audio --format m4a --playlist "https://..."

# Custom output directory
ez-yt-dlp --output ~/Downloads "https://..."

# Dry-run (preview command)
ez-yt-dlp --dry-run --audio "https://..."

# Don't auto-install yt-dlp
ez-yt-dlp --no-install "https://..."

Options

positional arguments:
  url                   URL to download (if omitted, interactive mode starts)

optional arguments:
  -h, --help            Show help message
  -v, --video           Download video (default)
  -a, --audio           Extract audio
  -p, --playlist        Download entire playlist
  -o, --output DIR      Save directory (default: ~/Videos)
  -f, --format FMT      Audio format with --audio (e.g., mp3, m4a)
  --dry-run             Print command without executing
  --no-install          Don't auto-install yt-dlp
  --version             Show version and exit

Development

Run tests

python3 -m pip install -e ".[dev]"
python3 -m pytest -v
# or without pytest
python3 tools/run_tests_no_pytest.py

Project structure

ez-yt-dlp/
├── ez_yt_dlp.py        # Main module
├── bin/ez-yt-dlp       # Executable wrapper
├── tests/test_cli.py   # Test suite
├── pyproject.toml      # Package config
└── README.md           # This file

Requirements

  • Python 3.10+
  • yt-dlp
  • ffmpeg and ffprobe for video merging and audio extraction

Release (for maintainers)

# 1. Bump version in pyproject.toml and ez_yt_dlp.py

# 2. Run release script
./release.sh

# 3. Follow prompts to build and upload to PyPI

Requires: python3 -m pip install -e ".[dev]" (handled by .venv setup)

License

MIT

Release files for ez-yt-dlp 0.2.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ez-yt-dlp 0.2.2
File Size Uploaded
ez_yt_dlp-0.2.2.tar.gz 9.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ez-yt-dlp 0.2.2
File Interpreter ABI Platform
ez_yt_dlp-0.2.2-py3-none-any.whl Python 3 none any Details

Total release size: 15.7 kB

Release files / ez_yt_dlp-0.2.2.tar.gz

Download URL ez_yt_dlp-0.2.2.tar.gz
Size 9.3 kB
Tags Source
SHA-256 checksum
How to use checksums
e19874893845b24ca0358129877f81de3b9c11077ab7d09f80fb5a77bbf3bd62
BLAKE2b-256 checksum
How to use checksums
7114dd255fb1c06ef0fb646a8dcc6bf8d68fb4326ef40d060ea2c4ac9a673971
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.7

Release files / ez_yt_dlp-0.2.2-py3-none-any.whl

Download URL ez_yt_dlp-0.2.2-py3-none-any.whl
Size 6.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ee75cef8b6f0a4c2808ec906b7d741e4e198ba73b13127145c38aae5bfb7c9af
BLAKE2b-256 checksum
How to use checksums
4e4f96667a2e11d065a812c04a77a19e416273e07db4c28acb5b721173daf9ae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.7

Release history Release notifications | RSS feed

This release

0.2.2 This release

2 release files

0.2.1

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page