YouTube Music Manager CLI
Project description
yt-aug — YouTube Augment
Download audio from YouTube videos and playlists — from the command line.
Install
pip install yt-aug
Requires Python 3.13+.
System Requirements
yt-aug uses yt-dlp under the hood, which needs the following installed on your machine:
| Binary | Purpose | Windows | macOS | Linux |
|---|---|---|---|---|
ffmpeg |
Audio extraction/conversion | winget install ffmpeg |
brew install ffmpeg |
sudo apt install ffmpeg |
deno or node (≥ 20) |
JS runtime for YouTube challenge solving | winget install deno |
brew install deno |
curl -fsSL https://deno.land/install.sh | sh |
Usage
download <url>
Downloads audio from a YouTube video or playlist. Extracts best available audio and converts to m4a at 192kbps via FFmpeg.
ytaug download "https://youtube.com/watch?v=..." -o ~/Music
ytaug download "https://youtube.com/playlist?list=PL..." -o ~/Music
ytaug download "https://music.youtube.com/playlist?list=PL..."
Before downloading, ytaug will:
- Check for a JS runtime and ffmpeg
- Fetch the URL metadata (title, type, track count for playlists)
- Ask for confirmation
For playlists, files are organized into a subfolder named after the playlist.
| Flag | Short | Description |
|---|---|---|
--output |
-o |
Output directory (default: current directory) |
Development
# Install with dev dependencies
uv sync
# Run tests
uv run pytest
# Run unit tests only
uv run pytest tests/unit
# Run integration tests only (requires JS runtime + ffmpeg + network)
uv run pytest tests/integration -m integration
Architecture
src/ytaug/
├── main.py Typer CLI entry point (orchestration + user I/O)
├── download.py yt-dlp wrapper (system checks, URL validation, metadata, downloads)
└── exceptions.py YTAugError hierarchy
main.pyhandles all CLI interaction (prompts, messages, exits)download.pyis pure logic with no console output- All library functions raise
YTAugErrorsubclasses on operational failure
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 yt_aug-0.1.1.tar.gz.
File metadata
- Download URL: yt_aug-0.1.1.tar.gz
- Upload date:
- Size: 6.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ab93b7fae92b75b4d1da492d6b0f279e25a49ab514c21bd6da9b3345ad5b6915
|
|
| MD5 |
54ba49f6c56a6c3ef932eed9b263ca04
|
|
| BLAKE2b-256 |
5c139274e29a4fb346dbdba12069c022fc1d1ac961ea81a01dbd93250d6b246a
|
File details
Details for the file yt_aug-0.1.1-py3-none-any.whl.
File metadata
- Download URL: yt_aug-0.1.1-py3-none-any.whl
- Upload date:
- Size: 7.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c73965569fe2bcbddd5fcf4b6399ff7cecf303c218c3398dcb4aab7439e01e96
|
|
| MD5 |
653bc8ed50c07ebb8f7b1086363893ab
|
|
| BLAKE2b-256 |
5aa665ef5b87ce55b5f818d6eefbf30d21cd1a90d550997a17362ffb45862712
|