aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpukkandan <pukkandan.ytdlp@gmail.com>2022-01-23 23:25:17 +0530
committerpukkandan <pukkandan.ytdlp@gmail.com>2022-01-24 01:07:14 +0530
commitd37707bda466282b66ce381cbfd734f899f9e06e (patch)
treed29f613864230d8fdb9414312cffeaabdec20866
parentf40ee5e9a0014b308cc83d8d3a0e24a123239eb4 (diff)
downloadhypervideo-pre-d37707bda466282b66ce381cbfd734f899f9e06e.tar.lz
hypervideo-pre-d37707bda466282b66ce381cbfd734f899f9e06e.tar.xz
hypervideo-pre-d37707bda466282b66ce381cbfd734f899f9e06e.zip
Fix/improve `InAdvancePagedList`
-rw-r--r--yt_dlp/YoutubeDL.py4
-rw-r--r--yt_dlp/utils.py3
2 files changed, 5 insertions, 2 deletions
diff --git a/yt_dlp/YoutubeDL.py b/yt_dlp/YoutubeDL.py
index baf54cd2e..d3bcd84a7 100644
--- a/yt_dlp/YoutubeDL.py
+++ b/yt_dlp/YoutubeDL.py
@@ -72,6 +72,7 @@ from .utils import (
GeoRestrictedError,
get_domain,
HEADRequest,
+ InAdvancePagedList,
int_or_none,
iri_to_uri,
ISO3166Utils,
@@ -1662,6 +1663,9 @@ class YoutubeDL(object):
msg = 'Downloading %d videos'
if not isinstance(ie_entries, (PagedList, LazyList)):
ie_entries = LazyList(ie_entries)
+ elif isinstance(ie_entries, InAdvancePagedList):
+ if ie_entries._pagesize == 1:
+ playlist_count = ie_entries._pagecount
def get_entry(i):
return YoutubeDL.__handle_extraction_exceptions(
diff --git a/yt_dlp/utils.py b/yt_dlp/utils.py
index 55bd67ea2..2b33e1ec9 100644
--- a/yt_dlp/utils.py
+++ b/yt_dlp/utils.py
@@ -2845,8 +2845,7 @@ class InAdvancePagedList(PagedList):
def _getslice(self, start, end):
start_page = start // self._pagesize
- end_page = (
- self._pagecount if end is None else (end // self._pagesize + 1))
+ end_page = self._pagecount if end is None else min(self._pagecount, end // self._pagesize + 1)
skip_elems = start - start_page * self._pagesize
only_more = None if end is None else end - start
for pagenum in range(start_page, end_page):