+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,
- subprocess_check_output
+ version_tuple,
)
# try the pyxattr module...
import xattr
+ # Unicode arguments are not supported in python-pyxattr until
+ # version 0.5.0
+ # See https://github.com/rg3/youtube-dl/issues/5498
+ pyxattr_required_version = '0.5.0'
+ if version_tuple(xattr.__version__) < version_tuple(pyxattr_required_version):
+ self._downloader.report_warning(
+ 'python-pyxattr is detected but is too old. '
+ 'youtube-dl requires %s or above while your version is %s. '
+ 'Falling back to other xattr implementations' % (
+ pyxattr_required_version, xattr.__version__))
+
+ raise ImportError
+
def write_xattr(path, key, value):
return xattr.setxattr(path, key, value)
byte_value = value.encode('utf-8')
write_xattr(filename, xattrname, byte_value)
- return True, info
+ return [], info
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
-
+ return [], info