[yandexmusic] Capture and output API errors
This commit is contained in:
parent
9d303bf29b
commit
ae7d31af1c
1 changed files with 16 additions and 2 deletions
|
@ -10,13 +10,27 @@ from ..compat import (
|
||||||
compat_urllib_parse,
|
compat_urllib_parse,
|
||||||
)
|
)
|
||||||
from ..utils import (
|
from ..utils import (
|
||||||
|
ExtractorError,
|
||||||
int_or_none,
|
int_or_none,
|
||||||
float_or_none,
|
float_or_none,
|
||||||
sanitized_Request,
|
sanitized_Request,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class YandexMusicTrackIE(InfoExtractor):
|
class YandexMusicBaseIE(InfoExtractor):
|
||||||
|
@staticmethod
|
||||||
|
def _handle_error(response):
|
||||||
|
error = response.get('error')
|
||||||
|
if error:
|
||||||
|
raise ExtractorError(error, expected=True)
|
||||||
|
|
||||||
|
def _download_json(self, *args, **kwargs):
|
||||||
|
response = super(YandexMusicBaseIE, self)._download_json(*args, **kwargs)
|
||||||
|
self._handle_error(response)
|
||||||
|
return response
|
||||||
|
|
||||||
|
|
||||||
|
class YandexMusicTrackIE(YandexMusicBaseIE):
|
||||||
IE_NAME = 'yandexmusic:track'
|
IE_NAME = 'yandexmusic:track'
|
||||||
IE_DESC = 'Яндекс.Музыка - Трек'
|
IE_DESC = 'Яндекс.Музыка - Трек'
|
||||||
_VALID_URL = r'https?://music\.yandex\.(?:ru|kz|ua|by)/album/(?P<album_id>\d+)/track/(?P<id>\d+)'
|
_VALID_URL = r'https?://music\.yandex\.(?:ru|kz|ua|by)/album/(?P<album_id>\d+)/track/(?P<id>\d+)'
|
||||||
|
@ -73,7 +87,7 @@ class YandexMusicTrackIE(InfoExtractor):
|
||||||
return self._get_track_info(track)
|
return self._get_track_info(track)
|
||||||
|
|
||||||
|
|
||||||
class YandexMusicPlaylistBaseIE(InfoExtractor):
|
class YandexMusicPlaylistBaseIE(YandexMusicBaseIE):
|
||||||
def _build_playlist(self, tracks):
|
def _build_playlist(self, tracks):
|
||||||
return [
|
return [
|
||||||
self.url_result(
|
self.url_result(
|
||||||
|
|
Loading…
Reference in a new issue