diff options
| author | Remita Amine <remitamine@gmail.com> | 2020-12-03 00:33:55 +0100 | 
|---|---|---|
| committer | Remita Amine <remitamine@gmail.com> | 2020-12-03 00:33:55 +0100 | 
| commit | da4304609dd627b577d7b69c0a05851497fa384c (patch) | |
| tree | 2e6e9e29447b0297c8e857ec263e1e800bfa74a1 | |
| parent | ea89680aeae7c26af355ac23038e3a45f116649e (diff) | |
| download | hypervideo-pre-da4304609dd627b577d7b69c0a05851497fa384c.tar.lz hypervideo-pre-da4304609dd627b577d7b69c0a05851497fa384c.tar.xz hypervideo-pre-da4304609dd627b577d7b69c0a05851497fa384c.zip | |
[extractor/commons] improve Akamai HTTP formats extraction
| -rw-r--r-- | youtube_dl/extractor/common.py | 19 | 
1 files changed, 9 insertions, 10 deletions
| diff --git a/youtube_dl/extractor/common.py b/youtube_dl/extractor/common.py index 4463e06b3..a21afefeb 100644 --- a/youtube_dl/extractor/common.py +++ b/youtube_dl/extractor/common.py @@ -2614,20 +2614,20 @@ class InfoExtractor(object):          hls_host = hosts.get('hls')          if hls_host:              m3u8_url = re.sub(r'(https?://)[^/]+', r'\1' + hls_host, m3u8_url) -        formats.extend(self._extract_m3u8_formats( +        m3u8_formats = self._extract_m3u8_formats(              m3u8_url, video_id, 'mp4', 'm3u8_native', -            m3u8_id='hls', fatal=False)) +            m3u8_id='hls', fatal=False) +        formats.extend(m3u8_formats)          http_host = hosts.get('http') -        if http_host and 'hdnea=' not in manifest_url: -            REPL_REGEX = r'https://[^/]+/i/([^,]+),([^/]+),([^/]+).csmil/.+' +        if http_host and m3u8_formats and 'hdnea=' not in m3u8_url: +            REPL_REGEX = r'https?://[^/]+/i/([^,]+),([^/]+),([^/]+)\.csmil/.+'              qualities = re.match(REPL_REGEX, m3u8_url).group(2).split(',')              qualities_length = len(qualities) -            if len(formats) in (qualities_length, qualities_length + 1, qualities_length * 2, qualities_length * 2 + 1): +            if len(m3u8_formats) in (qualities_length, qualities_length + 1):                  i = 0 -                http_formats = [] -                for f in formats: -                    if f['protocol'] == 'm3u8_native' and f['vcodec'] != 'none': +                for f in m3u8_formats: +                    if f['vcodec'] != 'none':                          for protocol in ('http', 'https'):                              http_f = f.copy()                              del http_f['manifest_url'] @@ -2638,9 +2638,8 @@ class InfoExtractor(object):                                  'url': http_url,                                  'protocol': protocol,                              }) -                            http_formats.append(http_f) +                            formats.append(http_f)                          i += 1 -                formats.extend(http_formats)          return formats | 
