浏览代码

[__init__] Fix lost xattr if --embed-thumbnail used

Reported at
https://github.com/rg3/youtube-dl/issues/9054#issuecomment-250451823
Yen Chi Hsuan 9 年之前
父节点
当前提交
b19e275d99
共有 2 个文件被更改,包括 5 次插入2 次删除
  1. 1 0
      ChangeLog
  2. 4 2
      youtube_dl/__init__.py

+ 1 - 0
ChangeLog

@@ -1,6 +1,7 @@
 version <unreleased>
 
 Core
+* Fix possibly lost extended attributes
 + Support pyxattr as well as python-xattr for --xattrs and
   --xattr-set-filesize (#9054)
 

+ 4 - 2
youtube_dl/__init__.py

@@ -266,8 +266,6 @@ def _real_main(argv=None):
         postprocessors.append({
             'key': 'FFmpegEmbedSubtitle',
         })
-    if opts.xattrs:
-        postprocessors.append({'key': 'XAttrMetadata'})
     if opts.embedthumbnail:
         already_have_thumbnail = opts.writethumbnail or opts.write_all_thumbnails
         postprocessors.append({
@@ -276,6 +274,10 @@ def _real_main(argv=None):
         })
         if not already_have_thumbnail:
             opts.writethumbnail = True
+    # XAttrMetadataPP should be run after post-processors that may change file
+    # contents
+    if opts.xattrs:
+        postprocessors.append({'key': 'XAttrMetadata'})
     # Please keep ExecAfterDownload towards the bottom as it allows the user to modify the final file in any way.
     # So if the user is able to remove the file before your postprocessor runs it might cause a few problems.
     if opts.exec_cmd: