mopidy / mopidy-soundcloud

Mopidy extension for playing music from SoundCloud
https://mopidy.com/ext/soundcloud/
MIT License
185 stars 59 forks source link

SoundCloudBackend caused an exception #95

Closed timdah closed 6 years ago

timdah commented 7 years ago

I get this error whenever i try to play a track.

ERROR    SoundCloudBackend backend caused an exception.
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/mopidy/core/playback.py", line 423, in _change
    if not backend.playback.change_track(pending_tl_track.track).get():
  File "/usr/lib/python2.7/dist-packages/pykka/threading.py", line 52, in get
    compat.reraise(*self._data['exc_info'])
  File "/usr/lib/python2.7/dist-packages/pykka/compat.py", line 12, in reraise
    exec('raise tp, value, tb')
  File "/usr/lib/python2.7/dist-packages/pykka/actor.py", line 201, in _actor_loop
    response = self._handle_receive(message)
  File "/usr/lib/python2.7/dist-packages/pykka/actor.py", line 295, in _handle_receive
    return callee(*message['args'], **message['kwargs'])
  File "/usr/lib/python2.7/dist-packages/mopidy/backend.py", line 245, in change_track
    uri = self.translate_uri(track.uri)
  File "/usr/lib/python2.7/dist-packages/mopidy_soundcloud/actor.py", line 35, in translate_uri
    return track.uri
AttributeError: 'list' object has no attribute 'uri'
xsteadfastx commented 7 years ago

mine stopped working too

vglfr commented 7 years ago

Same. Getting 429 responce to raw request (looks like exceeded rate limit, no idea why):

{"errors":[{"meta":{"rate_limit":{"bucket":"by-client","max_nr_of_requests":15000,"time_window":"PT24H","name":"plays"},"remaining_requests":0,"reset_time":"2017/08/09 03:27:55 +0000"}}]}

tiaitsch85 commented 7 years ago

I have the same error as en00x

magcode commented 7 years ago

I also see an error

2017-08-11 14:10:34,662 ERROR [1218:Core-10] mopidy.core.library: SoundCloudBackend backend caused an exception.
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/mopidy/core/library.py", line 19, in _backend_error_handling
    yield
  File "/usr/local/lib/python2.7/dist-packages/mopidy/core/library.py", line 112, in _browse
    result = backend.library.browse(uri).get()
  File "/usr/lib/python2.7/dist-packages/pykka/future.py", line 299, in get
    exec('raise exc_info[0], exc_info[1], exc_info[2]')
  File "/usr/lib/python2.7/dist-packages/pykka/actor.py", line 200, in _actor_loop
    response = self._handle_receive(message)
  File "/usr/lib/python2.7/dist-packages/pykka/actor.py", line 294, in _handle_receive
    return callee(*message['args'], **message['kwargs'])
  File "/usr/lib/python2.7/dist-packages/mopidy_soundcloud/library.py", line 147, in browse
    return self.list_user_follows()
  File "/usr/lib/python2.7/dist-packages/mopidy_soundcloud/library.py", line 89, in list_user_follows
    for (name, user_id) in self.backend.remote.get_followings():
  File "/usr/lib/python2.7/dist-packages/mopidy_soundcloud/soundcloud.py", line 148, in get_followings
    name = playlist.get('username')
AttributeError: 'unicode' object has no attribute 'get'
andresgabrielrc commented 7 years ago

