Impossible de télécharger des vidéos en utilisant youtube-dl ('erreur sig'), comment corriger?


12

J'ai utilisé pour télécharger des vidéos à l'aide de l'outil de ligne de commande youtube-dl, au cours des deux derniers jours, chaque fois que j'essaie de télécharger une vidéo, j'obtiens une erreur comme indiqué ci-dessous.

$ 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'

Que se passe-t-il?


Êtes-vous derrière un proxy?
jobin

yup, celui qui appartient à l'institution où j'étudie et accède à Internet.
kernel_panic

La réponse était-elle utile?
jobin

Réponses:


20

Eu exactement le même problème.

Mise à jour de YouTube-DL via:

sudo youtube-dl -U

Exécutez youtube-dl via sudo

sudo youtube-dl et il informera qu'ils ont changé de distribution et doivent être mis à jour. Appuyez sur Entrée et vous devriez être prêt à partir.


1

Vous devez exporter vos paramètres de proxy avant de pouvoir utiliser youtube-dlpour télécharger des vidéos à partir de YouTube. Pour ce faire, exportez les paramètres de proxy à l'aide de:

export http_proxy=http://username:password@host:port_no/
export https_proxy=https://username:password@host:port_no/
export HTTP_PROXY=http://username:password@host:port_no/
export HTTPS_PROXY=https://username:password@host:port_no/

Remplacez le nom d'utilisateur, le mot de passe, l'hôte et le port_no par vos variables respectives. N'oubliez pas de remplacer tous les caractères spéciaux, le cas échéant, dans votre nom d'utilisateur ou votre mot de passe par leurs codes HTML. Ignorez le nom d'utilisateur et le mot de passe si vous n'en avez pas et exportez-les en tant que:

export HTTP_PROXY=http://host:port_no/

etc.

Par exemple:

export HTTP_PROXY=http://123431212:mypassword@192.168.1.2:3128/

Vous pouvez également l'écrire dans votre ~/.bashrcfichier pour éviter de les écrire encore et encore pour les sessions futures.

Réessayez de télécharger des vidéos après cela.


1

Lorsque j'ai essayé de mettre à niveau avec sudo comme indiqué dans l'autre réponse:

sudo youtube-dl -U

J'ai reçu un message me disant que youtube-dl avait été installé à l'aide d'un gestionnaire de paquets et que je devrais l'utiliser pour le mettre à niveau. Mais j'avais déjà fait

sudo easy_install -U youtube-dl

En fin de compte, utiliser simplement sudo pour l'exécuter a fonctionné.

sudo youtube-dl

-1

Installez youtube-dlavec sudo apt-get install youtube-dldepuis la ligne de commande, puis utilisez:

sudo youtube-dl "https://www.youtube.com/watch?v=bFew8mgQJ9o"

Assurez-vous que vous utilisez sudoavant la commande ci-dessus!

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.