Skip to content
This repository has been archived by the owner on Jun 21, 2021. It is now read-only.

Commit

Permalink
[TubiTv] Add TubiTvShowIE (blackjack4494#243)
Browse files Browse the repository at this point in the history
Authored by: Ashish0804
  • Loading branch information
Ashish0804 authored Apr 14, 2021
1 parent 8ea3f7b commit b5be6dd
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 2 deletions.
5 changes: 4 additions & 1 deletion yt_dlp/extractor/extractors.py
Original file line number Diff line number Diff line change
Expand Up @@ -1340,7 +1340,10 @@
from .trunews import TruNewsIE
from .trutv import TruTVIE
from .tube8 import Tube8IE
from .tubitv import TubiTvIE
from .tubitv import (
TubiTvIE,
TubiTvShowIE,
)
from .tumblr import TumblrIE
from .tunein import (
TuneInClipIE,
Expand Down
33 changes: 32 additions & 1 deletion yt_dlp/extractor/tubitv.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,19 @@
from ..utils import (
ExtractorError,
int_or_none,
js_to_json,
sanitized_Request,
urlencode_postdata,
)


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'
_NETRC_MACHINE = 'tubitv'
_GEO_COUNTRIES = ['US']
Expand Down Expand Up @@ -108,3 +114,28 @@ def _real_extract(self, url):
'uploader_id': video_data.get('publisher_id'),
'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)

0 comments on commit b5be6dd

Please sign in to comment.