Small wrapper around yt-dlp for common downloads
Project description
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 dependency (optional if you already have yt-dlp)
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 .
Make executable (optional)
chmod +x bin/ez-yt-dlp
cp bin/ez-yt-dlp ~/bin/
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 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.8+
- yt-dlp (auto-installed if missing)
Release (for maintainers)
# 1. Bump version in pyproject.toml
# 2. Run release script
./release.sh
# 3. Follow prompts to build and upload to PyPI
Requires: pip install build twine (handled by .venv setup)
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ez_yt_dlp-0.2.1.tar.gz.
File metadata
- Download URL: ez_yt_dlp-0.2.1.tar.gz
- Upload date:
- Size: 7.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
457155395cbc80a16efccaa48336cee6d5f480fb7afada7e261b3ecf415d7159
|
|
| MD5 |
ca20dfca660ab0b982b312590ffdff6d
|
|
| BLAKE2b-256 |
651202730c6e390828f4d8ca68a6fd1837044effec44aeb4b4b52d9f0805e145
|
File details
Details for the file ez_yt_dlp-0.2.1-py3-none-any.whl.
File metadata
- Download URL: ez_yt_dlp-0.2.1-py3-none-any.whl
- Upload date:
- Size: 6.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8284c7b89aa19e04190c8b92bda176b197fbd164da63d0db4c45e5d89a774554
|
|
| MD5 |
27fbe5a5a5175b53a454594c7f7b7471
|
|
| BLAKE2b-256 |
501b7cbcc4211c250bb03163064dc35f4f610897364982fca36e811f92ead437
|