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.0.tar.gz (15.5 kB view details)

Uploaded Source

Built Distribution

lb_matching_tools-2024.1.30.0-py3-none-any.whl (12.0 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for lb-matching-tools-2024.1.30.0.tar.gz
Algorithm Hash digest
SHA256 cb63e147d32be58c7edc09b595170101539087cdf49ba3763746b1f1a10f4369
MD5 8acd59e4911190ce4cb1fee27d877155
BLAKE2b-256 6746849308ee1634d3012dfbd3911659870508f343c12aa34ec3aa4582dc7588

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lb_matching_tools-2024.1.30.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d634df420b0d04fb9e5dceffddaca5de18ac7a3d829ac589933f649dcee7eb24
MD5 823f9f37b4334f95911c9556af316537
BLAKE2b-256 5048656a4fe4f8d519a31e139d1b9baf5cf4883905d05dcdde1f638f156abf94

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