[external/curl] respect more downloader options and display progress
authorRemita Amine <remitamine@gmail.com>
Fri, 12 Aug 2016 11:30:02 +0000 (12:30 +0100)
committerRemita Amine <remitamine@gmail.com>
Fri, 12 Aug 2016 11:30:02 +0000 (12:30 +0100)
youtube_dl/downloader/external.py
youtube_dl/utils.py

index fae2450248494a70f237a65d07a4bedcfddaadeb..f0c30007f7dd94991eca2e6f15dd5eebcf3e5e3b 100644 (file)
@@ -96,6 +96,12 @@ class CurlFD(ExternalFD):
         cmd = [self.exe, '--location', '-o', tmpfilename]
         for key, val in info_dict['http_headers'].items():
             cmd += ['--header', '%s: %s' % (key, val)]
+        cmd += self._bool_option('--continue-at', 'continuedl', '-', '0')
+        cmd += self._valueless_option('--silent', 'noprogress')
+        cmd += self._valueless_option('--verbose', 'verbose')
+        cmd += self._option('--limit-rate', 'ratelimit')
+        cmd += self._option('--retry', 'retries')
+        cmd += self._option('--max-filesize', 'max_filesize')
         cmd += self._option('--interface', 'source_address')
         cmd += self._option('--proxy', 'proxy')
         cmd += self._valueless_option('--insecure', 'nocheckcertificate')
@@ -103,6 +109,15 @@ class CurlFD(ExternalFD):
         cmd += ['--', info_dict['url']]
         return cmd
 
+    def _call_downloader(self, tmpfilename, info_dict):
+        cmd = [encodeArgument(a) for a in self._make_cmd(tmpfilename, info_dict)]
+
+        self._debug_cmd(cmd)
+
+        p = subprocess.Popen(cmd)
+        p.communicate()
+        return p.returncode
+
 
 class AxelFD(ExternalFD):
     AVAILABLE_OPT = '-V'
index a03f7184ddf5b8303be799e9857d1416bd7d4aec..b3b687a314681de17547104f7f99e883a312c322 100644 (file)
@@ -2410,6 +2410,8 @@ def dfxp2srt(dfxp_data):
 
 def cli_option(params, command_option, param):
     param = params.get(param)
+    if param:
+        param = compat_str(param)
     return [command_option, param] if param is not None else []