web-dev-qa-db-fra.com

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

J'avais l'habitude de télécharger des vidéos à l'aide de l'outil de ligne de commande youtube-dl, ces deux derniers jours, chaque fois que j'essaie de télécharger une vidéo, le message d'erreur ci-dessous s'affiche.

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

12
kernel_panic

Avait exactement le même problème.

Mis à jour youtube-dl via:

Sudo youtube-dl -U

Exécutez youtube-dl via Sudo

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

20
Kristian Jensen

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

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 numéro de port par votre variables respectives. N'oubliez pas de remplacer tous les caractères spéciaux, le cas échéant, de votre nom d'utilisateur ou de 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.

Pour ex:

export HTTP_PROXY=http://123431212:[email protected]:3128/

Vous pouvez également écrire ceci dans votre fichier ~/.bashrc pour éviter de les écrire encore et encore lors de sessions futures.

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

1
jobin

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 indiquant que YouTube-dl avait été installé à l'aide d'un gestionnaire de paquets et que je devrais utiliser le même logiciel pour le mettre à niveau. Mais j'avais déjà fait

Sudo easy_install -U youtube-dl

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

Sudo youtube-dl
1
sureshvv