diff options
author | Sergey M․ <dstftw@gmail.com> | 2016-03-04 21:32:54 +0600 |
---|---|---|
committer | Sergey M․ <dstftw@gmail.com> | 2016-03-04 21:32:54 +0600 |
commit | ae7d31af1cd1b9c2f1cae86acb8a4156556dc748 (patch) | |
tree | d225cc71c9602649649b367a46798d74bfbb28e0 | |
parent | 9d303bf29b13632489ab563b0b8cbdeb53ea2899 (diff) |
[yandexmusic] Capture and output API errors
-rw-r--r-- | youtube_dl/extractor/yandexmusic.py | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/youtube_dl/extractor/yandexmusic.py b/youtube_dl/extractor/yandexmusic.py index d3cc1a29f..e699e663f 100644 --- a/youtube_dl/extractor/yandexmusic.py +++ b/youtube_dl/extractor/yandexmusic.py @@ -10,13 +10,27 @@ from ..compat import ( compat_urllib_parse, ) from ..utils import ( + ExtractorError, int_or_none, float_or_none, 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_DESC = 'Яндекс.Музыка - Трек' _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) -class YandexMusicPlaylistBaseIE(InfoExtractor): +class YandexMusicPlaylistBaseIE(YandexMusicBaseIE): def _build_playlist(self, tracks): return [ self.url_result( |