I got this error ERROR SoundCloudBackend backend caused an exception. Traceback (most recent call last): File "/usr/lib/python2.7/site-packages/mopidy/core/library.py", line 19, in _backend_error_handling yield File "/usr/lib/python2.7/site-packages/mopidy/core/library.py", line 112, in _browse result = backend.library.browse(uri).get() File "/usr/lib/python2.7/site-packages/pykka/future.py", line 299, in get exec('raise exc_info[0], exc_info[1], exc_info[2]') File "/usr/lib/python2.7/site-packages/pykka/actor.py", line 200, in _actor_loop response = self._handle_receive(message) File "/usr/lib/python2.7/site-packages/pykka/actor.py", line 294, in _handle_receive return callee(*message['args'], **message['kwargs']) File "/usr/lib/python2.7/site-packages/mopidy_soundcloud/library.py", line 163, in browse return self.list_groups() File "/usr/lib/python2.7/site-packages/mopidy_soundcloud/library.py", line 108, in list_groups for group in self.backend.remote.get_groups(): File "/usr/lib/python2.7/site-packages/mopidy_soundcloud/soundcloud.py", line 139, in get_groups return self._get('me/groups.json') File "/usr/lib/python2.7/site-packages/mopidy_soundcloud/soundcloud.py", line 235, in _get res.raise_for_status() File "/usr/lib/python2.7/site-packages/requests/models.py", line 935, in raise_for_status raise HTTPError(http_error_msg, response=self) HTTPError: 404 Client Error: Not Found for url: https://api.soundcloud.com/me/groups.json?client_id=93e33e327fd8a9b77becd179652272e2

clearnote01 commented 6 years ago

I have this problem:

ERROR SoundCloudBackend backend caused an exception. Traceback (most recent call last): File "/usr/lib/python2.7/site-packages/mopidy/core/library.py", line 19, in _backend_error_handling yield File "/usr/lib/python2.7/site-packages/mopidy/core/library.py", line 112, in _browse result = backend.library.browse(uri).get() File "/usr/lib/python2.7/site-packages/pykka/future.py", line 299, in get exec('raise exc_info[0], exc_info[1], exc_info[2]') File "/usr/lib/python2.7/site-packages/pykka/actor.py", line 200, in _actor_loop response = self._handle_receive(message) File "/usr/lib/python2.7/site-packages/pykka/actor.py", line 294, in _handle_receive return callee(*message['args'], **message['kwargs']) File "/usr/lib/python2.7/site-packages/mopidy_soundcloud/library.py", line 155, in browse return self.list_explore() File "/usr/lib/python2.7/site-packages/mopidy_soundcloud/library.py", line 97, in list_explore for eid, name in enumerate(self.backend.remote.get_explore()): File "/usr/lib/python2.7/site-packages/mopidy_soundcloud/soundcloud.py", line 116, in get_explore explore = self.get_explore_categories() File "/usr/lib/python2.7/site-packages/mopidy_soundcloud/soundcloud.py", line 57, in _memoized value = self.func(*args) File "/usr/lib/python2.7/site-packages/mopidy_soundcloud/soundcloud.py", line 113, in get_explore_categories return self._get('explore/categories', 'api-v2').get('music') File "/usr/lib/python2.7/site-packages/mopidy_soundcloud/soundcloud.py", line 235, in _get res.raise_for_status() File "/usr/lib/python2.7/site-packages/requests/models.py", line 935, in raise_for_status raise HTTPError(http_error_msg, response=self) HTTPError: 404 Client Error: Not Found for url: https://api-v2.soundcloud.com/explore/categories?client_id=93e33e327fd8a9b77becd179652272e2

__

psamim commented 6 years ago

I have the same error too

ERROR    SoundCloudBackend backend caused an exception.
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/mopidy/core/library.py", line 19, in _backend_error_handling
    yield
  File "/usr/lib/python2.7/site-packages/mopidy/core/library.py", line 112, in _browse
    result = backend.library.browse(uri).get()
  File "/usr/lib/python2.7/site-packages/pykka/future.py", line 299, in get
    exec('raise exc_info[0], exc_info[1], exc_info[2]')
  File "/usr/lib/python2.7/site-packages/pykka/actor.py", line 200, in _actor_loop
    response = self._handle_receive(message)
  File "/usr/lib/python2.7/site-packages/pykka/actor.py", line 294, in _handle_receive
    return callee(*message['args'], **message['kwargs'])
  File "/usr/lib/python2.7/site-packages/mopidy_soundcloud/library.py", line 147, in browse
    return self.list_user_follows()
  File "/usr/lib/python2.7/site-packages/mopidy_soundcloud/library.py", line 89, in list_user_follows
    for (name, user_id) in self.backend.remote.get_followings():
  File "/usr/lib/python2.7/site-packages/mopidy_soundcloud/soundcloud.py", line 148, in get_followings
    name = playlist.get('username')
