beetbox / beets

music library manager and MusicBrainz tagger
http://beets.io/
MIT License
12.78k stars 1.82k forks source link

"ValueError: Extra data: line 1 column 5 - line 2 column 1 (char 4 - 25)" with Discogs plugin #938

Closed wasamasa closed 10 years ago

wasamasa commented 10 years ago

I'm using Archlinux and beets 1.3.7-1 from the community repository with python2-discogs-client 1.1.1-1 for Discogs support. Tried importing music today which failed with the following backtrace:

Traceback (most recent call last):
  File "/usr/bin/beet", line 9, in <module>
    load_entry_point('beets==1.3.7', 'console_scripts', 'beet')()
  File "/usr/lib/python2.7/site-packages/beets/ui/__init__.py", line 966, in main
    _raw_main(args)
  File "/usr/lib/python2.7/site-packages/beets/ui/__init__.py", line 957, in _raw_main
    subcommand.func(lib, suboptions, subargs)
  File "/usr/lib/python2.7/site-packages/beets/ui/commands.py", line 884, in import_func
    import_files(lib, paths, query)
  File "/usr/lib/python2.7/site-packages/beets/ui/commands.py", line 856, in import_files
    session.run()
  File "/usr/lib/python2.7/site-packages/beets/importer.py", line 293, in run
    pl.run_sequential()
  File "/usr/lib/python2.7/site-packages/beets/util/pipeline.py", line 376, in run_sequential
    list(self.pull())
  File "/usr/lib/python2.7/site-packages/beets/util/pipeline.py", line 453, in pull
    out = coro.send(msg)
  File "/usr/lib/python2.7/site-packages/beets/util/pipeline.py", line 181, in coro
    func(*(args + (task,)))
  File "/usr/lib/python2.7/site-packages/beets/importer.py", line 1000, in lookup_candidates
    task.lookup_candidates()
  File "/usr/lib/python2.7/site-packages/beets/importer.py", line 508, in lookup_candidates
    autotag.tag_album(self.items)
  File "/usr/lib/python2.7/site-packages/beets/autotag/match.py", line 448, in tag_album
    search_album, va_likely)
  File "/usr/lib/python2.7/site-packages/beets/autotag/hooks.py", line 554, in album_candidates
    out.extend(plugins.candidates(items, artist, album, va_likely))
  File "/usr/lib/python2.7/site-packages/beets/plugins.py", line 275, in candidates
    out.extend(plugin.candidates(items, artist, album, va_likely))
  File "/usr/lib/python2.7/site-packages/beetsplug/discogs.py", line 63, in candidates
    return self.get_albums(query)
  File "/usr/lib/python2.7/site-packages/beetsplug/discogs.py", line 104, in get_albums
    for result in Search(query).results():
  File "/usr/lib/python2.7/site-packages/discogs_client.py", line 292, in results
    if not self.data:
  File "/usr/lib/python2.7/site-packages/discogs_client.py", line 53, in data
    release_json = json.loads(self._response.content)
  File "/usr/lib/python2.7/json/__init__.py", line 338, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python2.7/json/decoder.py", line 369, in decode
    raise ValueError(errmsg("Extra data", s, end, len(s)))
ValueError: Extra data: line 1 column 5 - line 2 column 1 (char 4 - 25)

Bisection of my config reveals the issue goes away if I just deactivate the Discogs plugin. Any ideas what exactly might be the culprit?

edit: Forgot to attach my (mostly unchanged) config:

directory:      ~/music/albums
library:        ~/music/library.blb
plugins:        scrub zero discogs
original_date:  yes
threaded:       no
paths:
    default:    $albumartist - $album ($year)/$track - $title
    comp:       $albumartist - $album ($year)/$track - $artist - $title
    singleton:  Singletons/$artist - $title
import:
    detail:     yes
    timid:      yes
    move:       yes
zero:
    fields:     artist_sort artist_credit albumartist_sort albumartist_credit grouping month day lyrics comments bpm comp mb_trackid mb_albumid mb_artistid mb_albumartistid albumtype label acoustid_fingerprint acoustid_id mb_releasegroupid asin catalognum script language country albumstatus media albumdisambig disctitle encoder original_year original_month original_day length bitrate format samplerate bitdepth channels
Kraymer commented 10 years ago

There has been recent commits posterior to the 1.3.7 release related to a Discogs API change. So you can wait for next version before reactivate the plugin, or grab master branch.

wasamasa commented 10 years ago

Thanks, tried again with the master branch and Virtualenv and it works as expected.