I used to download videos using youtube-dl command line tool, from the past two days whenever i try to download any video I get an error as shown below.
$ youtube-dl https://www.youtube.com/watch?v=bFew8mgQJ9o
[youtube] Setting language
[youtube] bFew8mgQJ9o: Downloading video webpage
[youtube] bFew8mgQJ9o: Downloading video info webpage
[youtube] bFew8mgQJ9o: Extracting video information
Traceback (most recent call last):
File "/usr/bin/youtube-dl", line 4645, in <module>
main()
File "/usr/bin/youtube-dl", line 4636, in main
_real_main()
File "/usr/bin/youtube-dl", line 4620, in _real_main
retcode = fd.download(all_urls)
File "/usr/bin/youtube-dl", line 869, in download
ie.extract(url)
File "/usr/bin/youtube-dl", line 1135, in extract
return self._real_extract(url)
File "/usr/bin/youtube-dl", line 1406, in _real_extract
url_map = dict((ud['itag'][0], ud['url'][0] + '&signature=' + ud['sig'][0]) for ud in url_data)
File "/usr/bin/youtube-dl", line 1406, in <genexpr>
url_map = dict((ud['itag'][0], ud['url'][0] + '&signature=' + ud['sig'][0]) for ud in url_data)
KeyError: 'sig'
whats going on?
Had exactly the same problem.
Updated youtube-dl via:
Run youtube-dl via sudo
sudo youtube-dl
and it will inform that they have changed distribution and need to update. Press enter and you should be good to go.You need to export your proxy settings before you can use
youtube-dl
to download videos from youtube. To do this, export proxy settings using:Replace username, password, host and port_no with your respective variables. Remember to replace any special characters, if any, in your username or password with their HTML codes. Ignore username and password if you don't have one and export them as:
etc.
For ex:
You can also write this to your
~/.bashrc
file to avoid writing them again and again for future sessions.Retry downloading videos after doing this.
When I tried to upgrade with sudo as indicated in the other answer:
I got a message saying that youtube-dl had been installed using a package manager and I should use the same to upgrade it. But I had already done
In the end, just using sudo to run it worked.
Install
youtube-dl
withsudo apt-get install youtube-dl
from command-line, then use:Make sure, that you use
sudo
before the above command!