Skip to main content

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

  1. Python 3.14+
  2. FFmpeg (Required for audio extraction and metadata embedding)
    • Windows: winget install ffmpeg or via gyan.dev
    • macOS: brew install ffmpeg
    • Linux: sudo apt install ffmpeg

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

grab_yt_mp3-0.1.0.tar.gz (4.1 kB view details)

Uploaded Source

Built Distribution

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

grab_yt_mp3-0.1.0-py3-none-any.whl (4.4 kB view details)

Uploaded Python 3

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

Hashes for grab_yt_mp3-0.1.0.tar.gz
Algorithm Hash digest
SHA256 6e708defc5262d25f9e07862351abfdfedc9e02be86b43d3ea89011c961343ae
MD5 d1f68deb8db1ed04c9e96b970d650801
BLAKE2b-256 2e4df5f4f2b494860e0cde293415c1dc191d875e43a69d94a74f0fbbf1285be7

See more details on using hashes here.

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

Hashes for grab_yt_mp3-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cef5fa54026eabb985d1978e0bec5c0279a96fead0896170b6fae7aa76172d3b
MD5 bb685eae80edf703b0e0f2bd8b513923
BLAKE2b-256 65df5977df9dd81ea9d99c36a3b34002876fe0c25c8a021eb0411e2118dde20a

See more details on using hashes here.

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