mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2024-11-16 21:33:19 +00:00
[extractor/common] improve Akamai HTTP format extraction
- Allow m3u8 manifest without an additional audio format - Fix extraction for qualities starting with a number Solution provided by @nixxo based on: https://stackoverflow.com/a/5984688
This commit is contained in:
parent
98e248faa4
commit
0827033479
|
@ -2624,7 +2624,7 @@ def _extract_akamai_formats(self, manifest_url, video_id, hosts={}):
|
||||||
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)
|
||||||
if len(formats) in (qualities_length + 1, qualities_length * 2 + 1):
|
if len(formats) in (qualities_length, qualities_length + 1, qualities_length * 2, qualities_length * 2 + 1):
|
||||||
i = 0
|
i = 0
|
||||||
http_formats = []
|
http_formats = []
|
||||||
for f in formats:
|
for f in formats:
|
||||||
|
@ -2633,7 +2633,7 @@ def _extract_akamai_formats(self, manifest_url, video_id, hosts={}):
|
||||||
http_f = f.copy()
|
http_f = f.copy()
|
||||||
del http_f['manifest_url']
|
del http_f['manifest_url']
|
||||||
http_url = re.sub(
|
http_url = re.sub(
|
||||||
REPL_REGEX, protocol + r'://%s/\1%s\3' % (http_host, qualities[i]), f['url'])
|
REPL_REGEX, protocol + r'://%s/\g<1>%s\3' % (http_host, qualities[i]), f['url'])
|
||||||
http_f.update({
|
http_f.update({
|
||||||
'format_id': http_f['format_id'].replace('hls-', protocol + '-'),
|
'format_id': http_f['format_id'].replace('hls-', protocol + '-'),
|
||||||
'url': http_url,
|
'url': http_url,
|
||||||
|
|
Loading…
Reference in a new issue