aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpukkandan <pukkandan.ytdlp@gmail.com>2022-02-12 02:13:17 +0530
committerpukkandan <pukkandan.ytdlp@gmail.com>2022-02-12 02:13:17 +0530
commitab6df717d16fed9ab5d5f815185ce14559b4309b (patch)
tree4fd93a2990193a5cb0d54afd51afed3299349153
parent0c8d9e5fec440ab423e15b109a609af5d673887a (diff)
downloadhypervideo-pre-ab6df717d16fed9ab5d5f815185ce14559b4309b.tar.lz
hypervideo-pre-ab6df717d16fed9ab5d5f815185ce14559b4309b.tar.xz
hypervideo-pre-ab6df717d16fed9ab5d5f815185ce14559b4309b.zip
[youtube] Differentiate descriptive audio by language code
Related: #2677
-rw-r--r--yt_dlp/extractor/youtube.py11
1 files changed, 8 insertions, 3 deletions
diff --git a/yt_dlp/extractor/youtube.py b/yt_dlp/extractor/youtube.py
index a166e98db..5750e75d7 100644
--- a/yt_dlp/extractor/youtube.py
+++ b/yt_dlp/extractor/youtube.py
@@ -3006,13 +3006,17 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
tbr = float_or_none(
fmt.get('averageBitrate') or fmt.get('bitrate'), 1000)
+ language_preference = (
+ 10 if audio_track.get('audioIsDefault') and 10
+ else -10 if 'descriptive' in (audio_track.get('displayName') or '').lower() and -10
+ else -1)
dct = {
'asr': int_or_none(fmt.get('audioSampleRate')),
'filesize': int_or_none(fmt.get('contentLength')),
'format_id': itag,
'format_note': join_nonempty(
'%s%s' % (audio_track.get('displayName') or '',
- ' (default)' if audio_track.get('audioIsDefault') else ''),
+ ' (default)' if language_preference > 0 else ''),
fmt.get('qualityLabel') or quality.replace('audio_quality_', ''),
throttled and 'THROTTLED', delim=', '),
'source_preference': -10 if throttled else -1,
@@ -3022,8 +3026,9 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
'tbr': tbr,
'url': fmt_url,
'width': int_or_none(fmt.get('width')),
- 'language': audio_track.get('id', '').split('.')[0],
- 'language_preference': 1 if audio_track.get('audioIsDefault') else -1,
+ 'language': join_nonempty(audio_track.get('id', '').split('.')[0],
+ 'desc' if language_preference < -1 else ''),
+ 'language_preference': language_preference,
}
mime_mobj = re.match(
r'((?:[^/]+)/(?:[^;]+))(?:;\s*codecs="([^"]+)")?', fmt.get('mimeType') or '')