[util] Move compatibility functions out of util
[youtube-dl] / youtube_dl / postprocessor / xattrpp.py
index 4317ba8366622ce7133f1d5234d13b2eb160c998..b5cae41c8cd061a494a722c1db4261e3eca597b8 100644 (file)
@@ -3,10 +3,12 @@ import subprocess
 import sys
 
 from .common import PostProcessor
+from ..compat import (
+    subprocess_check_output
+)
 from ..utils import (
     check_executable,
     hyphenate_date,
-    preferredencoding,
 )
 
 
@@ -40,12 +42,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 +60,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.