Skip to main content

Muzlib is a Python script that allows you to create your own music library.

Project description

Muzlib

Muzlib is a Python script that allows you to create your own music library. Music is downloaded from YouTube, and music tags are constructed using data from YouTube, Lrclib, NetEase.

🖥️🖱️ For GUI install muzlib-desktop

Instalation

Arch Linux [AUR]

You can install python-muzlib from AUR using your favorite AUR helper, for example:

yay -S python-muzlib

From PyPI

Ensure that you have installed FFmpeg.

Using uv

You can run muzlib without installation directly from the command line using uvx, which will handle dependencies and virtual environments for you:

uvx --from muzlib muzlib-cli

Using pip

You can install muzlib using pip in a virtual environment:

python -m venv .venv
source .venv/bin/activate
pip install muzlib

Usage

Muzlib can be run directly from the command line. When launched without arguments, it starts an interactive prompt guiding you through the download process. You can also pass arguments to skip prompts entirely.

muzlib-cli [-h] [-l LIBRARY_PATH] [-d {album,artist,song}]
        [--artist ARTIST] [--album ALBUM] [--song SONG]
        [--non_interactive]

Arguments

Argument Short Description
--help -h Show help message and exit.
--library_path PATH -l Root directory to save downloaded music. Defaults to your OS standard Music folder.
--download_type {album,artist,song} -d Scope of the download: artist (full discography), album (specific release), or song (single track).
--artist ARTIST Target artist's name. Highly recommended for all download types to ensure accurate search results.
--album ALBUM Target album's title. Use alongside --artist when --download_type is album.
--song SONG Target song's title. Use alongside --artist when --download_type is song.
--non_interactive Bypass all user prompts and automatically download the top search result. Requires --download_type to be set.

Examples

Interactive mode

launches a menu to guide you through the download

muzlib-cli

Example of usage

Download an artist's full discography non-interactively

muzlib-cli -d artist --artist "Ludwig Göransson" --non_interactive

Download a specific album

muzlib-cli -d album --artist "Ludwig Göransson" --album "Oppenheimer" --non_interactive

Download a single song into a custom library folder

muzlib-cli -l ~/Music -d song --artist "Ludwig Göransson" --song "Can You Hear The Music" --non_interactive

[!NOTE] --non_interactive requires --download_type to be specified, otherwise muzlib will exit with an error.

Available classes

There is only one (for now) class that can be used:

  1. Muzlib(library_path: str, skip_downloaded=False): library class that uses YouTube Music metadata

Available methods

Backup library

Muzlib.backup_library() -> str

This function creates backup of library (even with user-changed tags). Creates file .muzlib/muzlib_backup_***.json and returns path to it.

Restore library

This function downloads track and set metadata from bacup file.

Muzlib.backup_library(backup_filepath: str)

  • backup_filepath: path of the file created by Muzlib.backup_library().

Troubleshooting

[!WARNING] If you encounter issues with yt-dlp, you can replace default cookies at assets/cookies.txt as described at this guide.

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

muzlib-0.4.tar.gz (44.3 kB view details)

Uploaded Source

Built Distribution

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

muzlib-0.4-py3-none-any.whl (40.6 kB view details)

Uploaded Python 3

File details

Details for the file muzlib-0.4.tar.gz.

File metadata

  • Download URL: muzlib-0.4.tar.gz
  • Upload date:
  • Size: 44.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for muzlib-0.4.tar.gz
Algorithm Hash digest
SHA256 cef6bc820010981c2f984429e810579894df0d292228b999febdd8f0901f46d7
MD5 aebaf3eba1e83e06d32163847a8a500e
BLAKE2b-256 e6ff69ce1a27229f51f29a23874f1a69fff72ec9f31886aa9d80d58163c72288

See more details on using hashes here.

Provenance

The following attestation bundles were made for muzlib-0.4.tar.gz:

Publisher: python-publish.yml on ezvezdov/muzlib

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file muzlib-0.4-py3-none-any.whl.

File metadata

  • Download URL: muzlib-0.4-py3-none-any.whl
  • Upload date:
  • Size: 40.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for muzlib-0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 ab6515b5dd29db1e6718af83dc0cddaecd8c9c4aa885fef2088fe70de5c0dd02
MD5 7fa6f3ba67fa97cfe803000301d66c36
BLAKE2b-256 36cd55d260630e32e78cfaea2c9c46e2007aedac9c5793c69c5f5521da1ce51f

See more details on using hashes here.

Provenance

The following attestation bundles were made for muzlib-0.4-py3-none-any.whl:

Publisher: python-publish.yml on ezvezdov/muzlib

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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