-
Notifications
You must be signed in to change notification settings - Fork 2k
Description
I am super confused as I haven’t changed anything recently, but today beets stopped finding local cover art with fetchart. My use case is the following: I download my own cover art, put it next to the files I want to import as cover.jpg, and use fetchart with sources: filesystem to set artpath and then embedart to include my local file in my mp3 tags. cover.jpg should be moved with the music files to my library.
That has worked flawlessly for months.
Problem
Running this command in verbose (-vv) mode:
$ beet -vv fetchart album:=<album_name>Led to this problem:
user configuration: /home/stephan/.config/beets/config.yaml
data directory: /home/stephan/.config/beets
plugin paths: []
Loading plugins: convert, duplicates, embedart, fetchart, info, inline, mbsync, musicbrainz, permissions, scrub, web, zero
fetchart: lastfm: Disabling art source due to missing key
fetchart: google: Disabling art source due to missing key
artresizer: method is ImageMagick
inline: adding item field multidisc
Sending event: pluginload
library database: /home/stephan/.config/beets/library.db
library directory: /home/stephan/nas/pub/music
Sending event: library_opened
Parsed query: AndQuery([MatchQuery('album', 'Breach', fast=True)])
Parsed sort: NullSort()
fetchart: <artist_name> - <album_name>: no art found
Sending event: cli_exit
Setup
- OS: Linux Arch 6.18.5
- Python version: 3.14.2
- beets version: 2.5.1
- Turning off plugins made problem go away (yes/no): no
But what made the problem go away was changing this bit of config:
fetchart:
sources: filesystem
enforce_ratio: yes
minwidth: 1000into this:
fetchart:
sources:
- filesystem
enforce_ratio: yes
minwidth: 1000As if the sources field wasn’t parsed correctly. I looked into the code of fetchart quickly and noticed that it is using Confuse’s as_pairs to parse the sources config field, as opposed to as_str_seq() other plugins are using. But it has been that way for years. Are there any other side effects in recent changes or am I missing something here?
My configuration (output of beet config) is:
directory: ~/nas/pub/music
# --------------- Plugins ---------------
plugins: musicbrainz fetchart embedart convert info zero convert scrub inline permissions web duplicates mbsync
# --------------- Tagging ---------------
per_disc_numbering: yes
item_fields:
multidisc: 1 if disctotal > 1 else 0
paths:
default: $albumartist/$album%aunique{}/%if{$multidisc,$disc}$track $title
comp: Various Artists/$album%aunique{}/%if{$multidisc,$disc}$track $title
# --------------- Paths ---------------
path_sep_replace: '-'
replace:
w-: w
"b\u2013w": bw
': ': " \u2013 "
':': "\u2013"
'[\?\!]': ''
'[\\/]': '-'
\.$: ''
' \.': ' '
import:
move: yes
languages: en de
fetchart:
sources: [filesystem]
enforce_ratio: yes
minwidth: 1000
auto: yes
maxwidth: 0
quality: 0
max_filesize: 0
cautious: no
cover_names:
- cover
- front
- art
- album
- folder
store_source: no
high_resolution: no
deinterlace: no
cover_format:
google_key: REDACTED
google_engine: REDACTED
fanarttv_key: REDACTED
lastfm_key: REDACTED
embedart:
maxwidth: 1000
quality: 75
auto: yes
compare_threshold: 0
ifempty: no
remove_art_file: no
zero:
fields: copyright comments encoder
auto: yes
keep_fields: []
update_database: no
omit_single_disc: no
convert:
auto: yes
never_convert_lossy_files: yes
dest: ~/nas/pub/music
format: mp3
formats:
mp3: ffmpeg -i $source -y -ab 320k $dest
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
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
pretend: no
link: no
hardlink: no
threads: 16
id3v23: inherit
write_metadata: yes
max_bitrate:
auto_keep: no
tmpdir:
quiet: no
embed: yes
paths: {}
no_convert: ''
copy_album_art: no
album_art_maxwidth: 0
delete_originals: no
playlist:
permissions:
file: 644
dir: 755
disabled_plugins: []
musicbrainz:
search_limit: 5
data_source_mismatch_penalty: 0.5
host: musicbrainz.org
https: no
ratelimit: 1
ratelimit_interval: 1
genres: no
external_ids:
discogs: no
bandcamp: no
spotify: no
deezer: no
tidal: no
extra_tags: []
scrub:
auto: yes
pathfields: {}
album_fields: {}
web:
host: 127.0.0.1
port: 8337
cors: ''
cors_supports_credentials: no
reverse_proxy: no
include_paths: no
readonly: yes
duplicates:
album: no
checksum: ''
copy: ''
count: no
delete: no
format: ''
full: no
keys: []
merge: no
move: ''
path: no
tiebreak: {}
strict: no
tag: ''
remove: noSo this is not urgent, as I seem to have found a solution. But I am always wary when configs that have worked for a long time stop working out of a sudden. Let me know whether I can help with fixing this, if this is the symptom of an issue.