Skip to main content

A tool for downloading music with embedded metadata and lyrics.

Project description

Music Downloader 🎶

Music Downloader is a Python tool that downloads music from YouTube and automatically embeds metadata, album artwork, and lyrics from Genius. Perfect for building your offline music library with well-organized tags and rich media.

Features

  • Downloads audio from YouTube as MP3
  • Embeds metadata like title, artist, album, and release date
  • Fetches album artwork and attaches it to the MP3
  • Adds lyrics automatically from Genius
  • Works with most Python environments and media players

Installation

You can install Music Downloader directly from PyPI:

pip install music_downloader

Requirements

  • Python 3.7 or higher
  • YouTube audio extraction and metadata libraries (automatically installed with the package)

Usage

Once installed, use music-downloader directly from the command line:

music-downloader "Song Title"

By default, files are saved in your Music directory, but you can specify a custom directory with the --output_dir option:

music-downloader "Song Title" --output_dir "/path/to/save/music"

Example

music-downloader "Let Me Down Slowly Alec Benjamin"

This will:

  1. Search YouTube for the official video of "Let Me Down Slowly" by Alec Benjamin.
  2. Download the audio as an MP3.
  3. Fetch metadata, album artwork, and lyrics from Genius.
  4. Embed all metadata and save the file.

Command-Line Options

  • song_name: The title of the song you want to download.
  • --output_dir: Custom directory to save the downloaded audio. Defaults to ~/Music.

Development

If you'd like to contribute or experiment with the code, clone the repository and install dependencies:

git clone https://github.com/yourusername/music_downloader.git
cd music_downloader
pip install -r requirements.txt

Running Locally

To run the downloader locally:

python -m music_downloader.downloader "Song Title"

License

This project is licensed under the MIT License.

Acknowledgments

  • Uses yt-dlp for downloading YouTube audio.
  • Metadata and lyrics from Genius.

Support

For issues or feature requests, please open an issue on GitHub.

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

qa_download-1.0.0.tar.gz (4.8 kB view details)

Uploaded Source

Built Distribution

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

qa_download-1.0.0-py3-none-any.whl (5.2 kB view details)

Uploaded Python 3

File details

Details for the file qa_download-1.0.0.tar.gz.

File metadata

  • Download URL: qa_download-1.0.0.tar.gz
  • Upload date:
  • Size: 4.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.5

File hashes

Hashes for qa_download-1.0.0.tar.gz
Algorithm Hash digest
SHA256 a92c4591f3935f69122595824a2e7a0b10a95cca9a9a8214927b9f161126c615
MD5 341c77cb1dcd2d3dd22282dfeeb7f045
BLAKE2b-256 5331a65427fe392e6e25704f6bd0ade97ca8c94e43f4bbbb633dcaa714c79281

See more details on using hashes here.

File details

Details for the file qa_download-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: qa_download-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 5.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.5

File hashes

Hashes for qa_download-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 30d3edfe31b2267d28ab497a626902222893b65dc0cb4def2731e36d6f5c7b29
MD5 8e10d1a2070cf46e4957848d4c1b4d5d
BLAKE2b-256 94daefbbe2e27597bef37d3ed1066835096e2eae12aff5153eb5054ab70daad7

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