]> jfr.im git - yt-dlp.git/blobdiff - youtube_dlc/postprocessor/embedthumbnail.py
Merge branch 'mkvthumbnail' of https://github.com/MrDoritos/youtube-dl into MrDoritos...
[yt-dlp.git] / youtube_dlc / postprocessor / embedthumbnail.py
index e2002ab0b1ed84483c47b63ea74e4086fea7230a..e66558ea6fe249bd90d860d818912592be0651e3 100644 (file)
@@ -77,6 +77,25 @@ def run(self, info):
             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.')