AttributeError: 'unicode' object has no attribute 'get'
ERROR    SoundCloudBackend backend caused an exception.
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/mopidy/core/library.py", line 19, in _backend_error_handling
    yield
  File "/usr/lib/python2.7/site-packages/mopidy/core/library.py", line 112, in _browse
    result = backend.library.browse(uri).get()
  File "/usr/lib/python2.7/site-packages/pykka/future.py", line 299, in get
    exec('raise exc_info[0], exc_info[1], exc_info[2]')
  File "/usr/lib/python2.7/site-packages/pykka/actor.py", line 200, in _actor_loop
    response = self._handle_receive(message)
  File "/usr/lib/python2.7/site-packages/pykka/actor.py", line 294, in _handle_receive
    return callee(*message['args'], **message['kwargs'])
  File "/usr/lib/python2.7/site-packages/mopidy_soundcloud/library.py", line 155, in browse
    return self.list_explore()
  File "/usr/lib/python2.7/site-packages/mopidy_soundcloud/library.py", line 97, in list_explore
    for eid, name in enumerate(self.backend.remote.get_explore()):
  File "/usr/lib/python2.7/site-packages/mopidy_soundcloud/soundcloud.py", line 116, in get_explore
    explore = self.get_explore_categories()
  File "/usr/lib/python2.7/site-packages/mopidy_soundcloud/soundcloud.py", line 57, in _memoized
    value = self.func(*args)
  File "/usr/lib/python2.7/site-packages/mopidy_soundcloud/soundcloud.py", line 113, in get_explore_categories
    return self._get('explore/categories', 'api-v2').get('music')
  File "/usr/lib/python2.7/site-packages/mopidy_soundcloud/soundcloud.py", line 235, in _get
    res.raise_for_status()
  File "/usr/lib/python2.7/site-packages/requests/models.py", line 935, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
HTTPError: 404 Client Error: Not Found for url: https://api-v2.soundcloud.com/explore/categories?client_id=93e33e327fd8a9b77becd179652272e2
reynico commented 6 years ago

Same issue

2018-01-15 16:32:04,951 ERROR [12000:Core-9] mopidy.core.playback: SoundCloudBackend backend caused an exception. Traceback (most recent call last): File "/usr/lib/python2.7/site-packages/mopidy/core/playback.py", line 423, in _change if not backend.playback.change_track(pending_tl_track.track).get(): File "/usr/lib/python2.7/site-packages/pykka/threading.py", line 52, in get compat.reraise(self._data['exc_info']) File "/usr/lib/python2.7/site-packages/pykka/compat.py", line 12, in reraise exec('raise tp, value, tb') File "/usr/lib/python2.7/site-packages/pykka/actor.py", line 201, in _actor_loop response = self._handle_receive(message) File "/usr/lib/python2.7/site-packages/pykka/actor.py", line 295, in _handle_receive return callee(message['args'], **message['kwargs']) File "/usr/lib/python2.7/site-packages/mopidy/backend.py", line 245, in change_track uri = self.translate_uri(track.uri) File "/usr/lib/python2.7/site-packages/mopidy_soundcloud/actor.py", line 35, in translate_uri return track.uri AttributeError: 'list' object has no attribute 'uri'

CeruleanJaguar commented 6 years ago

Soundcloud groups were depreciated, see: https://developers.soundcloud.com/blog/removal-of-groups-endpoints, and the api-v2.soundcloud.com used by explore was an experimental, internal, undoccumented api that was not intended for developers to build on top of and is against the soundcloud developer terms of use, see https://stackoverflow.com/questions/37221510/is-soundcloud-api-v2-being-deprecated. The version that exists on pypi (release v2.0.2) still contains these APIs in mopidy_soundcloud/library.py and soundcloud.py in the same location. They were removed in https://github.com/mopidy/mopidy-soundcloud/commit/faeb6710980f12b50b03bf78c1878be751b8e21a but this hasn't been pushed to pypi annoyingly.

kingosticks commented 6 years ago

The error handling is improved in #100, I believe this is now fixed. Please re-open if this persists in the next release.