-
Notifications
You must be signed in to change notification settings - Fork 2k
Open
Description
Problem
Running this command in verbose (-vv) mode:
$ beet -vv import --move /importLed to this problem:
Traceback (most recent call last):
File "/usr/bin/beet", line 8, in <module>
sys.exit(main())
^^^^^^
File "/usr/lib/python3.12/site-packages/beets/ui/__init__.py", line 1629, in main
_raw_main(args)
File "/usr/lib/python3.12/site-packages/beets/ui/__init__.py", line 1608, in _raw_main
subcommand.func(lib, suboptions, subargs)
File "/usr/lib/python3.12/site-packages/beets/ui/commands/import_/__init__.py", line 131, in import_func
import_files(lib, byte_paths, query)
File "/usr/lib/python3.12/site-packages/beets/ui/commands/import_/__init__.py", line 75, in import_files
session.run()
File "/usr/lib/python3.12/site-packages/beets/importer/session.py", line 236, in run
pl.run_parallel(QUEUE_SIZE)
File "/usr/lib/python3.12/site-packages/beets/util/pipeline.py", line 471, in run_parallel
raise exc_info[1].with_traceback(exc_info[2])
File "/usr/lib/python3.12/site-packages/beets/util/pipeline.py", line 336, in run
out = self.coro.send(msg)
^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/beets/util/pipeline.py", line 219, in coro
func(*(args + (task,)))
File "/usr/lib/python3.12/site-packages/beets/importer/stages.py", line 146, in lookup_candidates
task.lookup_candidates(session.config["search_ids"].as_str_seq())
File "/usr/lib/python3.12/site-packages/beets/importer/tasks.py", line 367, in lookup_candidates
autotag.tag_album(self.items, search_ids=search_ids)
File "/usr/lib/python3.12/site-packages/beets/autotag/match.py", line 319, in tag_album
for matched_candidate in metadata_plugins.candidates(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/beets/plugins.py", line 559, in wrapper
for v in func(*args, **kwargs):
^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/beets/metadata_plugins.py", line 41, in candidates
yield from plugin.candidates(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/beetsplug/chroma.py", line 210, in candidates
album = self.mb.album_for_id(relid)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/beetsplug/musicbrainz.py", line 920, in album_for_id
release = self.album_info(res)
^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/beetsplug/musicbrainz.py", line 731, in album_info
info.country, release_date = _preferred_release_event(release)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/beetsplug/musicbrainz.py", line 336, in _preferred_release_event
if country in event["area"]["iso-3166-1-codes"]:
~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
TypeError: 'NoneType' object is not subscriptable
Here's a link to the music files that trigger the bug (if relevant):
The files are not relevant, but I think it is crashing while trying to request this release: https://musicbrainz.org/release/15c0351a-f2cf-434c-861c-dc9b82893f3d
I suspect this may be a regression from #6052?
Setup
- OS: Alpine (Docker container)
- Python version: 3.12.12
- beets version: 2.5.1(on master)
- Turning off plugins made problem go away (yes/no): yes if I turn off the musicbrainz plugin
My configuration (output of beet config) is:
# _____ _
# | __ |___ ___| |_ ___
# | __ -| -_| -_| _|_ -|
# |_____|___|___|_| |___|
# Global Options ##############################################################
threaded: yes
original_date: yes
# Path ########################################################################
directory: /library
library: /database/beets.db
statefile: /database/state.pickle
asciify_paths: yes
per_disc_numbering: no
aunique:
keys: albumartist album year
disambiguators: albumtype label catalognum albumdisambig releasegroupdisambig
bracket: "[]"
paths:
default: $firstAlbumArtist/$album ($year)%aunique{}/$track $title
singleton: $firstAlbumArtist/Non-Album/$title
albumtype:soundtrack: Soundtracks/$album ($year)%aunique{}/$track $title
comp: Various Artists/$album ($year)%aunique{}/$track $title
# copyartifacts
ext:jpg: $albumpath/cover
ext:jpeg: $albumpath/cover
ext:png: $albumpath/cover
ext:webp: $albumpath/cover
# Import ######################################################################
import:
write: yes
copy: no
move: no
resule: yes
incremental: yes
timied: no
languages: en jp
log: /config/log.txt
# Autotagger ##################################################################
match:
preferred:
media: ["Digital Media|File", "Digital Media"]
countries: ["XW", "US", "GB|UK", "CA"]
strong_rec_thresh: 0.30
medium_rec_thresh: 0.50
# Plugins #####################################################################
plugins:
# Autotagger Extensions
- bandcamp
- chroma
- deezer
- fromfilename
- musicbrainz
- spotify
# Metadata
- edit
- embedart
- fetchart
- importadded
- lastgenre
- lyrics
- replaygain
# - scrub
# Path Formats
- copyartifacts
- inline
# Interoperability
- badfiles
# - check
# Miscellaneous
- duplicates
- info
- missing
- permissions
- unimported
# Autotagger Extensions
musicbrainz:
search_limit: 10
data_source_mismatch_penalty: 0.4
extra_tags: [year, catalognum, country, label, media]
external_ids:
bandcamp: yes
beatport: yes
deezer: yes
discogs: yes
spority: yes
tidal: yes
spotify:
search_limit: 5
data_source_mismatch_penalty: 0.5
bandcamp:
search_max: 5
data_source_mismatch_penalty: 0.6
art: true
deezer:
search_limit: 5
data_source_mismatch_penalty: 0.7
chroma:
auto: yes
# Metadata
fetchart:
auto: yes
minwidth: 500
maxwidth: 1000
enforce_ratio: yes
embedart:
auto: no
compare_threshold: 50
ifempty: no
maxwidth: 500
remove_art_file: no
lastgenre:
auto: yes
count: 5
canonical: no
whitelist: /config/genres.txt
force: yes
fallback: ""
lyrics:
auto: yes
synced: yes
fallback: ""
sources: [lrclib]
replaygain:
auto: yes
backend: ffmpeg
# Path Formats
copyartifacts:
extensions: .jpg .png .webp
print_ignored: yes
item_fields:
firstAlbumArtist: albumartists[0]
# Miscellaneous
permissions:
file: 644
dir: 755
duplicates:
count: yes
full: yes
check:
import: yes
missing:
count: yes
total: yes
# UI ##########################################################################
verbose: no
ui:
terminal_width: 120
color: yesMetadata
Metadata
Assignees
Labels
No labels