librelyrics-kkbox
KKBOX lyrics provider plugin for LibreLyrics.
Fetches plain and synced lyrics from KKBOX's encrypted API.
Installation
pip install librelyrics-kkbox
Or from source:
pip install git+https://github.com/libre-lyrics/librelyrics-kkbox.git
Configuration
Run the interactive configuration editor:
librelyrics config edit
You will need the following settings:
| Key | Description |
|---|---|
email |
Your KKBOX account email |
password |
Your KKBOX account password |
kc1_key |
KC1 decryption key (32-character hex string) |
secret_key |
API secret key (32-character hex string) |
kkid |
Device identifier (optional, auto-generated) |
Finding the keys
The kc1_key and secret_key can be extracted from the KKBOX Android app.
These are static keys embedded in the application binary.
Usage
CLI
# Fetch lyrics for a single track
librelyrics "https://www.kkbox.com/tw/tc/song/abcdef123456"
# Fetch lyrics for an entire album
librelyrics "https://www.kkbox.com/tw/tc/album/abcdef123456"
# Fetch lyrics for a playlist
librelyrics "https://www.kkbox.com/tw/tc/playlist/abcdef123456"
Python API
from librelyrics import LibreLyrics
ll = LibreLyrics(config={
'kkbox': {
'email': 'your@email.com',
'password': 'yourpassword',
'kc1_key': '0123456789abcdef0123456789abcdef',
'secret_key': 'fedcba9876543210fedcba9876543210',
}
})
# Single track
result = ll.fetch("https://www.kkbox.com/tw/tc/song/abcdef123456")
print(result.to_lrc())
# Album (batch)
results = ll.fetch_batch("https://www.kkbox.com/tw/tc/album/abcdef123456")
for r in results:
print(r.title, "-", r.artist)
print(r.to_lrc())
Supported URL formats
https://www.kkbox.com/{region}/{lang}/song/{id}— single trackhttps://www.kkbox.com/{region}/{lang}/album/{id}— full albumhttps://www.kkbox.com/{region}/{lang}/playlist/{id}— playlist
Requirements
- Python ≥ 3.10
- LibreLyrics ≥ 1.0.0
- PyCryptodome(x) ≥ 3.15.0
- A valid KKBOX account with an active subscription
License
GPL-3.0-or-later
Metadata
Release files for librelyrics-kkbox 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| librelyrics_kkbox-1.0.0.tar.gz | 8.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| librelyrics_kkbox-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 17.4 kB
Release files / librelyrics_kkbox-1.0.0.tar.gz
| Download URL | librelyrics_kkbox-1.0.0.tar.gz |
|---|---|
| Size | 8.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d655dd7fab4b9682c19ea87a049e40f29849b7d80cf86c31c0219e2362b3804a
|
|
BLAKE2b-256 checksum How to use checksums |
c83617817fc430b037b219072104b82b2ab21136911adcd6fb1f30be35c214a7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 8, 2026.
Transparency logRelease files / librelyrics_kkbox-1.0.0-py3-none-any.whl
| Download URL | librelyrics_kkbox-1.0.0-py3-none-any.whl |
|---|---|
| Size | 9.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
73e4a271439cfc3903469b0fe40c4b1f02b2ca587eea6ff97f78aabbe37f9cd6
|
|
BLAKE2b-256 checksum How to use checksums |
7b5db4a642e71517727a866b983c9045844ea44a8c134e7e92db91f9cec1a19b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 8, 2026.
Transparency log