aboutsummaryrefslogtreecommitdiff
path: root/youtube_dl/__init__.py
diff options
context:
space:
mode:
authorYen Chi Hsuan <yan12125@gmail.com>2017-03-11 19:37:45 +0800
committerYen Chi Hsuan <yan12125@gmail.com>2017-03-11 19:37:45 +0800
commit4605c94d1a386a71f170dc46d491c4ef78828753 (patch)
tree31f0ab01be36a15351f5e02efe397a42cddd0a43 /youtube_dl/__init__.py
parenta8e687a4dac412ab66d63e7da93e032cfe440c05 (diff)
[__init__] Fix missing subtitles if --add-metadata is used (#12423)
The previous fix for #5594 is incorrect
Diffstat (limited to 'youtube_dl/__init__.py')
-rw-r--r--youtube_dl/__init__.py15
1 files changed, 10 insertions, 5 deletions
diff --git a/youtube_dl/__init__.py b/youtube_dl/__init__.py
index ad5f13d2b..c482f9375 100644
--- a/youtube_dl/__init__.py
+++ b/youtube_dl/__init__.py
@@ -259,6 +259,16 @@ def _real_main(argv=None):
'key': 'FFmpegVideoConvertor',
'preferedformat': opts.recodevideo,
})
+ # FFmpegMetadataPP should be run after FFmpegVideoConvertorPP and
+ # FFmpegExtractAudioPP as containers before conversion may not support
+ # metadata (3gp, webm, etc.)
+ # And this post-processor should be placed before other metadata
+ # manipulating post-processors (FFmpegEmbedSubtitle) to prevent loss of
+ # extra metadata. By default ffmpeg preserves metadata applicable for both
+ # source and target containers. From this point the container won't change,
+ # so metadata can be added here.
+ if opts.addmetadata:
+ postprocessors.append({'key': 'FFmpegMetadata'})
if opts.convertsubtitles:
postprocessors.append({
'key': 'FFmpegSubtitlesConvertor',
@@ -276,11 +286,6 @@ def _real_main(argv=None):
})
if not already_have_thumbnail:
opts.writethumbnail = True
- # FFmpegMetadataPP should be run after FFmpegVideoConvertorPP and
- # FFmpegExtractAudioPP as containers before conversion may not support
- # metadata (3gp, webm, etc.)
- if opts.addmetadata:
- postprocessors.append({'key': 'FFmpegMetadata'})
# XAttrMetadataPP should be run after post-processors that may change file
# contents
if opts.xattrs: