Skip to main content

ListenBrainz tools for matching metadata to and from MusicBrainz.

Project description

ListenBrainz matching tools

In the ListenBrainz project we've created a number of tools and techniques that allowed us to create the MBID Mapping sub-project. This project takes an artist name and a recording (track) name and attempts to find the best matching recording in MusicBrainz.

This library will contain code to facilitate matching non-MusicBrainz metadata to MusicBrainz (tag a music collection) and from MusicBrainz to non-MusicBrainz metadata (content resolution).

Metadata cleaner

One component in this toolkit is the metadata cleaner, which removes (often) useless gunk from a metadata recording string:

"Tabula Rasa (feat. Lorraine Weiss)" -> "Tabula Rasa"
"Don't Give up - 2001 remaster" -> "Don't Give up"

This library also supports artist name cleaning:

"Amy Winhouse, Lorraine Weiss" -> "Amy Winehouse"

When a piece of metadata fails to be identified the metadata should be run through the metadata cleaner in an effort to remove this useless gunk that might be preventing a match. If the cleaner sucessfully removes gunk, the cleaned metadata should be looked up again, hoping that a match will be found this time.

To use this class, instantiate the MetadataCleaner class and call the clean_recording or clean_artist methods:

from lb_matching_tools.cleaner import MetadataCleaner

mc = MetadataCleaner()
mc.clean_recording("Tabula Rasa (feat. Lorraine Weiss)")
mc.clean_artist("Amy Winhouse, Lorraine Weiss")

Installation

To install this python module, simply do:

pip install .

Development

Create virtual environment

python -m venv .venv

Install dependencies

pip install .

Running tests

To run the internal unit tests, run:

pip install .
./test.py

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lb-matching-tools-2024.1.30.1.tar.gz (15.5 kB view details)

Uploaded Source

Built Distribution

lb_matching_tools-2024.1.30.1-py3-none-any.whl (12.1 kB view details)

Uploaded Python 3

File details

Details for the file lb-matching-tools-2024.1.30.1.tar.gz.

File metadata

File hashes

Hashes for lb-matching-tools-2024.1.30.1.tar.gz
Algorithm Hash digest
SHA256 6472a035edcca7da1cb88b463b1f8377943cdf39b5224ced680387223f873a8c
MD5 b60f88f4daec4acd3be30716e1a535d8
BLAKE2b-256 a4545186e8be62ac2791b0ee6982ae05b8cf4404db8d57d59fa16ccd6c938b0b

See more details on using hashes here.

File details

Details for the file lb_matching_tools-2024.1.30.1-py3-none-any.whl.

File metadata

File hashes

Hashes for lb_matching_tools-2024.1.30.1-py3-none-any.whl
Algorithm Hash digest
SHA256 50aa957ee8f64dbcac6b738e3707a26a05e14af25f18ea0dce6b51c388cca3f0
MD5 404803885d68c0bc63dc6f64692c437c
BLAKE2b-256 17c4565d2124cf73e5683758818c3a7767634c8e8a5a8e67bbc7a0da38f39f0c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page