aboutsummaryrefslogtreecommitdiffstats
path: root/yt_dlp/postprocessor/ffmpeg.py
diff options
context:
space:
mode:
authorpukkandan <pukkandan.ytdlp@gmail.com>2022-06-06 21:18:44 +0530
committerpukkandan <pukkandan.ytdlp@gmail.com>2022-06-06 21:51:28 +0530
commite0ab98541cec9515d94ada8885a0bb999277f0c0 (patch)
treeee76006d2596407f38b68d2b7bbc366d4118f73d /yt_dlp/postprocessor/ffmpeg.py
parent35faefee5ddb67c447c3206199cc06124600e84d (diff)
downloadhypervideo-pre-e0ab98541cec9515d94ada8885a0bb999277f0c0.tar.lz
hypervideo-pre-e0ab98541cec9515d94ada8885a0bb999277f0c0.tar.xz
hypervideo-pre-e0ab98541cec9515d94ada8885a0bb999277f0c0.zip
[ExtractAudio] Allow conditional conversion
Closes #1715
Diffstat (limited to 'yt_dlp/postprocessor/ffmpeg.py')
-rw-r--r--yt_dlp/postprocessor/ffmpeg.py9
1 files changed, 6 insertions, 3 deletions
diff --git a/yt_dlp/postprocessor/ffmpeg.py b/yt_dlp/postprocessor/ffmpeg.py
index e38b493c2..a726a962f 100644
--- a/yt_dlp/postprocessor/ffmpeg.py
+++ b/yt_dlp/postprocessor/ffmpeg.py
@@ -426,10 +426,11 @@ class FFmpegPostProcessor(PostProcessor):
class FFmpegExtractAudioPP(FFmpegPostProcessor):
COMMON_AUDIO_EXTS = ('wav', 'flac', 'm4a', 'aiff', 'mp3', 'ogg', 'mka', 'opus', 'wma')
SUPPORTED_EXTS = tuple(ACODECS.keys())
+ FORMAT_RE = create_mapping_re(('best', *SUPPORTED_EXTS))
def __init__(self, downloader=None, preferredcodec=None, preferredquality=None, nopostoverwrites=False):
FFmpegPostProcessor.__init__(self, downloader)
- self._preferredcodec = preferredcodec or 'best'
+ self.mapping = preferredcodec or 'best'
self._preferredquality = float_or_none(preferredquality)
self._nopostoverwrites = nopostoverwrites
@@ -469,9 +470,11 @@ class FFmpegExtractAudioPP(FFmpegPostProcessor):
@PostProcessor._restrict_to(images=False)
def run(self, information):
orig_path = path = information['filepath']
- target_format = self._preferredcodec
+ target_format, _skip_msg = resolve_mapping(information['ext'], self.mapping)
if target_format == 'best' and information['ext'] in self.COMMON_AUDIO_EXTS:
- self.to_screen(f'Not converting audio {orig_path}; the file is already in a common audio format')
+ target_format, _skip_msg = None, 'the file is already in a common audio format'
+ if not target_format:
+ self.to_screen(f'Not converting audio {orig_path}; {_skip_msg}')
return [], information
filecodec = self.get_audio_codec(path)