From f4e4be19f07037507d1694ae0e68e15ff702bf3c Mon Sep 17 00:00:00 2001 From: pukkandan Date: Thu, 1 Apr 2021 14:13:24 +0530 Subject: [PATCH] [sponskrub] Run before embedding thumbnail Workaround for https://github.com/faissaloo/SponSkrub/issues/29 Closes https://github.com/yt-dlp/yt-dlp/issues/204 --- yt_dlp/__init__.py | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/yt_dlp/__init__.py b/yt_dlp/__init__.py index c58362698..bf728e613 100644 --- a/yt_dlp/__init__.py +++ b/yt_dlp/__init__.py @@ -368,15 +368,9 @@ def _real_main(argv=None): # this was the old behaviour if only --all-sub was given. if opts.allsubtitles and not opts.writeautomaticsub: opts.writesubtitles = True - if opts.embedthumbnail: - already_have_thumbnail = opts.writethumbnail or opts.write_all_thumbnails - postprocessors.append({ - 'key': 'EmbedThumbnail', - 'already_have_thumbnail': already_have_thumbnail - }) - if not already_have_thumbnail: - opts.writethumbnail = True - # This should be below most ffmpeg PP because it may cut parts out from the video + # This should be above EmbedThumbnail since sponskrub removes the thumbnail attachment + # but must be below EmbedSubtitle and FFmpegMetadata + # See https://github.com/yt-dlp/yt-dlp/issues/204 , https://github.com/faissaloo/SponSkrub/issues/29 # If opts.sponskrub is None, sponskrub is used, but it silently fails if the executable can't be found if opts.sponskrub is not False: postprocessors.append({ @@ -387,6 +381,14 @@ def _real_main(argv=None): 'force': opts.sponskrub_force, 'ignoreerror': opts.sponskrub is None, }) + if opts.embedthumbnail: + already_have_thumbnail = opts.writethumbnail or opts.write_all_thumbnails + postprocessors.append({ + 'key': 'EmbedThumbnail', + 'already_have_thumbnail': already_have_thumbnail + }) + if not already_have_thumbnail: + opts.writethumbnail = True if opts.split_chapters: postprocessors.append({'key': 'FFmpegSplitChapters'}) # XAttrMetadataPP should be run after post-processors that may change file contents