]> jfr.im git - yt-dlp.git/blobdiff - yt_dlp/YoutubeDL.py
[utils, cleanup] Consolidate known media extensions
[yt-dlp.git] / yt_dlp / YoutubeDL.py
index aef348a4401abb72dc9e9676802ac4253e35555d..e9a51cba40bb6ff89dcfd5be47f7ae9fb2506f4c 100644 (file)
@@ -52,6 +52,7 @@
     DEFAULT_OUTTMPL,
     IDENTITY,
     LINK_TEMPLATES,
+    MEDIA_EXTENSIONS,
     NO_DEFAULT,
     NUMBER_RE,
     OUTTMPL_TYPES,
@@ -543,9 +544,9 @@ class YoutubeDL:
         'page_url', 'app', 'play_path', 'tc_url', 'flash_version', 'rtmp_live', 'rtmp_conn', 'rtmp_protocol', 'rtmp_real_time'
     }
     _format_selection_exts = {
-        'audio': {'m4a', 'mp3', 'ogg', 'aac'},
-        'video': {'mp4', 'flv', 'webm', '3gp'},
-        'storyboards': {'mhtml'},
+        'audio': set(MEDIA_EXTENSIONS.common_audio),
+        'video': set(MEDIA_EXTENSIONS.common_video + ('3gp', )),
+        'storyboards': set(MEDIA_EXTENSIONS.storyboards),
     }
 
     def __init__(self, params=None, auto_init=True):
@@ -1713,7 +1714,7 @@ def __process_playlist(self, ie_result, download):
         assert ie_result['_type'] in ('playlist', 'multi_video')
 
         common_info = self._playlist_infodict(ie_result, strict=True)
-        title = common_info.get('title') or '<Untitled>'
+        title = common_info.get('playlist') or '<Untitled>'
         if self._match_entry(common_info, incomplete=True) is not None:
             return
         self.to_screen(f'[download] Downloading {ie_result["_type"]}: {title}')
@@ -1733,8 +1734,8 @@ def __process_playlist(self, ie_result, download):
             # Better to do this after potentially exhausting entries
             ie_result['playlist_count'] = all_entries.get_full_count()
 
-        common_info = self._playlist_infodict(ie_result, n_entries=int_or_none(n_entries))
-        ie_copy = collections.ChainMap(ie_result, common_info)
+        ie_copy = collections.ChainMap(
+            ie_result, self._playlist_infodict(ie_result, n_entries=int_or_none(n_entries)))
 
         _infojson_written = False
         write_playlist_files = self.params.get('allow_playlist_files', True)
@@ -1782,6 +1783,7 @@ def __process_playlist(self, ie_result, download):
 
             extra = {
                 **common_info,
+                'n_entries': int_or_none(n_entries),
                 'playlist_index': playlist_index,
                 'playlist_autonumber': i + 1,
             }