mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 14:45:14 +00:00 
			
		
		
		
	| @@ -1340,7 +1340,10 @@ from .trovo import ( | ||||
| 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, | ||||
|   | ||||
| @@ -7,13 +7,19 @@ from .common import InfoExtractor | ||||
| 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'] | ||||
| @@ -108,3 +114,28 @@ class TubiTvIE(InfoExtractor): | ||||
|             '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) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Ashish
					Ashish