From 62566a41b289196d7e9e46498f904e638a033c68 Mon Sep 17 00:00:00 2001 From: ian Date: Fri, 20 Mar 2020 17:50:50 -0400 Subject: [PATCH] [MKV Thumbnail Support] Now has the correct file name in MKV container --- youtube_dl/postprocessor/embedthumbnail.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/youtube_dl/postprocessor/embedthumbnail.py b/youtube_dl/postprocessor/embedthumbnail.py index 56be914b8f..4393c4e7a9 100644 --- a/youtube_dl/postprocessor/embedthumbnail.py +++ b/youtube_dl/postprocessor/embedthumbnail.py @@ -55,6 +55,25 @@ class EmbedThumbnailPP(FFmpegPostProcessor): os.remove(encodeFilename(filename)) os.rename(encodeFilename(temp_filename), encodeFilename(filename)) + elif info['ext'] == 'mkv': + os.rename(encodeFilename(thumbnail_filename), encodeFilename('cover.jpg')) + old_thumbnail_filename = thumbnail_filename + thumbnail_filename = 'cover.jpg' + + options = [ + '-c', 'copy', '-attach', thumbnail_filename, '-metadata:s:t', 'mimetype=image/jpeg'] + + self._downloader.to_screen('[ffmpeg] Adding thumbnail to "%s"' % filename) + + self.run_ffmpeg_multiple_files([filename], temp_filename, options) + + if not self._already_have_thumbnail: + os.remove(encodeFilename(thumbnail_filename)) + else: + os.rename(encodeFilename(thumbnail_filename), encodeFilename(old_thumbnail_filename)) + os.remove(encodeFilename(filename)) + os.rename(encodeFilename(temp_filename), encodeFilename(filename)) + elif info['ext'] in ['m4a', 'mp4']: if not check_executable('AtomicParsley', ['-v']): raise EmbedThumbnailPPError('AtomicParsley was not found. Please install.')