aboutsummaryrefslogtreecommitdiffstats
path: root/hypervideo_dl/extractor/tubitv.py
diff options
context:
space:
mode:
Diffstat (limited to 'hypervideo_dl/extractor/tubitv.py')
-rw-r--r--hypervideo_dl/extractor/tubitv.py20
1 files changed, 11 insertions, 9 deletions
diff --git a/hypervideo_dl/extractor/tubitv.py b/hypervideo_dl/extractor/tubitv.py
index 2e9b325..31feb9a 100644
--- a/hypervideo_dl/extractor/tubitv.py
+++ b/hypervideo_dl/extractor/tubitv.py
@@ -54,10 +54,7 @@ class TubiTvIE(InfoExtractor):
},
}]
- def _login(self):
- username, password = self._get_login_info()
- if username is None:
- return
+ def _perform_login(self, username, password):
self.report_login()
form_data = {
'username': username,
@@ -72,9 +69,6 @@ class TubiTvIE(InfoExtractor):
raise ExtractorError(
'Login failed (invalid username/password)', expected=True)
- def _real_initialize(self):
- self._login()
-
def _real_extract(self, url):
video_id = self._match_id(url)
video_data = self._download_json(
@@ -107,6 +101,9 @@ class TubiTvIE(InfoExtractor):
'url': self._proto_relative_url(sub_url),
})
+ season_number, episode_number, episode_title = self._search_regex(
+ r'^S(\d+):E(\d+) - (.+)', title, 'episode info', fatal=False, group=(1, 2, 3), default=(None, None, None))
+
return {
'id': video_id,
'title': title,
@@ -117,6 +114,9 @@ class TubiTvIE(InfoExtractor):
'duration': int_or_none(video_data.get('duration')),
'uploader_id': video_data.get('publisher_id'),
'release_year': int_or_none(video_data.get('year')),
+ 'season_number': int_or_none(season_number),
+ 'episode_number': int_or_none(episode_number),
+ 'episode_title': episode_title
}
@@ -132,9 +132,11 @@ class TubiTvShowIE(InfoExtractor):
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']
+ 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,