mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 06:35:12 +00:00 
			
		
		
		
	| @@ -505,6 +505,7 @@ from .hotnewhiphop import HotNewHipHopIE | |||||||
| from .hotstar import ( | from .hotstar import ( | ||||||
|     HotStarIE, |     HotStarIE, | ||||||
|     HotStarPlaylistIE, |     HotStarPlaylistIE, | ||||||
|  |     HotStarSeriesIE, | ||||||
| ) | ) | ||||||
| from .howcast import HowcastIE | from .howcast import HowcastIE | ||||||
| from .howstuffworks import HowStuffWorksIE | from .howstuffworks import HowStuffWorksIE | ||||||
|   | |||||||
| @@ -87,7 +87,14 @@ class HotStarBaseIE(InfoExtractor): | |||||||
|  |  | ||||||
| class HotStarIE(HotStarBaseIE): | class HotStarIE(HotStarBaseIE): | ||||||
|     IE_NAME = 'hotstar' |     IE_NAME = 'hotstar' | ||||||
|     _VALID_URL = r'https?://(?:www\.)?hotstar\.com/.*(?P<id>\d{10})' |     _VALID_URL = r'''(?x) | ||||||
|  |                            https?://(?:www\.)?hotstar\.com(?:/in)?/(?!in/) | ||||||
|  |                            (?: | ||||||
|  |                                tv/(?:[^/?#]+/){3}| | ||||||
|  |                                (?!tv/)[^?#]+/ | ||||||
|  |                            )? | ||||||
|  |                            (?P<id>\d{10}) | ||||||
|  |                    ''' | ||||||
|     _TESTS = [{ |     _TESTS = [{ | ||||||
|         # contentData |         # contentData | ||||||
|         'url': 'https://www.hotstar.com/can-you-not-spread-rumours/1000076273', |         'url': 'https://www.hotstar.com/can-you-not-spread-rumours/1000076273', | ||||||
| @@ -235,3 +242,41 @@ class HotStarPlaylistIE(HotStarBaseIE): | |||||||
|             if video.get('contentId')] |             if video.get('contentId')] | ||||||
|  |  | ||||||
|         return self.playlist_result(entries, playlist_id) |         return self.playlist_result(entries, playlist_id) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | class HotStarSeriesIE(HotStarBaseIE): | ||||||
|  |     IE_NAME = 'hotstar:series' | ||||||
|  |     _VALID_URL = r'(?:https?://)(?:www\.)?hotstar\.com(?:/in)?/tv/[^/]+/(?P<id>\d{10})$' | ||||||
|  |     _TESTS = [{ | ||||||
|  |         'url': 'https://www.hotstar.com/in/tv/radhakrishn/1260000646', | ||||||
|  |         'info_dict': { | ||||||
|  |             'id': '1260000646', | ||||||
|  |         }, | ||||||
|  |         'playlist_mincount': 690, | ||||||
|  |     }, { | ||||||
|  |         'url': 'https://www.hotstar.com/tv/dancee-/1260050431', | ||||||
|  |         'info_dict': { | ||||||
|  |             'id': '1260050431', | ||||||
|  |         }, | ||||||
|  |         'playlist_mincount': 43, | ||||||
|  |     }] | ||||||
|  |  | ||||||
|  |     def _real_extract(self, url): | ||||||
|  |         series_id = self._match_id(url) | ||||||
|  |         headers = { | ||||||
|  |             'x-country-code': 'IN', | ||||||
|  |             'x-platform-code': 'PCTV', | ||||||
|  |         } | ||||||
|  |         detail_json = self._download_json('https://api.hotstar.com/o/v1/show/detail?contentId=' + series_id, | ||||||
|  |                                           video_id=series_id, headers=headers) | ||||||
|  |         id = compat_str(try_get(detail_json, lambda x: x['body']['results']['item']['id'], int)) | ||||||
|  |         item_json = self._download_json('https://api.hotstar.com/o/v1/tray/g/1/items?etid=0&tao=0&tas=10000&eid=' + id, | ||||||
|  |                                         video_id=series_id, headers=headers) | ||||||
|  |         entries = [ | ||||||
|  |             self.url_result( | ||||||
|  |                 'https://www.hotstar.com/%d' % video['contentId'], | ||||||
|  |                 ie=HotStarIE.ie_key(), video_id=video['contentId']) | ||||||
|  |             for video in item_json['body']['results']['items'] | ||||||
|  |             if video.get('contentId')] | ||||||
|  |  | ||||||
|  |         return self.playlist_result(entries, series_id) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Ashish
					Ashish