summary refs log tree commit diff
diff options
context:
space:
mode:
authorRemita Amine <remitamine@gmail.com>2020-12-19 20:08:44 +0100
committerRemita Amine <remitamine@gmail.com>2020-12-19 20:14:44 +0100
commit22feed08a1984d5c56b79b7322fe576d0d7bbbe5 (patch)
tree0e24aab8dc7a8a4768a238d5b83ceea60cc3ac58
parent942b8ca3bee90e13e0d058c03248670be1a9991c (diff)
downloadyoutube-dl-22feed08a1984d5c56b79b7322fe576d0d7bbbe5.tar.gz
youtube-dl-22feed08a1984d5c56b79b7322fe576d0d7bbbe5.tar.xz
youtube-dl-22feed08a1984d5c56b79b7322fe576d0d7bbbe5.zip
[common] remove unwanted query params from unsigned akamai manifest URLs
-rw-r--r--youtube_dl/extractor/common.py9
-rw-r--r--youtube_dl/extractor/nrk.py3
2 files changed, 9 insertions, 3 deletions
diff --git a/youtube_dl/extractor/common.py b/youtube_dl/extractor/common.py
index 79138f346..d5faa0eb7 100644
--- a/youtube_dl/extractor/common.py
+++ b/youtube_dl/extractor/common.py
@@ -2605,6 +2605,13 @@ class InfoExtractor(object):
         return entries
 
     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 = []
 
         hdcore_sign = 'hdcore=3.7.0'
@@ -2630,7 +2637,7 @@ class InfoExtractor(object):
         formats.extend(m3u8_formats)
 
         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/.+'
             qualities = re.match(REPL_REGEX, m3u8_url).group(2).split(',')
             qualities_length = len(qualities)
diff --git a/youtube_dl/extractor/nrk.py b/youtube_dl/extractor/nrk.py
index fdf2d7407..b545f291b 100644
--- a/youtube_dl/extractor/nrk.py
+++ b/youtube_dl/extractor/nrk.py
@@ -33,8 +33,7 @@ class NRKBaseIE(InfoExtractor):
 
     def _extract_nrk_formats(self, asset_url, video_id):
         if re.match(r'https?://[^/]+\.akamaihd\.net/i/', asset_url):
-            return self._extract_akamai_formats(
-                re.sub(r'(?:b=\d+-\d+|__a__=off)&?', '', asset_url), video_id)
+            return self._extract_akamai_formats(asset_url, video_id)
         asset_url = re.sub(r'(?:bw_(?:low|high)=\d+|no_audio_only)&?', '', asset_url)
         formats = self._extract_m3u8_formats(
             asset_url, video_id, 'mp4', 'm3u8_native', fatal=False)