1
mirror of https://github.com/yt-dlp/yt-dlp synced 2024-11-27 22:53:41 +01:00

[CBS] Add ParamountPlusSeriesIE (#603)

Authored by: Ashish0804
This commit is contained in:
Ashish 2021-08-02 02:58:47 +05:30 committed by GitHub
parent e7e94f2a5c
commit e8384376c0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 41 additions and 1 deletions

View File

@ -1,5 +1,6 @@
from __future__ import unicode_literals
from .common import InfoExtractor
from .theplatform import ThePlatformFeedIE
from ..utils import (
ExtractorError,
@ -122,3 +123,39 @@ class CBSIE(CBSBaseIE):
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)

View File

@ -202,7 +202,10 @@ from .cbc import (
CBCWatchIE,
CBCOlympicsIE,
)
from .cbs import CBSIE
from .cbs import (
CBSIE,
ParamountPlusSeriesIE,
)
from .cbslocal import (
CBSLocalIE,
CBSLocalArticleIE,