[TubiTv] Add TubiTvShowIE (#243)

Authored by: Ashish0804
pull/245/head
Ashish 3 years ago committed by GitHub
parent 8ea3f7b909
commit b5be6dd504
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -1340,7 +1340,10 @@ from .trovo import (
from .trunews import TruNewsIE from .trunews import TruNewsIE
from .trutv import TruTVIE from .trutv import TruTVIE
from .tube8 import Tube8IE from .tube8 import Tube8IE
from .tubitv import TubiTvIE from .tubitv import (
TubiTvIE,
TubiTvShowIE,
)
from .tumblr import TumblrIE from .tumblr import TumblrIE
from .tunein import ( from .tunein import (
TuneInClipIE, TuneInClipIE,

@ -7,13 +7,19 @@ from .common import InfoExtractor
from ..utils import ( from ..utils import (
ExtractorError, ExtractorError,
int_or_none, int_or_none,
js_to_json,
sanitized_Request, sanitized_Request,
urlencode_postdata, urlencode_postdata,
) )
class TubiTvIE(InfoExtractor): class TubiTvIE(InfoExtractor):
_VALID_URL = r'https?://(?:www\.)?tubitv\.com/(?:video|movies|tv-shows)/(?P<id>[0-9]+)' _VALID_URL = r'''(?x)
(?:
tubitv:|
https?://(?:www\.)?tubitv\.com/(?:video|movies|tv-shows)/
)
(?P<id>[0-9]+)'''
_LOGIN_URL = 'http://tubitv.com/login' _LOGIN_URL = 'http://tubitv.com/login'
_NETRC_MACHINE = 'tubitv' _NETRC_MACHINE = 'tubitv'
_GEO_COUNTRIES = ['US'] _GEO_COUNTRIES = ['US']
@ -108,3 +114,28 @@ class TubiTvIE(InfoExtractor):
'uploader_id': video_data.get('publisher_id'), 'uploader_id': video_data.get('publisher_id'),
'release_year': int_or_none(video_data.get('year')), 'release_year': int_or_none(video_data.get('year')),
} }
class TubiTvShowIE(InfoExtractor):
_VALID_URL = r'https?://(?:www\.)?tubitv\.com/series/[0-9]+/(?P<show_name>[^/?#]+)'
_TESTS = [{
'url': 'https://tubitv.com/series/3936/the-joy-of-painting-with-bob-ross?start=true',
'playlist_mincount': 390,
'info_dict': {
'id': 'the-joy-of-painting-with-bob-ross',
}
}]
def _entries(self, show_url, show_name):
show_webpage = self._download_webpage(show_url, show_name)
show_json = self._parse_json(self._search_regex(
r"window\.__data\s*=\s*({.+?});\s*</script>",
show_webpage, 'data',), show_name, transform_source=js_to_json)['video']
for episode_id in show_json['fullContentById'].keys():
yield self.url_result(
'tubitv:%s' % episode_id,
ie=TubiTvIE.ie_key(), video_id=episode_id)
def _real_extract(self, url):
show_name = re.match(self._VALID_URL, url).group('show_name')
return self.playlist_result(self._entries(url, show_name), playlist_id=show_name)

Loading…
Cancel
Save