16

i want to download youtube video through youtube-dl through proxy server but it shows authentication required

code:

http_proxy="http://username:password@proxy:port/" youtube-dl url

it shows authentication error

4 Answers 4

15
proxychains youtube-dl [options] LINK

proxychans uses the tor service by default, if you have your own proxy, edit the last line of the /etc/proxychains.conf file.


sudo apt-get install proxychains tor obfsproxy

If you want to use tor, configure it to use obfs2.

2
  • 1
    My installations of proxychains-ng worked with Tor out of the box. What makes you say that we should configure it to use obfs2? (Perhaps in 2013, proxychains needed more configuration?)
    – palswim
    Feb 6, 2018 at 5:45
  • yes it works with proxychains tor out of the box. and 17MB less disk space. Mar 6, 2018 at 23:52
11

you can use proxy option for command.

youtube-dl --proxy socks5://127.0.0.1:1080 url

If you want to use a proxy for all further invocations, create a configuration file

Linux/OSX: ~/.config/youtube-dl/config

Windows: %APPDATA%\youtube-dl\config.txt

with the contents

--proxy socks5://127.0.0.1:1080
7


for current version of youtube-dl you can use switch --proxy

e.g.
$youtube-dl --proxy http://user:password@your_proxy.com:port url

works for me just fine

5

That syntax of invokation is now deprecated.

From the help page:

--proxy URL                      Use the specified HTTP/HTTPS proxy. Pass in an empty string (--proxy "") for direct connection
--cn-verification-proxy URL      Use this proxy to verify the IP address for some Chinese sites. The default proxy specified by --proxy (or none, if the options is not present) is used for the actual downloading.

So unless you're using Chinese proxies, the command should be:

youtube-dl [OPTIONS] --proxy 'http(s)://PROXY_URL:PROXY_PORT' URL

Choosing between http or https depending on the proxy type.

You could also try testing your proxy using urllib2 directly:

#!/usr/bin/python
import urllib2
import sys
url = sys.argv[1]
response = urllib2.urlopen(url)
html_string = response.read()
print html_string

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .