youtube-dl

Another place where youtube-dl lives on
git clone git://git.oshgnacknak.de/youtube-dl.git
Log | Files | Refs | README | LICENSE

commit 2a48e6f01a20545cd117cacb78463dba87d97b21
parent 203a3c0e6a589627f9b0f0c4c6ec56e24c27272c
Author: Sergey M․ <dstftw@gmail.com>
Date:   Wed,  4 May 2016 22:45:01 +0600

[yandexmusic:playlist] Respect track order for long (>150) playlists

Diffstat:
Myoutube_dl/extractor/yandexmusic.py | 10+++++++---
1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/youtube_dl/extractor/yandexmusic.py b/youtube_dl/extractor/yandexmusic.py @@ -222,13 +222,17 @@ class YandexMusicPlaylistIE(YandexMusicPlaylistBaseIE): 'overembed': 'false', })['playlist'] - tracks, track_ids = playlist['tracks'], playlist['trackIds'] + tracks, track_ids = playlist['tracks'], map(compat_str, playlist['trackIds']) # tracks dictionary shipped with playlist.jsx API is limited to 150 tracks, # missing tracks should be retrieved manually. if len(tracks) < len(track_ids): - present_track_ids = set([compat_str(track['id']) for track in tracks if track.get('id')]) - missing_track_ids = set(map(compat_str, track_ids)) - set(present_track_ids) + present_track_ids = set([ + compat_str(track['id']) + for track in tracks if track.get('id')]) + missing_track_ids = [ + track_id for track_id in track_ids + if track_id not in present_track_ids] missing_tracks = self._download_json( 'https://music.yandex.%s/handlers/track-entries.jsx' % tld, playlist_id, 'Downloading missing tracks JSON',