aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpukkandan <pukkandan.ytdlp@gmail.com>2022-02-18 23:16:16 +0530
committerpukkandan <pukkandan.ytdlp@gmail.com>2022-02-18 23:17:37 +0530
commited66a17ef0b18159dda901f0122520c25ea95d6b (patch)
tree9ede046d0c8bd9eb5d0a9ff4c70fafd62313eec7
parent5625e6073fc9bd0ca944eaa18b1038ca8eddabd7 (diff)
downloadhypervideo-pre-ed66a17ef0b18159dda901f0122520c25ea95d6b.tar.lz
hypervideo-pre-ed66a17ef0b18159dda901f0122520c25ea95d6b.tar.xz
hypervideo-pre-ed66a17ef0b18159dda901f0122520c25ea95d6b.zip
[FFmpegConcat] Abort on `--simulate`
-rw-r--r--yt_dlp/postprocessor/common.py4
-rw-r--r--yt_dlp/postprocessor/ffmpeg.py7
2 files changed, 6 insertions, 5 deletions
diff --git a/yt_dlp/postprocessor/common.py b/yt_dlp/postprocessor/common.py
index f2467c542..d761c9303 100644
--- a/yt_dlp/postprocessor/common.py
+++ b/yt_dlp/postprocessor/common.py
@@ -103,12 +103,14 @@ class PostProcessor(metaclass=PostProcessorMetaClass):
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'
diff --git a/yt_dlp/postprocessor/ffmpeg.py b/yt_dlp/postprocessor/ffmpeg.py
index 05eeee2d7..d4495b4a2 100644
--- a/yt_dlp/postprocessor/ffmpeg.py
+++ b/yt_dlp/postprocessor/ffmpeg.py
@@ -1145,16 +1145,15 @@ class FFmpegConcatPP(FFmpegPostProcessor):
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')