|
|
@ -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( |
|
|
|