beetbox / beetbox/beets

Importer: match and store metadata from multiple sources

Open
#2,866 6 comments 2 reactions 0 assignees View on GitHub
feature
Dominant language
Python
Stars
15.7k
Forks
2.1k
Avg merge
4d 21h
Merged PRs (30d)
31

Description

Different metadata sources (be it MusicBrainz, Discogs, or something else) have different coverage and users might have to use both for tagging their music. As an example, very often, I cannot find metadata on MusicBrainz and I end up using Discogs instead, and this, as #604 mentions, pollutes the MBID tag space.

In general, it will be great to to make tagging approach more generic and agnostic to metadata sources because:
- Mixing metadata from different sources using the same ID3 tags makes the database inconsistent and this will be a disadvantage in the long term.
- More metadata sources is better (different sources might bring complementary information, why not to store it all? Some users will want this)

This can be achieved by adding an option to allow mining metadata from multiple sources simultaneously having a custom TXXX namespace for each one. To select which source metadata is used as a "master" source for the main ID3 tags, a user should be able to define his own order of preference (similar to a proposal in #2686). The TXXX namespaces for each source could be all customizable by a user too.

Contributor guide

Open the contributing guide

Research direction

No files or tests are named. Start by reading the existing importer and ID3-tagging paths, then review issues #604 and #2686 for related constraints. Done would require an agreed design for source-specific metadata namespaces, master-source ordering, and simultaneous source handling before implementation can be scoped.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
cli
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.