Skip to content

Commit

Permalink
[downloader/external] Call ffmpeg with with HTTP_PROXY env variable s…
Browse files Browse the repository at this point in the history
…et (#9437)
  • Loading branch information
Sergey M․ committed May 9, 2016
1 parent 20cfdcc commit e62d9c5
Showing 1 changed file with 14 additions and 1 deletion.
15 changes: 14 additions & 1 deletion youtube_dl/downloader/external.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import re

from .common import FileDownloader
from ..compat import compat_setenv
from ..postprocessor.ffmpeg import FFmpegPostProcessor, EXT_TO_OUT_FORMATS
from ..utils import (
cli_option,
Expand Down Expand Up @@ -198,6 +199,18 @@ def _call_downloader(self, tmpfilename, info_dict):
'-headers',
''.join('%s: %s\r\n' % (key, val) for key, val in headers.items())]

env = None
proxy = self.params.get('proxy')
if proxy:
if not re.match(r'^[\da-zA-Z]+://', proxy):
proxy = 'http://%s' % proxy
# Since December 2015 ffmpeg supports -http_proxy option (see
# http://git.videolan.org/?p=ffmpeg.git;a=commit;h=b4eb1f29ebddd60c41a2eb39f5af701e38e0d3fd)
# We could switch to the following code if we are able to detect version properly
# args += ['-http_proxy', proxy]
env = os.environ.copy()
compat_setenv('HTTP_PROXY', proxy, env=env)

protocol = info_dict.get('protocol')

if protocol == 'rtmp':
Expand Down Expand Up @@ -239,7 +252,7 @@ def _call_downloader(self, tmpfilename, info_dict):

self._debug_cmd(args)

proc = subprocess.Popen(args, stdin=subprocess.PIPE)
proc = subprocess.Popen(args, stdin=subprocess.PIPE, env=env)
try:
retval = proc.wait()
except KeyboardInterrupt:
Expand Down

0 comments on commit e62d9c5

Please sign in to comment.