beets
beets copied to clipboard
Always prefer a different metadata source over MusicBrainz
Problem
I really dislike how musicbrainz normalizes capitalization across its entire database, ignoring the original stylization of the source material. I buy a lot of music from bandcamp, and would prefer to use the bandcamp plugin for metadata whenever possible. however, it seems there is not existing way to prefer an external metadata source above musicbrainz, only equal to musicbrainz, and even when both sources match 100% beets still prefers musicbrainz over bandcamp:

this could be alleviated if I could set the source_weight of bandcamp to a negative number, or if I could assign musicbrainz a source_weight of >0.0 (if this is already possible, it should be documented).
Setup
- OS: windows 10, running beets in msys2
- Python version: 3.6.1
- beets version: 1.4.5
- Turning off plugins made problem go away (yes/no): haven't tried (disabling the beets plugin would be counterproductive)
My configuration (output of beet config) is:
directory: /f/music/
library: /f/music/musiclibrary.lib
plugins: info discogs bandcamp edit badfiles missing #fetchart #copyartifacts
pluginpath:
- ~/.config/beets/
- ~/src/beets-bandcamp/beetsplug/
- ~/src/beets-copyartifacts/beetsplug/
bandcamp:
source_weight: 0
musicbrainz:
source_weight: 0.5
copyartifacts:
print_ignored: yes
extensions: .*
ignore:
- '*.mp4'
- '*.avi'
paths:
default: %ifdef{GROUPING,%ifdef{ERA,$GROUPING/$ERA/[$year-$month-$day] $albumartist - $album/$track $title,$GROUPING/$albumartist/[$year-$month-$day] $album/$track $title},$albumartist/[$year-$month-$day] $album/$track $title}
singleton: %ifdef{GROUPING,%ifdef{ERA,$GROUPING/$ERA/[$year-$month-$day] $albumartist - $album/$track $title,$GROUPING/$albumartist/[$year-$month-$day] $album/$track $title},$albumartist/[$year-$month-$day] $album/$track $title}
comp: %ifdef{GROUPING,%ifdef{ERA,$GROUPING/$ERA/[$year-$month-$day] $albumartist - $album/$track $title,$GROUPING/$albumartist/[$year-$month-$day] $album/$track $title},$albumartist/[$year-$month-$day] $album/$track $title}
Hi there—yes; this is indeed frustrating. See also #400 for disabling the MB source entirely. That request should be generalized to also include de-prioritizing it with respect to other (plugin) sources.
Adding a source_weight config option to the MusicBrainz source would be a simple way to do this.
The way I read MusicBrainz documentation on the style, you are encouraged to correct spelling - https://musicbrainz.org/doc/Style/Principle/Error_correction_and_artist_intent
I'd say, correct and make MusicBrainz better - don't disable the pluging! :^)
Sorry I'm (not unusually) confused; can I specify source_weight: 0.5 to Musicbrainz in my beets config?
No; we don't currently have a source_weight option for MusicBrainz. (That's what this issue is proposing to add.)
Thanks!
Why was this never implemented? Seems to be a pretty easy and badly needed fix.
To add my own experience: MusicBrainz straight up is trying to murder my music library with actual typos. The discogs plugin on the other hand so far has only delivered correct results. But if I have to manually look up and type in the discogs ID each time then beets is no more useful than a manual tagger would be.
Why was this never implemented? Seems to be a pretty easy and badly needed fix.
To add my own experience: MusicBrainz straight up is trying to murder my music library with actual typos. The discogs plugin on the other hand so far has only delivered correct results. But if I have to manually look up and type in the discogs ID each time then beets is no more useful than a manual tagger would be.
I read a post from another user that said you could just block Musicbrainz in your hosts file and that basically makes it default to Discogs since it can't connect to Musicbrainz. I haven't tested this myself.
@stukev as with a lot of open-source projects, a majority of features are implemented by users who want the feature, not by the core developers.
PRs are always welcome!
Few people are aware, but most of MusicBrainz content is from this one guy.