musicbrainz metadata source is used when the musicbrainz plugin is not activated
The musicbrainz metadata source is used even when the musicbrainz plugin is not activated.
Problem
Running this command in verbose (-vv) mode:
beet -vv import /music/downloads/
Led to this problem: musicbrainz results are present. I didn't copy the full log because it is very long, but I can add parts if needed.
/music/downloads/Back in Black (10 items)
Finding tags for album "AC/DC - Back in Black".
Candidates:
1. (64.7%) AC/DC - Back In Black
≠ tracks, id, label
Spotify, None, 1980, None, Columbia, None, None
2. (44.1%) AC/DC - 5ive of a Kind - Back In Black (Live)
≠ tracks, id, unmatched tracks, ...
Spotify, None, 1980, None, 5ive of a Kind, None, None
3. (31.3%) AC/DC - Bonfire
≠ missing tracks, id, mediums, ...
MusicBrainz, 5xCD, 1997, US, EastWest, 62119-2, None
4. (31.0%) AC/DC - Bonfire
≠ missing tracks, id, mediums, ...
MusicBrainz, 5xCD, 1998, XE, EastWest, 7559-62119-2, None
5. (30.5%) AC/DC - Bonfire
≠ missing tracks, id, mediums, ...
MusicBrainz, 5xCD, 2011, XE, Columbia, 88697856822, None
6. (19.9%) AC/DC - The Ultimate Best of AC/DC (Remastered)
≠ missing tracks, tracks, id, ...
MusicBrainz, Digital Media, 2011, None, None, None, None
7. (6.7%) AC/DC - The Complete Collection
≠ missing tracks, mediums, id, ...
MusicBrainz, 27xDigital Media, 2012, None, Columbia, None, None
➜ # selection (default 1), Skip, Use as-is, as Tracks, Group albums,
Enter search, enter Id, aBort?
Setup
- OS: Linux (docker)
- Python version: 3.12.12
- beets version: 2.5.1
$ beet --version
beets version 2.5.1
Python version 3.12.12
plugins: chroma, convert, embedart, fetchart, info, lastgenre, lyrics, permissions, replaygain, scrub, spotify, zero
- Turning off plugins made problem go away (yes/no): no
My configuration (output of beet config) is:
# --------------- Plugins ---------------
plugins: spotify fetchart embedart convert scrub replaygain lastgenre chroma lyrics permissions info zero
directory: /music/library
# --------------- Main ---------------
library: /config/musiclibrary.blb
art_filename: albumart
# --------------- Performance ---------------
threaded: yes
original_date: yes
# --------------- Tagging ---------------
per_disc_numbering: no
convert:
auto: yes
ffmpeg: /usr/bin/ffmpeg
opts: -ab 320k -ac 2 -ar 48000
max_bitrate: 320
threads: 1
never_convert_lossy_files: yes
delete_originals: no
dest:
pretend: no
link: no
hardlink: no
format: mp3
id3v23: inherit
write_metadata: yes
formats:
aac:
command: ffmpeg -i $source -y -vn -acodec aac -aq 1 $dest
extension: m4a
alac:
command: ffmpeg -i $source -y -vn -acodec alac $dest
extension: m4a
flac: ffmpeg -i $source -y -vn -acodec flac $dest
mp3: ffmpeg -i $source -y -vn -aq 2 $dest
opus: ffmpeg -i $source -y -vn -acodec libopus -ab 96k $dest
ogg: ffmpeg -i $source -y -vn -acodec libvorbis -aq 3 $dest
wma: ffmpeg -i $source -y -vn -acodec wmav2 -vn $dest
auto_keep: no
tmpdir:
quiet: no
embed: yes
paths: {}
no_convert: ''
copy_album_art: no
album_art_maxwidth: 0
playlist:
paths:
default: $albumartist/$album%aunique{}/$track - $title
singleton: Singles/$artist - $title
comp: Compilations/$album%aunique{}/$track - $title
albumtype_soundtrack: Soundtracks/$album/$track $title
import:
autotag: yes
write: yes
copy: yes
move: no
resume: ask
quiet: no
quiet_fallback: asis
timid: no
log: /config/beet.log
spotify:
data_source_mismatch_penalty: 0.0
search_limit: 5
search_query_ascii: no
mode: list
tiebreak: popularity
show_failures: no
region_filter:
regex: []
client_id: REDACTED
client_secret: REDACTED
tokenfile: spotify_token.json
zero:
fields: albumdisambig
auto: yes
keep_fields: []
update_database: no
omit_single_disc: no
match:
strong_rec_thresh: 0.1
ignored_media:
- Data CD
- DVD
- DVD-Video
- Blu-ray
- HD-DVD
- VCD
- SVCD
- UMD
- VHS
lastgenre:
auto: yes
source: album
whitelist: yes
min_weight: 10
count: 1
fallback:
canonical: no
force: no
keep_existing: no
separator: ', '
prefer_specific: no
title_case: yes
extended_debug: no
embedart:
auto: yes
remove_art_file: yes
maxwidth: 0
compare_threshold: 0
ifempty: no
quality: 0
fetchart:
auto: yes
sources: spotify
store_source: yes
minwidth: 0
maxwidth: 0
quality: 0
max_filesize: 0
enforce_ratio: no
cautious: no
cover_names:
- cover
- front
- art
- album
- folder
high_resolution: no
deinterlace: no
cover_format:
lastfm_key: REDACTED
fanarttv_key: REDACTED
google_key: REDACTED
google_engine: REDACTED
replaygain:
auto: no
overwrite: no
backend: command
threads: 12
parallel_on_import: no
per_disc: no
peak: 'true'
targetlevel: 89
r128: [Opus]
r128_targetlevel: 84
command: ''
noclip: yes
scrub:
auto: yes
replace:
^\.: _
'[\x00-\x1f]': _
'[<>:"\?\*\|]': _
'[\xE8-\xEB]': e
'[\xEC-\xEF]': i
'[\xE2-\xE6]': a
'[\xF2-\xF6]': o
'[\xF8]': o
\.$: _
\s+$: ''
lyrics:
auto: yes
forced: yes
sources: [lrclib, genius, tekstowo]
synced: yes
translate:
api_key: REDACTED
from_languages: []
to_language:
dist_thresh: 0.11
google_API_key: REDACTED
google_engine_ID: REDACTED
genius_api_key: REDACTED
fallback:
force: no
local: no
print: no
permissions:
file: 644
dir: 755
disabled_plugins: []
chroma:
search_limit: 5
data_source_mismatch_penalty: 0.5
auto: yes
Disabling the chroma plugin fixed this. I guess I messed up when testing without plugins. Sorry about that !
You are running the latest version from the main branch?
This should have been fixed in 2.5.1 with #6093 (#6100). Lets investigate this quickly before we close it.
I can reproduce this! Seems like we missed something with #6100. While musicbrainz does not show up in the plugin list it is still used for lookup and manually triggered searches if chroma is enabled.
Interestingly all of this seems like expected behavior as the lookup (via acoustid fingerprinting) only returns a musicbrainz id. We could make it a bit clearer in the docs, or as an improvement get more potential ids from the musicbrainz response and only further process the enabled sources.
file->id->acoustid->musicbrainz(-> extract other ids)->other provider
Might be an interesting small enhancement for the chroma plugin. I will mark this as an good first issue, while maybe not the simplest task this should allow a newcomer to explore the codebase a bit (especially metadata plugins).
For future reference: https://github.com/beetbox/beets/blob/2bd77b9895fa9779818ff1c0430b9f9738d1616b/beetsplug/chroma.py#L207-L215