]> jfr.im git - yt-dlp.git/commitdiff
[ie/bilibili] Extract Dolby audio formats (#8142)
authorClosedPort22 <redacted>
Thu, 21 Sep 2023 17:45:18 +0000 (17:45 +0000)
committerGitHub <redacted>
Thu, 21 Sep 2023 17:45:18 +0000 (17:45 +0000)
Closes #4050
Authored by: ClosedPort22

yt_dlp/extractor/bilibili.py

index 5e7042dbbdaa1ef1205908bee02e5d68a3007323..9119f396be2a0378ba7696e0449cb00579af7fe7 100644 (file)
@@ -49,14 +49,14 @@ def extract_formats(self, play_info):
             for r in traverse_obj(play_info, ('support_formats', lambda _, v: v['quality']))
         }
 
-        audios = traverse_obj(play_info, ('dash', 'audio', ...))
+        audios = traverse_obj(play_info, ('dash', (None, 'dolby'), 'audio', ..., {dict}))
         flac_audio = traverse_obj(play_info, ('dash', 'flac', 'audio'))
         if flac_audio:
             audios.append(flac_audio)
         formats = [{
             'url': traverse_obj(audio, 'baseUrl', 'base_url', 'url'),
             'ext': mimetype2ext(traverse_obj(audio, 'mimeType', 'mime_type')),
-            'acodec': audio.get('codecs'),
+            'acodec': traverse_obj(audio, ('codecs', {str.lower})),
             'vcodec': 'none',
             'tbr': float_or_none(audio.get('bandwidth'), scale=1000),
             'filesize': int_or_none(audio.get('size')),
@@ -71,6 +71,7 @@ def extract_formats(self, play_info):
             'height': int_or_none(video.get('height')),
             'vcodec': video.get('codecs'),
             'acodec': 'none' if audios else None,
+            'dynamic_range': {126: 'DV', 125: 'HDR10'}.get(int_or_none(video.get('id'))),
             'tbr': float_or_none(video.get('bandwidth'), scale=1000),
             'filesize': int_or_none(video.get('size')),
             'quality': int_or_none(video.get('id')),