mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 06:35:12 +00:00 
			
		
		
		
	[extractor/common] Extend _extract_akamai_formats to also extract subtitle tracks
This commit is contained in:
		| @@ -3023,7 +3023,16 @@ class InfoExtractor(object): | ||||
|                 entries.append(media_info) | ||||
|         return entries | ||||
|  | ||||
|     def _extract_akamai_formats(self, manifest_url, video_id, hosts={}): | ||||
|     def _extract_akamai_formats(self, *args, **kwargs): | ||||
|         fmts, subs = self._extract_akamai_formats_and_subtitles(*args, **kwargs) | ||||
|         if subs: | ||||
|             self.report_warning(bug_reports_message( | ||||
|                 "Ignoring subtitle tracks found in the manifests; " | ||||
|                 "if any subtitle tracks are missing," | ||||
|             )) | ||||
|         return fmts | ||||
|  | ||||
|     def _extract_akamai_formats_and_subtitles(self, manifest_url, video_id, hosts={}): | ||||
|         signed = 'hdnea=' in manifest_url | ||||
|         if not signed: | ||||
|             # https://learn.akamai.com/en-us/webhelp/media-services-on-demand/stream-packaging-user-guide/GUID-BE6C0F73-1E06-483B-B0EA-57984B91B7F9.html | ||||
| @@ -3032,6 +3041,7 @@ class InfoExtractor(object): | ||||
|                 '', manifest_url).strip('?') | ||||
|  | ||||
|         formats = [] | ||||
|         subtitles = {} | ||||
|  | ||||
|         hdcore_sign = 'hdcore=3.7.0' | ||||
|         f4m_url = re.sub(r'(https?://[^/]+)/i/', r'\1/z/', manifest_url).replace('/master.m3u8', '/manifest.f4m') | ||||
| @@ -3050,10 +3060,11 @@ class InfoExtractor(object): | ||||
|         hls_host = hosts.get('hls') | ||||
|         if hls_host: | ||||
|             m3u8_url = re.sub(r'(https?://)[^/]+', r'\1' + hls_host, m3u8_url) | ||||
|         m3u8_formats = self._extract_m3u8_formats( | ||||
|         m3u8_formats, m3u8_subtitles = self._extract_m3u8_formats_and_subtitles( | ||||
|             m3u8_url, video_id, 'mp4', 'm3u8_native', | ||||
|             m3u8_id='hls', fatal=False) | ||||
|         formats.extend(m3u8_formats) | ||||
|         subtitles = self._merge_subtitles(subtitles, m3u8_subtitles) | ||||
|  | ||||
|         http_host = hosts.get('http') | ||||
|         if http_host and m3u8_formats and not signed: | ||||
| @@ -3077,7 +3088,7 @@ class InfoExtractor(object): | ||||
|                             formats.append(http_f) | ||||
|                         i += 1 | ||||
|  | ||||
|         return formats | ||||
|         return formats, subtitles | ||||
|  | ||||
|     def _extract_wowza_formats(self, url, video_id, m3u8_entry_protocol='m3u8_native', skip_protocols=[]): | ||||
|         query = compat_urlparse.urlparse(url).query | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Felix S
					Felix S