[ParamountPlusSeries] Support multiple pages (#3026)

Authored by: dodrian
This commit is contained in:
Dorian Westacott 2022-03-16 18:54:20 -05:00 committed by GitHub
parent 25791435b7
commit ec47c12f69
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

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
@ -128,11 +129,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(
f'https://www.paramountplus.com/shows/{show_name}/xhr/episodes/page/{page}/size/50/xs/0/season/0', 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'],