Skip to main content

beets-cataloghint

A beets plugin that narrows beets' MusicBrainz match down to the exact release, before the candidate list is shown.

When beets imports an album, MusicBrainz's musicbrainz plugin often resolves the right release-group but struggles to pick the correct release in that group (different pressings, editions, regions, remasters...).

cataloghint looks through what info is available in the album folder (barcode, catalog number, disambiguation text, country, year) and, when it can, picks the exact release for you.

What it does

  • Exactly one release stands out: Picked, and recommendation forced to strong
  • Several releases are tied (same barcode/catalog/year etc., nothing to differentiate them): beets' candidate list is narrowed to just those releases, and beets' distance scoring ranks and recommends between them.
  • None stands out, but beets' top pick scores worse than other release(s) in the same group: Recommendation forced to none
  • A disc under a parent folder whose sibling disc(s) already resolved as a multi-disc release: New disc is matched to that same release, as long as it still fits within the release's remaining multi-disc track count.

If no MusicBrainz release-group was resolved, or the lookup fails, cataloghint defers to beets as usual. It also defers to beets if the picked release fits the local files worse than beets' medium_rec_thresh, which usually means beets found the wrong release-group.

Installation

git clone https://github.com/FlorentLM/beets-cataloghint
uv pip install beets-cataloghint

Or if you used Beet's default uv tool installation method:

git clone https://github.com/FlorentLM/beets-cataloghint
uv tool install beets --with ./beets-cataloghint --reinstall

Then enable the plugin in your beets config:

plugins: cataloghint musicbrainz

(cataloghint requires the musicbrainz plugin to be enabled)

Configuration

All settings optional, defaults are:

cataloghint:
    check_cue: yes
    check_sibling_discs: yes
    auto_apply: no
    preferred_countries: []
  • check_cue: Look inside any .cue file found in the album folder for TITLE, PERFORMER and CATALOG hints.
  • check_sibling_discs: Reuse an already-resolved release for sibling discs found under the same parent folder (matched by artist/album identity), instead of re-scoring from scratch.
  • auto_apply: When a release is uniquely resolved, apply it automatically instead of just forcing the recommendation to strong.
  • preferred_countries: MusicBrainz country codes in order of preference (for instance [XW, XE, JP, US]), used as last resort, to break a tie after all other evidence are exhausted.

License

MIT

Metadata

Release files for beets-cataloghint 1.0.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 beets-cataloghint 1.0.0
File Size Uploaded
beets_cataloghint-1.0.0.tar.gz 78.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for beets-cataloghint 1.0.0
File Interpreter ABI Platform
beets_cataloghint-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 96.3 kB

Release files / beets_cataloghint-1.0.0.tar.gz

Download URL beets_cataloghint-1.0.0.tar.gz
Size 78.4 kB
Tags Source
SHA-256 checksum
How to use checksums
4afc4535adbcd52d0e7432ef2b4afe52871b369f1923399d9459f07c240fd946
BLAKE2b-256 checksum
How to use checksums
7ee471b74f02bc5f2ad62780b35351a2b07eb3a20210c0afedfa6c296d8ec642
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","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 / beets_cataloghint-1.0.0-py3-none-any.whl

Download URL beets_cataloghint-1.0.0-py3-none-any.whl
Size 17.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ad06eb6e6a6339afd2346cfc52657563c551b74775bbea5dca7e77dfe856ca3d
BLAKE2b-256 checksum
How to use checksums
bdcc67322153cce59c1b08ed87b2d319c157e40dd126a71319f52e6df03d8005
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","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

1.0.0 This release

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