Skip to main content

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

  1. Reads iTunes XML: Parses iTunes Music Library.xml for album metadata
  2. Deduplicates: Groups tracks by (artist, album) to avoid duplicate queries
  3. Queries MusicBrainz: Searches release groups using exact artist + album matching
  4. Caches Results: Stores album and artist data in .minkdb/album.json and .minkdb/artist.json
  5. 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_id referencing artist.json

Lidarr Publish

  • Uses lidarr-py for API integration
  • Reads curated matched album metadata from .minkdb/album.json
  • Requires LIDARR_API_KEY in 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)

Source distribution for minkdb 0.2.0
File Size Uploaded
minkdb-0.2.0.tar.gz 13.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for minkdb 0.2.0
File Interpreter ABI Platform
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}

Release history Release notifications | RSS feed

This release

0.2.0 This release

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