aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYen Chi Hsuan <yan12125@gmail.com>2016-09-30 00:49:14 +0800
committerYen Chi Hsuan <yan12125@gmail.com>2016-10-01 14:47:20 +0800
commitd7753d194803086d97ffe47f022c47c906ebcc71 (patch)
treee4169a7301fe2c24747cd334ff2574174364a022
parenta1001f47fc19adf983859bb281f08a09bd7f7e9b (diff)
downloadyoutube-dl-d7753d194803086d97ffe47f022c47c906ebcc71.tar.xz
[downloader/http] Use write_xattr function for --xattr-set-filesize
-rw-r--r--youtube_dl/__init__.py6
-rw-r--r--youtube_dl/downloader/http.py8
2 files changed, 5 insertions, 9 deletions
diff --git a/youtube_dl/__init__.py b/youtube_dl/__init__.py
index 1cf3140a0..72141b983 100644
--- a/youtube_dl/__init__.py
+++ b/youtube_dl/__init__.py
@@ -283,12 +283,6 @@ def _real_main(argv=None):
'key': 'ExecAfterDownload',
'exec_cmd': opts.exec_cmd,
})
- if opts.xattr_set_filesize:
- try:
- import xattr
- xattr # Confuse flake8
- except ImportError:
- parser.error('setting filesize xattr requested but python-xattr is not available')
external_downloader_args = None
if opts.external_downloader_args:
external_downloader_args = compat_shlex_split(opts.external_downloader_args)
diff --git a/youtube_dl/downloader/http.py b/youtube_dl/downloader/http.py
index f8b69d186..11294d106 100644
--- a/youtube_dl/downloader/http.py
+++ b/youtube_dl/downloader/http.py
@@ -13,6 +13,9 @@ from ..utils import (
encodeFilename,
sanitize_open,
sanitized_Request,
+ write_xattr,
+ XAttrMetadataError,
+ XAttrUnavailableError,
)
@@ -179,9 +182,8 @@ class HttpFD(FileDownloader):
if self.params.get('xattr_set_filesize', False) and data_len is not None:
try:
- import xattr
- xattr.setxattr(tmpfilename, 'user.ytdl.filesize', str(data_len))
- except(OSError, IOError, ImportError) as err:
+ write_xattr(tmpfilename, 'user.ytdl.filesize', str(data_len))
+ except (XAttrUnavailableError, XAttrMetadataError) as err:
self.report_error('unable to set filesize xattr: %s' % str(err))
try: