Discogs plugin trouble


#1

I keep running into errors from discogs during import. It works for about 20 albums or so then crashes. I’m running beets in a docker.

Traceback (most recent call last):
File “/usr/lib/python3.6/site-packages/beetsplug/discogs.py”, line 226, in get_master_year
year = result.fetch(‘year’)
File “/usr/lib/python3.6/site-packages/discogs_client/models.py”, line 245, in fetch
self.refresh()
File “/usr/lib/python3.6/site-packages/discogs_client/models.py”, line 211, in refresh
data = self.client._get(self.data[‘resource_url’])
File “/usr/lib/python3.6/site-packages/discogs_client/client.py”, line 123, in _get
return self._request(‘GET’, url)
File “/usr/lib/python3.6/site-packages/discogs_client/client.py”, line 120, in _request
raise HTTPError(body[‘message’], status_code)
discogs_client.exceptions.HTTPError: 429: You are making requests too quickly.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “/usr/bin/beet”, line 11, in
load_entry_point(‘beets==1.4.7’, ‘console_scripts’, ‘beet’)()
File “/usr/lib/python3.6/site-packages/beets/ui/init.py”, line 1256, in main
_raw_main(args)
File “/usr/lib/python3.6/site-packages/beets/ui/init.py”, line 1243, in _raw_main
subcommand.func(lib, suboptions, subargs)
File “/usr/lib/python3.6/site-packages/beets/ui/commands.py”, line 943, in import_func
import_files(lib, paths, query)
File “/usr/lib/python3.6/site-packages/beets/ui/commands.py”, line 913, in import_files
session.run()
File “/usr/lib/python3.6/site-packages/beets/importer.py”, line 329, in run
pl.run_parallel(QUEUE_SIZE)
File “/usr/lib/python3.6/site-packages/beets/util/pipeline.py”, line 445, in run_parallel
six.reraise(exc_info[0], exc_info[1], exc_info[2])
File “/usr/lib/python3.6/site-packages/six.py”, line 693, in reraise
raise value
File “/usr/lib/python3.6/site-packages/beets/util/pipeline.py”, line 312, in run
out = self.coro.send(msg)
File “/usr/lib/python3.6/site-packages/beets/util/pipeline.py”, line 194, in coro
func(*(args + (task,)))
File “/usr/lib/python3.6/site-packages/beets/importer.py”, line 1351, in lookup_candidates
task.lookup_candidates()
File “/usr/lib/python3.6/site-packages/beets/importer.py”, line 641, in lookup_candidates
autotag.tag_album(self.items, search_ids=self.search_ids)
File “/usr/lib/python3.6/site-packages/beets/autotag/match.py”, line 460, in tag_album
va_likely):
File “/usr/lib/python3.6/site-packages/beets/plugins.py”, line 561, in decorated
for v in generator(*args, **kwargs):
File “/usr/lib/python3.6/site-packages/beets/autotag/hooks.py”, line 610, in album_candidates
for candidate in plugins.candidates(items, artist, album, va_likely):
File “/usr/lib/python3.6/site-packages/beets/plugins.py”, line 371, in candidates
for candidate in plugin.candidates(items, artist, album, va_likely):
File “/usr/lib/python3.6/site-packages/beetsplug/discogs.py”, line 151, in candidates
return self.get_albums(query)
File “/usr/lib/python3.6/site-packages/beetsplug/discogs.py”, line 216, in get_albums
return [album for album in map(self.get_album_info, releases[:5])
File “/usr/lib/python3.6/site-packages/beetsplug/discogs.py”, line 216, in
return [album for album in map(self.get_album_info, releases[:5])
File “/usr/lib/python3.6/site-packages/beetsplug/discogs.py”, line 303, in get_album_info
original_year = self.get_master_year(master_id) if master_id else year
File “/usr/lib/python3.6/site-packages/beetsplug/discogs.py”, line 230, in get_master_year
self._log.debug(u’API Error: {0} (query: {1})’, e, result._uri)
AttributeError: ‘Master’ object has no attribute ‘_uri’


#2

It looks like this should be fixed in master thanks to #3138 (original issue #3081), you could try running the latest source version of beets or wait until the next release (although I am unsure of when that is).