1
0
mirror of https://codeberg.org/polarisfm/youtube-dl synced 2025-02-17 01:17:54 +01:00

Fix breaks to PagedList and Generator Playlists

This commit is contained in:
ALurker 2018-08-26 12:37:40 -05:00
parent f4ca81416b
commit db3925b132

View File

@ -938,10 +938,7 @@ class YoutubeDL(object):
'[%s] playlist %s: Downloading %d videos' % '[%s] playlist %s: Downloading %d videos' %
(ie_result['extractor'], playlist, num_entries)) (ie_result['extractor'], playlist, num_entries))
if self.params.get('playlistreverse', False): def build_entries_list(ie_entries):
ie_entries = ie_entries[::-1]
if isinstance(ie_entries, list):
n_all_entries = len(ie_entries) n_all_entries = len(ie_entries)
if playlistitems: if playlistitems:
entries = make_playlistitems_entries(ie_entries) entries = make_playlistitems_entries(ie_entries)
@ -951,6 +948,12 @@ class YoutubeDL(object):
self.to_screen( self.to_screen(
'[%s] playlist %s: Collected %d video ids (downloading %d of them)' % '[%s] playlist %s: Collected %d video ids (downloading %d of them)' %
(ie_result['extractor'], playlist, n_all_entries, n_entries)) (ie_result['extractor'], playlist, n_all_entries, n_entries))
return n_entries, entries
if isinstance(ie_entries, list):
if self.params.get('playlistreverse', False):
ie_entries = ie_entries[::-1]
n_entries, entries = build_entries_list(ie_entries)
elif isinstance(ie_entries, PagedList): elif isinstance(ie_entries, PagedList):
if playlistitems: if playlistitems:
entries = [] entries = []
@ -958,12 +961,21 @@ class YoutubeDL(object):
entries.extend(ie_entries.getslice( entries.extend(ie_entries.getslice(
item - 1, item item - 1, item
)) ))
else:
if self.params.get('playlistreverse', False):
entries = ie_entries.getslice()
entries = entries[::-1][playliststart:playlistend]
else: else:
entries = ie_entries.getslice( entries = ie_entries.getslice(
playliststart, playlistend) playliststart, playlistend)
n_entries = len(entries) n_entries = len(entries)
report_download(n_entries) report_download(n_entries)
else: # iterable else: # iterable
if self.params.get('playlistreverse', False):
ie_entries = list(ie_entries)[::-1]
n_entries, entries = build_entries_list(ie_entries)
else:
if playlistitems: if playlistitems:
entries = make_playlistitems_entries(list(itertools.islice( entries = make_playlistitems_entries(list(itertools.islice(
ie_entries, 0, max(playlistitems)))) ie_entries, 0, max(playlistitems))))