mirror of
https://github.com/ytdl-org/youtube-dl
synced 2024-11-27 21:46:54 +01:00
[extractor/common] Properly extract audio only formats in master m3u8 playlists
This commit is contained in:
parent
5eb6bdced4
commit
fbb6edd298
@ -1084,19 +1084,29 @@ class InfoExtractor(object):
|
|||||||
'protocol': entry_protocol,
|
'protocol': entry_protocol,
|
||||||
'preference': preference,
|
'preference': preference,
|
||||||
}
|
}
|
||||||
codecs = last_info.get('CODECS')
|
|
||||||
if codecs:
|
|
||||||
# TODO: looks like video codec is not always necessarily goes first
|
|
||||||
va_codecs = codecs.split(',')
|
|
||||||
if va_codecs[0]:
|
|
||||||
f['vcodec'] = va_codecs[0]
|
|
||||||
if len(va_codecs) > 1 and va_codecs[1]:
|
|
||||||
f['acodec'] = va_codecs[1]
|
|
||||||
resolution = last_info.get('RESOLUTION')
|
resolution = last_info.get('RESOLUTION')
|
||||||
if resolution:
|
if resolution:
|
||||||
width_str, height_str = resolution.split('x')
|
width_str, height_str = resolution.split('x')
|
||||||
f['width'] = int(width_str)
|
f['width'] = int(width_str)
|
||||||
f['height'] = int(height_str)
|
f['height'] = int(height_str)
|
||||||
|
codecs = last_info.get('CODECS')
|
||||||
|
if codecs:
|
||||||
|
vcodec, acodec = [None] * 2
|
||||||
|
va_codecs = codecs.split(',')
|
||||||
|
if len(va_codecs) == 1:
|
||||||
|
# Audio only entries usually come with single codec and
|
||||||
|
# no resolution. For more robustness we also check it to
|
||||||
|
# be mp4 audio.
|
||||||
|
if not resolution and va_codecs[0].startswith('mp4a'):
|
||||||
|
vcodec, acodec = 'none', va_codecs[0]
|
||||||
|
else:
|
||||||
|
vcodec = va_codecs[0]
|
||||||
|
else:
|
||||||
|
vcodec, acodec = va_codecs[:2]
|
||||||
|
f.update({
|
||||||
|
'acodec': acodec,
|
||||||
|
'vcodec': vcodec,
|
||||||
|
})
|
||||||
if last_media is not None:
|
if last_media is not None:
|
||||||
f['m3u8_media'] = last_media
|
f['m3u8_media'] = last_media
|
||||||
last_media = None
|
last_media = None
|
||||||
|
Loading…
Reference in New Issue
Block a user