diff options
| -rw-r--r-- | ChangeLog | 6 | ||||
| -rw-r--r-- | youtube_dl/__init__.py | 15 | 
2 files changed, 16 insertions, 5 deletions
@@ -1,3 +1,9 @@ +version <unreleased> + +Core +* Fix missing subtitles if --add-metadata is used (#12423) + +  version 2017.03.10  Extractors 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:  | 
