pull/13840/merge
unixty 22 hours ago committed by GitHub
commit bc29e96aed
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -309,7 +309,7 @@ class YandexMusicAlbumIE(YandexMusicPlaylistBaseIE):
class YandexMusicPlaylistIE(YandexMusicPlaylistBaseIE): class YandexMusicPlaylistIE(YandexMusicPlaylistBaseIE):
IE_NAME = 'yandexmusic:playlist' IE_NAME = 'yandexmusic:playlist'
IE_DESC = 'Яндекс.Музыка - Плейлист' IE_DESC = 'Яндекс.Музыка - Плейлист'
_VALID_URL = rf'{YandexMusicBaseIE._VALID_URL_BASE}/users/(?P<user>[^/]+)/playlists/(?P<id>\d+)' _VALID_URL = rf'{YandexMusicBaseIE._VALID_URL_BASE}/(?:users/(?P<user>[^/]+)/playlists/(?P<id>\d+)|playlists/(?P<uuid>[0-9a-z-]+))'
_TESTS = [{ _TESTS = [{
'url': 'http://music.yandex.ru/users/music.partners/playlists/1245', 'url': 'http://music.yandex.ru/users/music.partners/playlists/1245',
@ -320,6 +320,9 @@ class YandexMusicPlaylistIE(YandexMusicPlaylistBaseIE):
}, },
'playlist_count': 5, 'playlist_count': 5,
# 'skip': 'Travis CI servers blocked by YandexMusic', # 'skip': 'Travis CI servers blocked by YandexMusic',
}, {
'url': 'https://music.yandex.ru/playlists/2042ead9-189e-094a-b8d9-d6c8cd0ba35c',
'only_matching': True,
}, { }, {
'url': 'https://music.yandex.ru/users/ya.playlist/playlists/1036', 'url': 'https://music.yandex.ru/users/ya.playlist/playlists/1036',
'only_matching': True, 'only_matching': True,
@ -337,10 +340,24 @@ class YandexMusicPlaylistIE(YandexMusicPlaylistBaseIE):
def _real_extract(self, url): def _real_extract(self, url):
mobj = self._match_valid_url(url) mobj = self._match_valid_url(url)
print(mobj)
tld = mobj.group('tld') tld = mobj.group('tld')
uuid = mobj.group('uuid')
print(uuid)
if uuid:
playlist_id = uuid
user = None
playlist = self._call_api(
'playlist-by-uid', tld, url, uuid, 'Downloading playlist JSON', {
'uid': uuid,
'light': 'true',
'lang': tld,
'external-domain': f'music.yandex.{tld}',
})['playlist']
else:
user = mobj.group('user') user = mobj.group('user')
playlist_id = mobj.group('id') playlist_id = mobj.group('id')
playlist = self._call_api( playlist = self._call_api(
'playlist', tld, url, playlist_id, 'Downloading playlist JSON', { 'playlist', tld, url, playlist_id, 'Downloading playlist JSON', {
'owner': user, 'owner': user,

Loading…
Cancel
Save