Mink-db
A metadata-link between iTunes and MusicBrainz. A CLI tool that catalogs a music library by scanning iTunes libraries and retrieving MusicBrainz artist IDs.
How It Works
- Reads iTunes XML: Parses
iTunes Music Library.xmlfor album metadata - Deduplicates: Groups tracks by (artist, album) to avoid duplicate queries
- Queries MusicBrainz: Searches release groups using exact artist + album matching
- Caches Results: Stores album and artist data in
.minkdb/album.jsonand.minkdb/artist.json - Outputs: Prints matched IDs to stdout or file
On subsequent runs, Mink-db will skip already-matched albums and only query MusicBrainz for new ones.
Installation
Mink-db requires Python 3.13 or later.
# Run directly with uvx (no installation required)
uvx minkdb --help
# Or install as a tool
git clone https://github.com/thomaseleff/minkdb.git
cd minkdb
uv tool install .
Quick Start
Catalog your iTunes library and get MusicBrainz IDs:
minkdb --path "M:\Music\iTunes"
Usage
# Basic usage (defaults to current directory)
minkdb
# Specify iTunes library path
minkdb --path "M:\Music\iTunes"
# Limit number of albums processed
minkdb --path "M:\Music\iTunes" --limit 10
# Save output to file
minkdb --path "M:\Music\iTunes" -o ids.json
# Retry matching for previously unmatched albums
minkdb --path "M:\Music\iTunes" --rematch
# Publish curated exact albums to Lidarr
LIDARR_API_KEY="<your-api-key>" minkdb publish --path "M:\Music\iTunes"
# Publish to a non-default Lidarr URL
LIDARR_API_KEY="<your-api-key>" minkdb publish --path "M:\Music\iTunes" --url "http://lidarr.local:8686"
Output Format
Mink-db outputs a JSON array of unique matched MusicBrainz artist IDs:
[
{"MusicBrainzArtistId": "11111111-1111-1111-1111-111111111111"},
{"MusicBrainzArtistId": "22222222-2222-2222-2222-222222222222"}
]
Data Storage
- Album database:
<library_path>/.minkdb/album.json - Artist database:
<library_path>/.minkdb/artist.json(unique by artist MusicBrainz ID) - Album FK: Each album row includes
artist_musicbrainz_idreferencingartist.json
Lidarr Publish
- Uses
lidarr-pyfor API integration - Reads curated matched album metadata from
.minkdb/album.json - Requires
LIDARR_API_KEYin environment - Adds artists with broad monitoring disabled and monitors only exact albums from Mink-db
Requirements
- Python 3.13+
- iTunes Music Library.xml file
- Internet connection (for MusicBrainz queries)
Release files for minkdb 0.2.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 | |
|---|---|---|---|
| minkdb-0.2.0.tar.gz | 13.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| minkdb-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size:28.8 kB
Release files / minkdb-0.2.0.tar.gz
| Download URL | minkdb-0.2.0.tar.gz |
|---|---|
| Size | 13.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
113382c3aec609ff4ce053d470c688f4b64de8959e51f922ac4f45d3cd9d40c8
|
|
BLAKE2b-256 checksum How to use checksums |
36b3bf2be37265b6e4c12311347f0b00b476db7624060a9bfcf80febaa8ecb3b
|
| 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":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / minkdb-0.2.0-py3-none-any.whl
| Download URL | minkdb-0.2.0-py3-none-any.whl |
|---|---|
| Size | 15.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
67b89d6f5836bffd6a2fa35e81a5162cf808a4bb770465869b40cee895d59418
|
|
BLAKE2b-256 checksum How to use checksums |
0af55b928b7a15e229e62b16969e1aba0ea396ce1aba14c3eea4dfe5e41cc045
|
| 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":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|