Beets stopping (seemingly) after every album

thumb is “cover.jpg” renamed in the config file using art_filename: thumb. being thumb.jpg is required for proper naming for Kodi…I don’t believe i have any automatic creation on the NAS to generate thumbnails…if it does, it’s a factory setting.
I was able to look in the temp folder…looks like this has happened on a few occasions, but the file does exist …not sure what that tells us…
2022-05-02-07_27_00-VMHost - VMHost - Remote Desktop Connection

yes, i can try switching to a local directory temporarily

I relocated the DB to be local and got this traceback …

Sending event: art_set
embedart: Embedding album art into Prince - Controversy
embedart: Extracting album art from: Prince - Controversy - Controversy to: C:\Users\ANDREW~1\AppData\Local\Temp\tmp5n8ndglt.jpg
embedart: comparing images with pipeline ['convert', 'F:\\Download Queues\\Complete\\Music Library Temp\\Artists\\Prince\\2009 - Controversy\\thumb.jpg', 'C:\\Users\\ANDREW~1\\AppData\\Local\\Temp\\tmp5n8ndglt.jpg', '-colorspace', 'gray', 'MIFF:-'] | ['compare', '-metric', 'PHASH', '-', 'null:']
Traceback (most recent call last):
  File "C:\Users\Andrew Sutcliffe\AppData\Roaming\Python\Python310\Scripts\beet-script.py", line 33, in <module>
    sys.exit(load_entry_point('beets==1.6.1', 'console_scripts', 'beet')())
  File "C:\Users\Andrew Sutcliffe\AppData\Roaming\Python\Python310\site-packages\beets\ui\__init__.py", line 1285, in main
    _raw_main(args)
  File "C:\Users\Andrew Sutcliffe\AppData\Roaming\Python\Python310\site-packages\beets\ui\__init__.py", line 1272, in _raw_main
    subcommand.func(lib, suboptions, subargs)
  File "C:\Users\Andrew Sutcliffe\AppData\Roaming\Python\Python310\site-packages\beets\ui\commands.py", line 973, in import_func
    import_files(lib, paths, query)
  File "C:\Users\Andrew Sutcliffe\AppData\Roaming\Python\Python310\site-packages\beets\ui\commands.py", line 943, in import_files
    session.run()
  File "C:\Users\Andrew Sutcliffe\AppData\Roaming\Python\Python310\site-packages\beets\importer.py", line 340, in run
    pl.run_parallel(QUEUE_SIZE)
  File "C:\Users\Andrew Sutcliffe\AppData\Roaming\Python\Python310\site-packages\beets\util\pipeline.py", line 446, in run_parallel
    raise exc_info[1].with_traceback(exc_info[2])
  File "C:\Users\Andrew Sutcliffe\AppData\Roaming\Python\Python310\site-packages\beets\util\pipeline.py", line 358, in run
    self.coro.send(msg)
  File "C:\Users\Andrew Sutcliffe\AppData\Roaming\Python\Python310\site-packages\beets\util\pipeline.py", line 170, in coro
    task = func(*(args + (task,)))
  File "C:\Users\Andrew Sutcliffe\AppData\Roaming\Python\Python310\site-packages\beets\importer.py", line 1566, in manipulate_files
    task.manipulate_files(
  File "C:\Users\Andrew Sutcliffe\AppData\Roaming\Python\Python310\site-packages\beets\importer.py", line 766, in manipulate_files
    plugins.send('import_task_files', session=session, task=self)
  File "C:\Users\Andrew Sutcliffe\AppData\Roaming\Python\Python310\site-packages\beets\plugins.py", line 488, in send
    result = handler(**arguments)
  File "C:\Users\Andrew Sutcliffe\AppData\Roaming\Python\Python310\site-packages\beets\plugins.py", line 145, in wrapper
    return func(*args, **kwargs)
  File "C:\Users\Andrew Sutcliffe\AppData\Roaming\Python\Python310\site-packages\beetsplug\fetchart.py", line 1063, in assign_art
    self._set_art(task.album, candidate, not self.src_removed)
  File "C:\Users\Andrew Sutcliffe\AppData\Roaming\Python\Python310\site-packages\beetsplug\fetchart.py", line 1048, in _set_art
    album.set_art(candidate.path, delete)
  File "C:\Users\Andrew Sutcliffe\AppData\Roaming\Python\Python310\site-packages\beets\library.py", line 1340, in set_art
    plugins.send('art_set', album=self)
  File "C:\Users\Andrew Sutcliffe\AppData\Roaming\Python\Python310\site-packages\beets\plugins.py", line 488, in send
    result = handler(**arguments)
  File "C:\Users\Andrew Sutcliffe\AppData\Roaming\Python\Python310\site-packages\beets\plugins.py", line 145, in wrapper
    return func(*args, **kwargs)
  File "C:\Users\Andrew Sutcliffe\AppData\Roaming\Python\Python310\site-packages\beetsplug\embedart.py", line 187, in process_album
    art.embed_album(self._log, album, max_width, True,
  File "C:\Users\Andrew Sutcliffe\AppData\Roaming\Python\Python310\site-packages\beets\art.py", line 103, in embed_album
    embed_item(log, item, imagepath, maxwidth, None, compare_threshold,
  File "C:\Users\Andrew Sutcliffe\AppData\Roaming\Python\Python310\site-packages\beets\art.py", line 58, in embed_item
    if not check_art_similarity(log, item, imagepath, compare_threshold):
  File "C:\Users\Andrew Sutcliffe\AppData\Roaming\Python\Python310\site-packages\beets\art.py", line 144, in check_art_similarity
    compare_proc = subprocess.Popen(
  File "C:\Program Files\Python310\lib\subprocess.py", line 966, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "C:\Program Files\Python310\lib\subprocess.py", line 1435, in _execute_child
    hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
FileNotFoundError: [WinError 2] The system cannot find the file specified

The art does exist in the temp directory

Wanted to note that i do have imagemagik as an environment variable in both the system and user path…not sure if that has anything to do with it…but throwing that out there. I didn’t configure anything in imagemagick, not sure if i was supposed to…

It looks like on subsequent runs the process eventually completes ?.. I’m only speculating this part, but these are files that are in the temp music library and it looks like they all have embedded art

The [WinError 2] The system cannot find the file specified error seems to suggest that ImageMagick’s compare command isn’t in your path.

Can you try opening a new command prompt and just run compare?

I get this

you are correct, i do not have compare specifically specified as an environment variable , i do have “C:\Program Files\ImageMagick-7.1.0-Q16-HDRI” set in path as both a system and user environment variable

I literally just added this path to the user path environment variable…previously it was only on the system environment variable…wondering if that would have made a difference…i would think it would be like a lightswitch and either work or not work…not just work sometimes. I notice that removing the path from the user environment variable, the ‘compare’ command no longer works in a command prompt

I ran a few CD 's through beets import and i am seeing things like
“embedart: No album art present in Kamelot - Ghost Opera - EdenEcho, skipping.
embedart: embedding F:\Download Queues\Complete\Music Library Temp\Artists\Kamelot\2007 - Ghost Opera\thumb.jpg” … i wasn’t seeing/noticing this before. Going to keep testing, but that may/may not have fixed it…I’ll circle back

Perhaps i spoke to soon… I watched it process probably 4-6 albums successfully then the same error again
I believe that not having the imagmagix user path environment variable specified was still an issue…but unrelated.

lyrics: fetched lyrics: Prince - 3121 - 3121
Sending event: art_set
embedart: Embedding album art into Otep - KULT 45
Sending event: database_change
embedart: Extracting album art from: Otep - KULT 45 - Hail to the Thief to: C:\Users\ANDREW~1\AppData\Local\Temp\tmpj8j8woil.jpg
embedart: comparing images with pipeline ['convert', 'F:\\Download Queues\\Complete\\Music Library Temp\\Artists\\Otep\\2018 - KULT 45\\thumb.jpg', 'C:\\Users\\ANDREW~1\\AppData\\Local\\Temp\\tmpj8j8woil.jpg', '-colorspace', 'gray', 'MIFF:-'] | ['compare', '-metric', 'PHASH', '-', 'null:']
lyrics: failed to fetch: https://www.musixmatch.com/lyrics/Prince/Lolita (404)
lyrics: Received unusual song page html
lyrics: got lyrics from backend: Genius
lyrics: fetched lyrics: Prince - 3121 - Lolita
Sending event: database_change
lyrics: failed to fetch: https://www.musixmatch.com/lyrics/Prince/Te-Amo-Coraz%C3%B3n (404)
lyrics: Received unusual song page html
lyrics: got lyrics from backend: Genius
lyrics: fetched lyrics: Prince - 3121 - Te Amo Corazón
Sending event: database_change
lyrics: failed to fetch: https://www.musixmatch.com/lyrics/Prince/Black-Sweat (404)
lyrics: Received unusual song page html
lyrics: got lyrics from backend: Genius
lyrics: fetched lyrics: Prince - 3121 - Black Sweat
Sending event: database_change
lyrics: failed to fetch: https://www.musixmatch.com/lyrics/Prince/Incense-And-Candles (404)
lyrics: Received unusual song page html
lyrics: got lyrics from backend: Genius
lyrics: fetched lyrics: Prince - 3121 - Incense and Candles
Sending event: database_change
lyrics: failed to fetch: https://www.musixmatch.com/lyrics/Prince/Love (404)
lyrics: Received unusual song page html
lyrics: got lyrics from backend: Genius
lyrics: fetched lyrics: Prince - 3121 - Love
Sending event: database_change
lyrics: failed to fetch: https://www.musixmatch.com/lyrics/Prince/Satisfied (404)
lyrics: Received unusual song page html
lyrics: got lyrics from backend: Genius
lyrics: fetched lyrics: Prince - 3121 - Satisfied
Sending event: database_change
lyrics: failed to fetch: https://www.musixmatch.com/lyrics/Prince/Fury (404)
lyrics: Received unusual song page html
lyrics: got lyrics from backend: Genius
lyrics: fetched lyrics: Prince - 3121 - Fury
Sending event: database_change
lyrics: failed to fetch: https://www.musixmatch.com/lyrics/Prince/The-Word (404)
lyrics: Received unusual song page html
lyrics: got lyrics from backend: Genius
lyrics: fetched lyrics: Prince - 3121 - The Word
Sending event: database_change
lyrics: failed to fetch: https://www.musixmatch.com/lyrics/Prince/Beautiful%2C-Loved-And-Blessed (404)lyrics: Received unusual song page html
lyrics: got lyrics from backend: Genius
lyrics: fetched lyrics: Prince - 3121 - Beautiful, Loved and Blessed
Sending event: database_change
lyrics: failed to fetch: https://www.musixmatch.com/lyrics/Prince/The-Dance (404)
lyrics: Received unusual song page html
lyrics: got lyrics from backend: Genius
lyrics: fetched lyrics: Prince - 3121 - The Dance
Sending event: database_change
lyrics: failed to fetch: https://www.musixmatch.com/lyrics/Prince/Get-On-The-Boat (404)
lyrics: Received unusual song page html
lyrics: got lyrics from backend: Genius
lyrics: fetched lyrics: Prince - 3121 - Get on the Boat
Sending event: database_change
Traceback (most recent call last):
  File "C:\Users\Andrew Sutcliffe\AppData\Roaming\Python\Python310\Scripts\beet-script.py", line 33, in <module>
    sys.exit(load_entry_point('beets==1.6.1', 'console_scripts', 'beet')())
  File "C:\Users\Andrew Sutcliffe\AppData\Roaming\Python\Python310\site-packages\beets\ui\__init__.py", line 1285, in main
    _raw_main(args)
  File "C:\Users\Andrew Sutcliffe\AppData\Roaming\Python\Python310\site-packages\beets\ui\__init__.py", line 1272, in _raw_main
    subcommand.func(lib, suboptions, subargs)
  File "C:\Users\Andrew Sutcliffe\AppData\Roaming\Python\Python310\site-packages\beets\ui\commands.py", line 973, in import_func
    import_files(lib, paths, query)
  File "C:\Users\Andrew Sutcliffe\AppData\Roaming\Python\Python310\site-packages\beets\ui\commands.py", line 943, in import_files
    session.run()
  File "C:\Users\Andrew Sutcliffe\AppData\Roaming\Python\Python310\site-packages\beets\importer.py", line 340, in run
    pl.run_parallel(QUEUE_SIZE)
  File "C:\Users\Andrew Sutcliffe\AppData\Roaming\Python\Python310\site-packages\beets\util\pipeline.py", line 446, in run_parallel
    raise exc_info[1].with_traceback(exc_info[2])
  File "C:\Users\Andrew Sutcliffe\AppData\Roaming\Python\Python310\site-packages\beets\util\pipeline.py", line 358, in run
    self.coro.send(msg)
  File "C:\Users\Andrew Sutcliffe\AppData\Roaming\Python\Python310\site-packages\beets\util\pipeline.py", line 170, in coro
    task = func(*(args + (task,)))
  File "C:\Users\Andrew Sutcliffe\AppData\Roaming\Python\Python310\site-packages\beets\importer.py", line 1566, in manipulate_files
    task.manipulate_files(
  File "C:\Users\Andrew Sutcliffe\AppData\Roaming\Python\Python310\site-packages\beets\importer.py", line 766, in manipulate_files
    plugins.send('import_task_files', session=session, task=self)
  File "C:\Users\Andrew Sutcliffe\AppData\Roaming\Python\Python310\site-packages\beets\plugins.py", line 488, in send
    result = handler(**arguments)
  File "C:\Users\Andrew Sutcliffe\AppData\Roaming\Python\Python310\site-packages\beets\plugins.py", line 145, in wrapper
    return func(*args, **kwargs)
  File "C:\Users\Andrew Sutcliffe\AppData\Roaming\Python\Python310\site-packages\beetsplug\fetchart.py", line 1063, in assign_art
    self._set_art(task.album, candidate, not self.src_removed)
  File "C:\Users\Andrew Sutcliffe\AppData\Roaming\Python\Python310\site-packages\beetsplug\fetchart.py", line 1048, in _set_art
    album.set_art(candidate.path, delete)
  File "C:\Users\Andrew Sutcliffe\AppData\Roaming\Python\Python310\site-packages\beets\library.py", line 1340, in set_art
    plugins.send('art_set', album=self)
  File "C:\Users\Andrew Sutcliffe\AppData\Roaming\Python\Python310\site-packages\beets\plugins.py", line 488, in send
    result = handler(**arguments)
  File "C:\Users\Andrew Sutcliffe\AppData\Roaming\Python\Python310\site-packages\beets\plugins.py", line 145, in wrapper
    return func(*args, **kwargs)
  File "C:\Users\Andrew Sutcliffe\AppData\Roaming\Python\Python310\site-packages\beetsplug\embedart.py", line 187, in process_album
    art.embed_album(self._log, album, max_width, True,
  File "C:\Users\Andrew Sutcliffe\AppData\Roaming\Python\Python310\site-packages\beets\art.py", line 103, in embed_album
    embed_item(log, item, imagepath, maxwidth, None, compare_threshold,
  File "C:\Users\Andrew Sutcliffe\AppData\Roaming\Python\Python310\site-packages\beets\art.py", line 58, in embed_item
    if not check_art_similarity(log, item, imagepath, compare_threshold):
  File "C:\Users\Andrew Sutcliffe\AppData\Roaming\Python\Python310\site-packages\beets\art.py", line 144, in check_art_similarity
    compare_proc = subprocess.Popen(
  File "C:\Program Files\Python310\lib\subprocess.py", line 966, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "C:\Program Files\Python310\lib\subprocess.py", line 1435, in _execute_child
    hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
FileNotFoundError: [WinError 2] The system cannot find the file specified

I notice you are running in powershell.

Can you try running just in cmd.exe?

Under windows I have no issues in cmd.exe, I have not tried in powershell.

The compare output in your screenshot looks like it may be from a PS built-in - it’s worth trying to run compare in cmd too.

Sorry, windows 11 noob here… was running in terminal. here is the output from cmd.

If i use ‘magick compare’ I get this

It looks like a number of commands have been moved under magick in IM 7, but we don’t currently support running them via this.

@shredder_guitarist, could you please open a GitHub issue about this? In the meantime you could try downgrading to an older version of ImageMagick from here (6.9.12-38 seems to be the last version before 7).

I can do that. Thank you both for your help so far

I have created issue #4272 on github. Also, I installed a previous version of imagemagick and it seems to still be complaining, the compare, convert files ARE in the imagemagick directory and i do get the desired output when opening a cmd prompt and typing ‘compare’…simply seems to be not finding the directory

It seems like beets is having an issue running convert --version - what does that output if you run it yourself?

Looks ok to me using stand-a-lone

Just stumbled on this accidently while reinstalling the latest version of ImageMagick while awaiting a fix for the new commands. During the install of the latest version of ImageMagick, there is a wizard option to “Install Legacy Utilities”…I don’t know if this would be considered a solid workaround while the commands are updated. But i felt like it stands to reason that it might.
2022-14-02-12_48_43-VMHost - VMHost - Remote Desktop Connection

update…

yep…

1 Like