Merge remote-tracking branch 'Dineshs91/f4m-2.0'
[youtube-dl] / youtube_dl / postprocessor / xattrpp.py
index 4317ba8366622ce7133f1d5234d13b2eb160c998..f6c63fe97545d86947ef1ef4bf2d70e9ea7144be 100644 (file)
@@ -1,12 +1,16 @@
+from __future__ import unicode_literals
+
 import os
 import subprocess
 import sys
 
 from .common import PostProcessor
+from ..compat import (
+    subprocess_check_output
+)
 from ..utils import (
     check_executable,
     hyphenate_date,
-    preferredencoding,
 )
 
 
@@ -40,12 +44,11 @@ class XAttrMetadataPP(PostProcessor):
                 # Write xattrs to NTFS Alternate Data Streams:
                 # http://en.wikipedia.org/wiki/NTFS#Alternate_data_streams_.28ADS.29
                 def write_xattr(path, key, value):
-                    assert(key.find(":") < 0)
-                    assert(path.find(":") < 0)
-                    assert(os.path.exists(path))
+                    assert ':' not in key
+                    assert os.path.exists(path)
 
                     ads_fn = path + ":" + key
-                    with open(ads_fn, "w") as f:
+                    with open(ads_fn, "wb") as f:
                         f.write(value)
             else:
                 user_has_setfattr = check_executable("setfattr", ['--version'])
@@ -59,7 +62,7 @@ class XAttrMetadataPP(PostProcessor):
                         elif user_has_xattr:
                             cmd = ['xattr', '-w', key, value, path]
 
-                        subprocess.check_output(cmd)
+                        subprocess_check_output(cmd)
 
                 else:
                     # On Unix, and can't find pyxattr, setfattr, or xattr.
@@ -107,4 +110,3 @@ class XAttrMetadataPP(PostProcessor):
         except (subprocess.CalledProcessError, OSError):
             self._downloader.report_error("This filesystem doesn't support extended attributes. (You may have to enable them in your /etc/fstab)")
             return False, info
-