Skip to main content

lyriks License PyPI version PyPI downloads

A command line tool that fetches lyrics from various streaming providers.

Installation

You can install lyriks from PyPI using uv or pip:

# uv
uv tool install lyriks

# pip
pip install lyriks

To install it from source instead, clone the repository and build the wheel before installing it:

uv build

# uv
uv tool install dist/lyriks-*-py3-none-any.whl

# pip
pip install dist/lyriks-*-py3-none-any.whl

You can also run the script directly from within the repository:

./lyriks.py /path/to/music/folder

Make sure to first install the required dependencies from pyproject.toml (i.e. uv sync).

Usage

Run the script with the path to the folder containing your music as an argument. This can be your whole collection, a single artist, or a single album.

lyriks /path/to/music/folder

By default, lyrics are fetched from Genie, but you can switch to other providers with the --provider/-P flag.

Currently supported providers are:

The script will search for audio files (.flac or .mp3) in the given folder, and attempt to fetch the lyrics. Note that it will only be able to do that for files that are properly tagged with MusicBrainz MBIDs (specifically musicbrainz_releasegroupid and musicbrainz_trackid). It then uses them to resolve the provider ID from the release or release group on MusicBrainz. Thus, at least one release in the release group must have an album URL relationship for the selected provider.

If successful, the lyrics will be downloaded and stored next to the audio files with the appropriate extension (.lrc or .txt, depending on whether they're synced or not).

For more information on usage, check the help message:

lyriks --help

Exclude files and folders

You can recursively ignore folders by adding a (empty) .nolyrics file inside the folder you want to exclude. This can be useful for Western artists, where Genie is unlikely to have lyrics, or for instrumental releases.

Likewise, you can ignore specific songs by creating a file with the same name as the audio file but the extension changed to .nolyrics. For example, a track named 01 Song.flac can be excluded by creating a file named 01 Song.nolyrics.

Excluded files won't be queried at all, which can noticeably speed up the synchronisation process for large collections.

Metadata

Release files for lyriks 0.6.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for lyriks 0.6.1
File Size Uploaded
lyriks-0.6.1.tar.gz 35.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for lyriks 0.6.1
File Interpreter ABI Platform
lyriks-0.6.1-py3-none-any.whl Python 3 none any Details

Total release size: 78.3 kB

Release files / lyriks-0.6.1.tar.gz

Download URL lyriks-0.6.1.tar.gz
Size 35.9 kB
Tags Source
SHA-256 checksum
How to use checksums
454879d30d54e7145f52c7652166efe91c9157fc0466cae1217261bfa936c3c2
BLAKE2b-256 checksum
How to use checksums
043252dc213aa0b3088dc58113f1770280bc2e87e54b5cc9d17fd9a076ab3647
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.17 {"installer":{"name":"uv","version":"0.11.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / lyriks-0.6.1-py3-none-any.whl

Download URL lyriks-0.6.1-py3-none-any.whl
Size 42.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
189d93f7285e9ae00952d8de7c1fac8efc19cf9278a3574103914e25dd6629c8
BLAKE2b-256 checksum
How to use checksums
3130fa9075f3f6decfc135e0b5b317fcde8421a16ad7cb2412f204d2a07b4e45
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.17 {"installer":{"name":"uv","version":"0.11.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.6.1 This release

2 release files

0.6.0

2 release files

0.5.7

2 release files

0.5.6

2 release files

0.5.5

2 release files

0.5.4

2 release files

0.5.3

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.5

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page