mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-30 22:25:19 +00:00 
			
		
		
		
	[ie/AmazonMiniTV] Fix extractor (#8103)
Closes #7817 Authored by: Aniruddh-J
This commit is contained in:
		| @@ -37,7 +37,7 @@ class AmazonMiniTVBaseIE(InfoExtractor): | ||||
|         return resp['data'][data['operationName']] | ||||
| 
 | ||||
| 
 | ||||
| class AmazonMiniTVIE(AmazonMiniTVBaseIE): | ||||
| class AmazonMiniTVIE(InfoExtractor): | ||||
|     _VALID_URL = r'(?:https?://(?:www\.)?amazon\.in/minitv/tp/|amazonminitv:(?:amzn1\.dv\.gti\.)?)(?P<id>[a-f0-9-]+)' | ||||
|     _TESTS = [{ | ||||
|         'url': 'https://www.amazon.in/minitv/tp/75fe3a75-b8fe-4499-8100-5c9424344840?referrer=https%3A%2F%2Fwww.amazon.in%2Fminitv', | ||||
| @@ -86,56 +86,14 @@ class AmazonMiniTVIE(AmazonMiniTVBaseIE): | ||||
|         'only_matching': True, | ||||
|     }] | ||||
| 
 | ||||
|     _GRAPHQL_QUERY_CONTENT = ''' | ||||
| query content($sessionIdToken: String!, $deviceLocale: String, $contentId: ID!, $contentType: ContentType!, $clientId: String) { | ||||
|   content( | ||||
|     applicationContextInput: {deviceLocale: $deviceLocale, sessionIdToken: $sessionIdToken, clientId: $clientId} | ||||
|     contentId: $contentId | ||||
|     contentType: $contentType | ||||
|   ) { | ||||
|     contentId | ||||
|     name | ||||
|     ... on Episode { | ||||
|       contentId | ||||
|       vodType | ||||
|       name | ||||
|       images | ||||
|       description { | ||||
|         synopsis | ||||
|         contentLengthInSeconds | ||||
|       } | ||||
|       publicReleaseDateUTC | ||||
|       audioTracks | ||||
|       seasonId | ||||
|       seriesId | ||||
|       seriesName | ||||
|       seasonNumber | ||||
|       episodeNumber | ||||
|       timecode { | ||||
|         endCreditsTime | ||||
|       } | ||||
|     } | ||||
|     ... on MovieContent { | ||||
|       contentId | ||||
|       vodType | ||||
|       name | ||||
|       description { | ||||
|         synopsis | ||||
|         contentLengthInSeconds | ||||
|       } | ||||
|       images | ||||
|       publicReleaseDateUTC | ||||
|       audioTracks | ||||
|     } | ||||
|   } | ||||
| }''' | ||||
| 
 | ||||
|     def _real_extract(self, url): | ||||
|         asin = f'amzn1.dv.gti.{self._match_id(url)}' | ||||
|         prs = self._call_api(asin, note='Downloading playback info') | ||||
|         video_uuid = self._match_id(url) | ||||
|         asin = f'amzn1.dv.gti.{video_uuid}' | ||||
|         webpage = self._download_webpage(f'https://www.amazon.in/minitv/tp/{video_uuid}', asin) | ||||
|         data = self._search_nextjs_data(webpage, asin)['props']['pageProps']['ssrProps'] | ||||
| 
 | ||||
|         formats, subtitles = [], {} | ||||
|         for type_, asset in prs['playbackAssets'].items(): | ||||
|         for type_, asset in traverse_obj(data, ('playbackData', 'playbackAssets', {dict.items}, ...)): | ||||
|             if not traverse_obj(asset, 'manifestUrl'): | ||||
|                 continue | ||||
|             if type_ == 'hls': | ||||
| @@ -152,12 +110,7 @@ query content($sessionIdToken: String!, $deviceLocale: String, $contentId: ID!, | ||||
|             else: | ||||
|                 self.report_warning(f'Unknown asset type: {type_}') | ||||
| 
 | ||||
|         title_info = self._call_api( | ||||
|             asin, note='Downloading title info', data={ | ||||
|                 'operationName': 'content', | ||||
|                 'variables': {'contentId': asin}, | ||||
|                 'query': self._GRAPHQL_QUERY_CONTENT, | ||||
|             }) | ||||
|         title_info = traverse_obj(data, ('contentData', {dict})) or {} | ||||
|         credits_time = try_get(title_info, lambda x: x['timecode']['endCreditsTime'] / 1000) | ||||
|         is_episode = title_info.get('vodType') == 'EPISODE' | ||||
| 
 | ||||
| @@ -192,6 +145,7 @@ class AmazonMiniTVSeasonIE(AmazonMiniTVBaseIE): | ||||
|     IE_NAME = 'amazonminitv:season' | ||||
|     _VALID_URL = r'amazonminitv:season:(?:amzn1\.dv\.gti\.)?(?P<id>[a-f0-9-]+)' | ||||
|     IE_DESC = 'Amazon MiniTV Season, "minitv:season:" prefix' | ||||
|     _WORKING = False | ||||
|     _TESTS = [{ | ||||
|         'url': 'amazonminitv:season:amzn1.dv.gti.0aa996eb-6a1b-4886-a342-387fbd2f1db0', | ||||
|         'playlist_mincount': 6, | ||||
| @@ -251,6 +205,7 @@ class AmazonMiniTVSeriesIE(AmazonMiniTVBaseIE): | ||||
|     IE_NAME = 'amazonminitv:series' | ||||
|     _VALID_URL = r'amazonminitv:series:(?:amzn1\.dv\.gti\.)?(?P<id>[a-f0-9-]+)' | ||||
|     IE_DESC = 'Amazon MiniTV Series, "minitv:series:" prefix' | ||||
|     _WORKING = False | ||||
|     _TESTS = [{ | ||||
|         'url': 'amazonminitv:series:amzn1.dv.gti.56521d46-b040-4fd5-872e-3e70476a04b0', | ||||
|         'playlist_mincount': 3, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Aniruddh Joshi
					Aniruddh Joshi