diff options
author | pukkandan <pukkandan.ytdlp@gmail.com> | 2021-05-29 01:39:07 +0530 |
---|---|---|
committer | pukkandan <pukkandan.ytdlp@gmail.com> | 2021-05-29 02:31:14 +0530 |
commit | 337e0c62f894722e9c268b14d02a85b84c96024d (patch) | |
tree | 6a46a51907f04d56658595dee93160efa2b10d17 /yt_dlp/postprocessor/ffmpeg.py | |
parent | 885cc0b75c3ef3ef46fa476746bd34381fd9446d (diff) | |
download | hypervideo-pre-337e0c62f894722e9c268b14d02a85b84c96024d.tar.lz hypervideo-pre-337e0c62f894722e9c268b14d02a85b84c96024d.tar.xz hypervideo-pre-337e0c62f894722e9c268b14d02a85b84c96024d.zip |
[embedthumbnail] Correctly escape filename
Closes #352
The approach in [1] is faulty as can be seen in the test cases
1. https://github.com/ytdl-org/youtube-dl/commit/bff857a8af696e701482208617bf0b7564951326
Diffstat (limited to 'yt_dlp/postprocessor/ffmpeg.py')
-rw-r--r-- | yt_dlp/postprocessor/ffmpeg.py | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/yt_dlp/postprocessor/ffmpeg.py b/yt_dlp/postprocessor/ffmpeg.py index ea728be37..d9f816b04 100644 --- a/yt_dlp/postprocessor/ffmpeg.py +++ b/yt_dlp/postprocessor/ffmpeg.py @@ -853,19 +853,12 @@ class FFmpegThumbnailsConvertorPP(FFmpegPostProcessor): return [] def convert_thumbnail(self, thumbnail_filename, target_ext): - # NB: % is supposed to be escaped with %% but this does not work - # for input files so working around with standard substitution - escaped_thumbnail_filename = thumbnail_filename.replace('%', '#') - os.rename(encodeFilename(thumbnail_filename), encodeFilename(escaped_thumbnail_filename)) - escaped_thumbnail_conv_filename = replace_extension(escaped_thumbnail_filename, target_ext) - - self.to_screen('Converting thumbnail "%s" to %s' % (escaped_thumbnail_filename, target_ext)) - self.run_ffmpeg(escaped_thumbnail_filename, escaped_thumbnail_conv_filename, self._options(target_ext)) - - # Rename back to unescaped thumbnail_conv_filename = replace_extension(thumbnail_filename, target_ext) - os.rename(encodeFilename(escaped_thumbnail_filename), encodeFilename(thumbnail_filename)) - os.rename(encodeFilename(escaped_thumbnail_conv_filename), encodeFilename(thumbnail_conv_filename)) + + self.to_screen('Converting thumbnail "%s" to %s' % (thumbnail_filename, target_ext)) + self.real_run_ffmpeg( + [(thumbnail_filename, ['-f', 'image2', '-pattern_type', 'none'])], + [(thumbnail_conv_filename.replace('%', '%%'), self._options(target_ext))]) return thumbnail_conv_filename def run(self, info): |