Videos können mit youtube-dl nicht heruntergeladen werden ('sig error'). Wie korrigiere ich?


12

Ich habe in den letzten zwei Tagen Videos mithilfe des Befehlszeilentools youtube-dl heruntergeladen, wenn ich versuche, ein Video herunterzuladen, bei dem ein Fehler auftritt (siehe unten).

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

Was ist los?


Stehst du hinter einem Proxy?
Jobin

yup, einer, der der Institution gehört, in der ich studiere und auf das Internet zugreife.
kernel_panic

War die Antwort hilfreich?
Jobin

Antworten:


20

Hatte genau das gleiche Problem.

Youtube-dl aktualisiert über:

sudo youtube-dl -U

Führen Sie youtube-dl über sudo aus

sudo youtube-dl und es wird informiert, dass sie die Verteilung geändert haben und aktualisiert werden müssen. Drücken Sie die Eingabetaste und Sie sollten fertig sein.


1

Sie müssen Ihre Proxy-Einstellungen exportieren, bevor Sie youtube-dlVideos von YouTube herunterladen können. Exportieren Sie dazu die Proxy-Einstellungen mit:

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/

Ersetzen Sie Benutzername, Passwort, Host und port_no durch Ihre jeweiligen Variablen. Denken Sie daran, Sonderzeichen in Ihrem Benutzernamen oder Passwort durch deren HTML-Codes zu ersetzen. Ignorieren Sie den Benutzernamen und das Passwort, falls Sie keines haben, und exportieren Sie sie wie folgt:

export HTTP_PROXY=http://host:port_no/

etc.

Zum Beispiel:

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

Sie können dies auch in Ihre ~/.bashrcDatei schreiben , um zu vermeiden, dass Sie sie für zukünftige Sitzungen immer wieder schreiben.

Versuchen Sie anschließend erneut, Videos herunterzuladen.


1

Als ich versuchte, ein Upgrade mit sudo durchzuführen, wie in der anderen Antwort angegeben:

sudo youtube-dl -U

Ich erhielt die Nachricht, dass youtube-dl mit einem Paketmanager installiert wurde und ich sollte dasselbe verwenden, um es zu aktualisieren. Aber ich hatte es schon getan

sudo easy_install -U youtube-dl

Am Ende funktionierte es nur mit sudo.

sudo youtube-dl

-1

Installieren Sie youtube-dlmit sudo apt-get install youtube-dlvon der Befehlszeile und verwenden Sie dann:

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

Stellen Sie sicher, dass Sie sudovor dem obigen Befehl verwenden!

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.