A tool for downloading music with embedded metadata and lyrics.
Project description
Here's the updated README.md with samples for downloading using a YouTube URL, along with a note recommending using the song name for better metadata matching:
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 via the qa-download package from PyPI:
pip install qa-download
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.
Recommended: Using the song title (instead of a YouTube URL) gives more accurate metadata from Genius.
Downloading by Song Name
Using a song title helps Music Downloader find better metadata, artwork, and lyrics from Genius:
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"
Downloading by YouTube URL
If you have a specific YouTube URL, you can still use it with the downloader. However, it may miss some metadata, so using the song title is recommended for a richer media experience.
music-downloader "https://www.youtube.com/watch?v=EXAMPLE_VIDEO_ID"
For YouTube playlists, simply provide the playlist URL:
music-downloader "https://www.youtube.com/playlist?list=EXAMPLE_PLAYLIST_ID"
In both cases, Music Downloader will download each video in the playlist and try to match metadata from Genius for each song.
Example Commands
# Recommended method for best metadata
music-downloader "Let Me Down Slowly Alec Benjamin"
# Using a single YouTube video URL
music-downloader "https://www.youtube.com/watch?v=EXAMPLE_VIDEO_ID"
# Using a YouTube playlist URL
music-downloader "https://www.youtube.com/playlist?list=EXAMPLE_PLAYLIST_ID"
Command-Line Options
input: The YouTube URL, playlist URL, or song title 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, fork and 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"
Contribution
We welcome contributions to improve Music Downloader! To contribute:
- Fork the repository.
- Create a new branch for your feature or bugfix.
- Make your changes, and ensure all code is properly documented and tested.
- Submit a pull request with a detailed explanation of your changes.
Please make sure your contributions align with the project’s code style and conventions. Feel free to open an issue if you'd like to discuss your contribution before starting.
License
This project is licensed under the MIT License.
Acknowledgments
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
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 qa_download-1.0.4.tar.gz.
File metadata
- Download URL: qa_download-1.0.4.tar.gz
- Upload date:
- Size: 5.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5a0ac6527f251cedafcb6c8e9bedb34cbd3754df555957f58d9ccf20e69f8184
|
|
| MD5 |
0f91e3bd99270b2d5456820958be72c0
|
|
| BLAKE2b-256 |
f5f5c5e98d1c018dd48fe907b2053713eb0fd096b602df7f67f3381f03c6b66a
|
File details
Details for the file qa_download-1.0.4-py3-none-any.whl.
File metadata
- Download URL: qa_download-1.0.4-py3-none-any.whl
- Upload date:
- Size: 6.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e7fc03a1786eebea3bb316a7d07c1309ae3ec347027c490e4045a8305b445bfe
|
|
| MD5 |
23ac97e720717eff2dfe3d7b370c40be
|
|
| BLAKE2b-256 |
17eb2ec421e31ca750c150588b880cc78054734800b05b7cc018035450253c1a
|