diff options
| -rw-r--r-- | youtube_dl/downloader/external.py | 27 | 
1 files changed, 25 insertions, 2 deletions
| diff --git a/youtube_dl/downloader/external.py b/youtube_dl/downloader/external.py index c05596255..7ebe40096 100644 --- a/youtube_dl/downloader/external.py +++ b/youtube_dl/downloader/external.py @@ -97,13 +97,22 @@ class ExternalFD(FileDownloader):          self._debug_cmd(cmd, subprocess_encoding)          p = subprocess.Popen( -            cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) -        stdout, stderr = p.communicate() +            cmd, stderr=subprocess.PIPE) +        _, stderr = p.communicate()          if p.returncode != 0:              self.to_stderr(stderr)          return p.returncode +class CurlFD(ExternalFD): +    def _make_cmd(self, tmpfilename, info_dict): +        cmd = [self.exe, '-o', tmpfilename] +        for key, val in self._calc_headers(info_dict).items(): +            cmd += ['--header', '%s: %s' % (key, val)] +        cmd += ['--', info_dict['url']] +        return cmd + +  class WgetFD(ExternalFD):      def _make_cmd(self, tmpfilename, info_dict):          cmd = [self.exe, '-O', tmpfilename, '-nv', '--no-cookies'] @@ -113,6 +122,20 @@ class WgetFD(ExternalFD):          return cmd +class Aria2cFD(ExternalFD): +    def _make_cmd(self, tmpfilename, info_dict): +        cmd = [ +            self.exe, '-c', +            '--min-split-size', '1M', '--max-connection-per-server', '4'] +        dn = os.path.dirname(tmpfilename) +        if dn: +            cmd += ['--dir', dn] +        cmd += ['--out', os.path.basename(tmpfilename)] +        for key, val in self._calc_headers(info_dict).items(): +            cmd += ['--header', '%s: %s' % (key, val)] +        cmd += ['--', info_dict['url']] +        return cmd +  _BY_NAME = dict(      (klass.get_basename(), klass)      for name, klass in globals().items() | 
