beets icon indicating copy to clipboard operation
beets copied to clipboard

crash after resuming import

Open morphodone opened this issue 3 months ago • 1 comments

Problem

Trying to resume an import over ssh. My laptop fell asleep and the import stopped.

Running this command in verbose (-vv) mode:

$ beet -vv import /media/plex/music

Led to this problem:

Traceback (most recent call last):
  File "/usr/bin/beet", line 33, in <module>
    sys.exit(load_entry_point('beets==1.6.0', 'console_scripts', 'beet')())
  File "/usr/share/beets/beets/ui/__init__.py", line 1285, in main
    _raw_main(args)
  File "/usr/share/beets/beets/ui/__init__.py", line 1272, in _raw_main
    subcommand.func(lib, suboptions, subargs)
  File "/usr/share/beets/beets/ui/commands.py", line 973, in import_func
    import_files(lib, paths, query)
  File "/usr/share/beets/beets/ui/commands.py", line 943, in import_files
    session.run()
  File "/usr/share/beets/beets/importer.py", line 340, in run
    pl.run_parallel(QUEUE_SIZE)
  File "/usr/share/beets/beets/util/pipeline.py", line 446, in run_parallel
    raise exc_info[1].with_traceback(exc_info[2])
  File "/usr/share/beets/beets/util/pipeline.py", line 311, in run
    out = self.coro.send(msg)
  File "/usr/share/beets/beets/util/pipeline.py", line 193, in coro
    func(*(args + (task,)))
  File "/usr/share/beets/beets/importer.py", line 1376, in lookup_candidates
    task.lookup_candidates()
  File "/usr/share/beets/beets/importer.py", line 660, in lookup_candidates
    autotag.tag_album(self.items, search_ids=self.search_ids)
  File "/usr/share/beets/beets/autotag/match.py", line 461, in tag_album
    for matched_candidate in hooks.album_candidates(items,
  File "/usr/share/beets/beets/plugins.py", line 573, in decorated
    for v in generator(*args, **kwargs):
  File "/usr/share/beets/beets/autotag/hooks.py", line 629, in album_candidates
    yield from plugins.candidates(items, artist, album, va_likely,
  File "/usr/share/beets/beets/plugins.py", line 384, in candidates
    yield from plugin.candidates(items, artist, album, va_likely,
  File "/usr/share/beets/beets/plugins.py", line 732, in candidates
    results = self._search_api(query_type='album', filters=query_filters)
  File "/usr/share/beets/beetsplug/deezer.py", line 222, in _search_api
    response.raise_for_status()
  File "/usr/lib/python3/dist-packages/requests/models.py", line 943, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 403 Client Error: Forbidden for url: https://api.deezer.com/search/album?q=album%3A%22Now+%28Deluxe%29%22+artist%3A%22Shania+Twain%22

Here's a link to the music files that trigger the bug (if relevant):

Setup

  • OS: Ubuntu 22.04.4 LTS
  • Python version: 3.10.12
  • beets version: 1.6.0
  • Turning off plugins made problem go away (yes/no): yes - deezer, discogs

My configuration (output of beet config) is:

directory: /media/plex/music
library: ~/data/musiclibrary.db
import:
    copy: no
    duplicate_action: keep
match:
    strong_rec_thresh: 0.10
plugins: discogs deezer

deezer:
    source_weight: 0.0

morphodone avatar Mar 20 '24 16:03 morphodone

deezer api is throwing an error because of literal "Now" followed by open and close parans.

seems like an edge case to me on deezers backend

Dr-Blank avatar Mar 22 '24 07:03 Dr-Blank