|
|
|
@ -47,6 +47,7 @@ from ..utils import (
|
|
|
|
|
FormatSorter,
|
|
|
|
|
GeoRestrictedError,
|
|
|
|
|
GeoUtils,
|
|
|
|
|
ISO639Utils,
|
|
|
|
|
LenientJSONDecoder,
|
|
|
|
|
Popen,
|
|
|
|
|
RegexNotFoundError,
|
|
|
|
@ -3071,7 +3072,11 @@ class InfoExtractor:
|
|
|
|
|
url_pattern = stream.attrib['Url']
|
|
|
|
|
stream_timescale = int_or_none(stream.get('TimeScale')) or timescale
|
|
|
|
|
stream_name = stream.get('Name')
|
|
|
|
|
stream_language = stream.get('Language', 'und')
|
|
|
|
|
# IsmFD expects ISO 639 Set 2 language codes (3-character length)
|
|
|
|
|
# See: https://github.com/yt-dlp/yt-dlp/issues/11356
|
|
|
|
|
stream_language = stream.get('Language') or 'und'
|
|
|
|
|
if len(stream_language) != 3:
|
|
|
|
|
stream_language = ISO639Utils.short2long(stream_language) or 'und'
|
|
|
|
|
for track in stream.findall('QualityLevel'):
|
|
|
|
|
KNOWN_TAGS = {'255': 'AACL', '65534': 'EC-3'}
|
|
|
|
|
fourcc = track.get('FourCC') or KNOWN_TAGS.get(track.get('AudioTag'))
|
|
|
|
|