from __future__ import unicode_literals
+from .common import InfoExtractor
from .theplatform import ThePlatformFeedIE
from ..utils import (
ExtractorError,
def _real_extract(self, url):
content_id = self._match_id(url)
return self._extract_video_info(content_id)
+
+
+class ParamountPlusSeriesIE(InfoExtractor):
+ _VALID_URL = r'https?://(?:www\.)?paramountplus\.com/shows/(?P<id>[a-zA-Z0-9-_]+)/?(?:[#?]|$)'
+ _TESTS = [{
+ 'url': 'https://www.paramountplus.com/shows/drake-josh',
+ 'playlist_mincount': 50,
+ 'info_dict': {
+ 'id': 'drake-josh',
+ }
+ }, {
+ 'url': 'https://www.paramountplus.com/shows/hawaii_five_0/',
+ 'playlist_mincount': 240,
+ 'info_dict': {
+ 'id': 'hawaii_five_0',
+ }
+ }, {
+ 'url': 'https://www.paramountplus.com/shows/spongebob-squarepants/',
+ 'playlist_mincount': 248,
+ 'info_dict': {
+ '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):
+ show_json = self._download_json(self._API_URL.format(show_name), video_id=show_name)
+ if show_json.get('success'):
+ for episode in show_json['result']['data']:
+ yield self.url_result(
+ 'https://www.paramountplus.com%s' % episode['url'],
+ ie=CBSIE.ie_key(), video_id=episode['content_id'])
+
+ def _real_extract(self, url):
+ show_name = self._match_id(url)
+ return self.playlist_result(self._entries(show_name), playlist_id=show_name)