]> jfr.im git - yt-dlp.git/commitdiff
[FFmpegConcat] Abort on `--simulate`
authorpukkandan <redacted>
Fri, 18 Feb 2022 17:46:16 +0000 (23:16 +0530)
committerpukkandan <redacted>
Fri, 18 Feb 2022 17:47:37 +0000 (23:17 +0530)
yt_dlp/postprocessor/common.py
yt_dlp/postprocessor/ffmpeg.py

index f2467c542303b70b4609251a81ede8963a284cc9..d761c9303b1646b2a06e52876b2d6ceaff27ea15 100644 (file)
@@ -103,12 +103,14 @@ def _copy_infodict(self, info_dict):
         return getattr(self._downloader, '_copy_infodict', dict)(info_dict)
 
     @staticmethod
-    def _restrict_to(*, video=True, audio=True, images=True):
+    def _restrict_to(*, video=True, audio=True, images=True, simulated=True):
         allowed = {'video': video, 'audio': audio, 'images': images}
 
         def decorator(func):
             @functools.wraps(func)
             def wrapper(self, info):
+                if not simulated and (self.get_param('simulate') or self.get_param('skip_download')):
+                    return [], info
                 format_type = (
                     'video' if info.get('vcodec') != 'none'
                     else 'audio' if info.get('acodec') != 'none'
index 05eeee2d74e2b133b6b525a3575e8a4c2a4fe77e..d4495b4a250d4abde3814bddc578d15c07c2dfb3 100644 (file)
@@ -1145,16 +1145,15 @@ def concat_files(self, in_files, out_file):
         super().concat_files(in_files, out_file)
         return in_files
 
-    @PostProcessor._restrict_to(images=False)
+    @PostProcessor._restrict_to(images=False, simulated=False)
     def run(self, info):
         entries = info.get('entries') or []
-        if (self.get_param('skip_download') or not any(entries)
-                or self._only_multi_video and info['_type'] != 'multi_video'):
+        if not any(entries) or (self._only_multi_video and info['_type'] != 'multi_video'):
             return [], info
         elif any(len(entry) > 1 for entry in traverse_obj(entries, (..., 'requested_downloads')) or []):
             raise PostProcessingError('Concatenation is not supported when downloading multiple separate formats')
 
-        in_files = traverse_obj(entries, (..., 'requested_downloads', 0, 'filepath'))
+        in_files = traverse_obj(entries, (..., 'requested_downloads', 0, 'filepath')) or []
         if len(in_files) < len(entries):
             raise PostProcessingError('Aborting concatenation because some downloads failed')