46

It is considered very useful to utilize youtube-dl software for downloading youtubes.

A message is seen and it stopped working, which is following.

ERROR: Signature extraction failed: Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/youtube_dl/extractor/youtube.py", line 479, in _decrypt_signature
    video_id, player_url, s
  File "/usr/lib/python2.7/dist-packages/youtube_dl/extractor/youtube.py", line 383, in _extract_signature_function
    res = self._parse_sig_js(code)
  File "/usr/lib/python2.7/dist-packages/youtube_dl/extractor/youtube.py", line 454, in _parse_sig_js
    u'Initial JS player signature function name')
  File "/usr/lib/python2.7/dist-packages/youtube_dl/extractor/common.py", line 391, in _search_regex
    raise RegexNotFoundError(u'Unable to extract %s' % _name)
RegexNotFoundError: Unable to extract Initial JS player signature function name; please report this issue on https://yt-dl.org/bug . Be sure to call youtube-dl with the --verbose flag and include its complete output. Make sure you are using the latest version; type  youtube-dl -U  to update.
; please report this issue on https://yt-dl.org/bug . Be sure to call youtube-dl with the --verbose flag and include its complete output. Make sure you are using the latest version; type  youtube-dl -U  to update.

What should I do to proceed?

  • 1
    It clearly states in the message: "please report this issue on yt-dl.org/bug" So why not do that? – Rinzwind Mar 18 '15 at 9:53
  • 3
    Make sure you are using the latest version; type youtube-dl -U to update. Did you do that? – David Foerster Mar 18 '15 at 10:28
  • Dear David Foerster, I tried and got a message 'It looks like you installed youtube-dl with a package manager, pip, setup.py or a tarball. Please use that to update.' – Ohmygirl Mar 18 '15 at 11:34
  • 2
    @HELLOVENUS You're right youtube-dl -U doesn't work anymore. The instructions for updating youtube-dl to the latest version are at: youtube-dl is not working. btw it also works if you use pip install --upgrade youtube-dl instead of pip install --upgrade youtube_dl and it also works for a local install (i.e. without using sudo) done inside a Python virtual environment. – karel Mar 18 '15 at 12:39
70

You are getting this error:

Unable to extract Initial JS player signature function name

...because youtube-dl is not up-to-date. Google has been changing the way to access YouTube videos more frequently now than was the case a few years ago, so in order to keep youtube-dl up-to-date, it has to be updated more frequently too. To install the latest version of youtube-dl open the terminal and type:

sudo apt remove youtube-dl  
sudo apt install python3-pip
python3 -m pip install youtube-dl

To upgrade youtube-dl to the latest version:

sudo snap install youtube-dl # start with snap run youtube-dl  

or

sudo python3 -m pip install --upgrade youtube-dl    

It's crazy how frequently Google has been changing the code for accessing videos on YouTube. I seem to have remembered updating youtube-dl only a couple of month's ago, but it still couldn't download the selected video until I updated it.

youtube-dl is a Python program, so you can also locally install the latest version of youtube-dl in a Python virtual environment. For information about how to setup and use a Python virtual environment see How to set up and use a virtual python environment in Ubuntu?.

| improve this answer | |
  • Didn't work for me :-( – Philippe Gachoud Nov 9 '18 at 10:58
  • 2
    For me I had to uninstall first "sudo apt-get remove youtube-dl" and then use the command to install with pip – Diego Andrés Díaz Espinoza Dec 22 '18 at 13:16
6

The only way I was to get it working was the latest version (for me on debian) with

sudo wget https://yt-dl.org/latest/youtube-dl -O /usr/local/bin/youtube-dl
sudo chmod a+x /usr/local/bin/youtube-dl
hash -r

from the github repo

| improve this answer | |
3

It once happened to me. As they said on comments you must update your system or just youtube-dl. Also is good use quotes as follow in this example:

youtube-dl "https://www.youtube.com/watch?v=n6AL-WpgoFw"
| improve this answer | |
  • This character ¨ you used in your post is not visible. replace it with ' or ". – afzalex Jan 11 '17 at 6:17
  • worked for me ;) – Prateek Joshi May 6 '17 at 14:00
2

I had the same problem and this solved it

 sudo -H pip install --upgrade youtube-dl

and try to put the link into "link"

| improve this answer | |
1

Only this way is working for me!

When I trip every time I take the new music, and here is how to install youtube-dl from pip.

If you install it from repo, it cannot download the music, always complains!. So use this to download spongebob relaxing masterpeace:

!pip install --upgrade youtube-dl 
!youtube-dl -x --audio-format mp3 https://www.youtube.com/watch?v=oq526_37wc0
| improve this answer | |
0

None of these answers worked for me. I got this thing work by using the instruction given in the error:-

sudo youtube-dl -U

I don't know the exact reason for why this way of update worked and not that upgrade command..

| improve this answer | |
  • sudo youtube-dl -U didn't work on Ubuntu 18.04. It gave these results: sudo youtube-dl -U Usage: youtube-dl [OPTIONS] URL [URL...] youtube-dl: error: youtube-dl's self-update mechanism is disabled on Debian. Please update youtube-dl using apt(8). See https://packages.debian.org/sid/youtube-dl for the latest packaged version. however sudo snap install youtube-dl-casept did work on 18.04. – karel Nov 10 '18 at 9:14

Not the answer you're looking for? Browse other questions tagged or ask your own question.