mirror of
				https://github.com/ytdl-org/youtube-dl.git
				synced 2025-10-29 09:26:20 -07:00 
			
		
		
		
	[common] remove unwanted query params from unsigned akamai manifest URLs
This commit is contained in:
		| @@ -2605,6 +2605,13 @@ class InfoExtractor(object): | |||||||
|         return entries |         return entries | ||||||
|  |  | ||||||
|     def _extract_akamai_formats(self, manifest_url, video_id, hosts={}): |     def _extract_akamai_formats(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 | ||||||
|  |             manifest_url = re.sub( | ||||||
|  |                 r'(?:b=[\d,-]+|(?:__a__|attributes)=off|__b__=\d+)&?', | ||||||
|  |                 '', manifest_url).strip('?') | ||||||
|  |  | ||||||
|         formats = [] |         formats = [] | ||||||
|  |  | ||||||
|         hdcore_sign = 'hdcore=3.7.0' |         hdcore_sign = 'hdcore=3.7.0' | ||||||
| @@ -2630,7 +2637,7 @@ class InfoExtractor(object): | |||||||
|         formats.extend(m3u8_formats) |         formats.extend(m3u8_formats) | ||||||
|  |  | ||||||
|         http_host = hosts.get('http') |         http_host = hosts.get('http') | ||||||
|         if http_host and m3u8_formats and 'hdnea=' not in m3u8_url: |         if http_host and m3u8_formats and not signed: | ||||||
|             REPL_REGEX = r'https?://[^/]+/i/([^,]+),([^/]+),([^/]+)\.csmil/.+' |             REPL_REGEX = r'https?://[^/]+/i/([^,]+),([^/]+),([^/]+)\.csmil/.+' | ||||||
|             qualities = re.match(REPL_REGEX, m3u8_url).group(2).split(',') |             qualities = re.match(REPL_REGEX, m3u8_url).group(2).split(',') | ||||||
|             qualities_length = len(qualities) |             qualities_length = len(qualities) | ||||||
|   | |||||||
| @@ -33,8 +33,7 @@ class NRKBaseIE(InfoExtractor): | |||||||
|  |  | ||||||
|     def _extract_nrk_formats(self, asset_url, video_id): |     def _extract_nrk_formats(self, asset_url, video_id): | ||||||
|         if re.match(r'https?://[^/]+\.akamaihd\.net/i/', asset_url): |         if re.match(r'https?://[^/]+\.akamaihd\.net/i/', asset_url): | ||||||
|             return self._extract_akamai_formats( |             return self._extract_akamai_formats(asset_url, video_id) | ||||||
|                 re.sub(r'(?:b=\d+-\d+|__a__=off)&?', '', asset_url), video_id) |  | ||||||
|         asset_url = re.sub(r'(?:bw_(?:low|high)=\d+|no_audio_only)&?', '', asset_url) |         asset_url = re.sub(r'(?:bw_(?:low|high)=\d+|no_audio_only)&?', '', asset_url) | ||||||
|         formats = self._extract_m3u8_formats( |         formats = self._extract_m3u8_formats( | ||||||
|             asset_url, video_id, 'mp4', 'm3u8_native', fatal=False) |             asset_url, video_id, 'mp4', 'm3u8_native', fatal=False) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user