Support multiple pages

From https://github.com/yt-dlp/yt-dlp/pull/3026

Authored by: dodrian
This commit is contained in:
Dorian Westacott 2022-03-16 18:54:20 -05:00 committed by dirkf
parent 3f20988995
commit 2e19aac492

View File

@ -1,4 +1,5 @@
from __future__ import unicode_literals from __future__ import unicode_literals
import itertools
from .common import InfoExtractor from .common import InfoExtractor
from .cbs import CBSBaseIE from .cbs import CBSBaseIE
@ -130,11 +131,13 @@ class ParamountPlusSeriesIE(InfoExtractor):
'id': 'spongebob-squarepants', 'id': 'spongebob-squarepants',
} }
}] }]
_API_URL = 'https://www.paramountplus.com/shows/{}/xhr/episodes/page/0/size/100000/xs/0/season/0/'
def _entries(self, show_name): def _entries(self, show_name):
show_json = self._download_json(self._API_URL.format(show_name), video_id=show_name) for page in itertools.count():
if show_json.get('success'): show_json = self._download_json(
'https://www.paramountplus.com/shows/{0}/xhr/episodes/page/{1}/size/50/xs/0/season/0'.format(show_name, page), show_name)
if not show_json.get('success'):
return
for episode in show_json['result']['data']: for episode in show_json['result']['data']:
yield self.url_result( yield self.url_result(
'https://www.paramountplus.com%s' % episode['url'], 'https://www.paramountplus.com%s' % episode['url'],