A simple but powerful interactive command-line tool to search and download high-quality MP3s from YouTube Music.
Project description
grab-yt-mp3
A beautiful interactive command-line tool to search and download high-quality MP3s from YouTube Music directly to your local machine.
Features
- Interactive Search: Search for songs on YouTube Music and choose from top results.
- High-Quality Audio: Automatically extracts and converts the best available audio to MP3.
- Rich Metadata & Cover Art: Embeds artist, album, and thumbnail cover art directly into the downloaded MP3.
- Cross-Platform: Works on Windows, macOS, and Linux.
- Direct Query: Pass search queries directly via command-line arguments.
(Note: Requires ffmpeg to be installed and available in your system's PATH.)
Installation
Prerequisites
- Python 3.14+
- FFmpeg (Required for audio extraction and metadata embedding)
- Windows:
winget install ffmpegor via gyan.dev - macOS:
brew install ffmpeg - Linux:
sudo apt install ffmpeg
- Windows:
Using uv (Recommended)
To install from PyPI (Once published):
uv tool install grab-yt-mp3
To install locally from source (After cloning the repo):
uv tool install .
Using pip
pip install -e .
Usage
You can launch the tool simply by typing:
ytdl
Or you can pass a search query directly:
ytdl "Never Gonna Give You Up"
You can also pass a direct YouTube link as a positional argument to skip the interactive search:
ytdl "https://music.youtube.com/watch?v=dQw4w9WgXcQ"
Help
ytdl --help
Development
To setup the development environment:
uv sync --all-groups
# run the project with:
uv run ytdl
License
MIT License
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 grab_yt_mp3-0.1.0.tar.gz.
File metadata
- Download URL: grab_yt_mp3-0.1.0.tar.gz
- Upload date:
- Size: 4.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6e708defc5262d25f9e07862351abfdfedc9e02be86b43d3ea89011c961343ae
|
|
| MD5 |
d1f68deb8db1ed04c9e96b970d650801
|
|
| BLAKE2b-256 |
2e4df5f4f2b494860e0cde293415c1dc191d875e43a69d94a74f0fbbf1285be7
|
File details
Details for the file grab_yt_mp3-0.1.0-py3-none-any.whl.
File metadata
- Download URL: grab_yt_mp3-0.1.0-py3-none-any.whl
- Upload date:
- Size: 4.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cef5fa54026eabb985d1978e0bec5c0279a96fead0896170b6fae7aa76172d3b
|
|
| MD5 |
bb685eae80edf703b0e0f2bd8b513923
|
|
| BLAKE2b-256 |
65df5977df9dd81ea9d99c36a3b34002876fe0c25c8a021eb0411e2118dde20a
|