Kiedyś pobierałem filmy za pomocą narzędzia wiersza polecenia youtube-dl, od dwóch dni za każdym razem, gdy próbuję pobrać dowolny film, pojawia się błąd, jak pokazano poniżej.
$ 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'
co się dzieje?
python
youtube-dl
kernel_panic
źródło
źródło
Odpowiedzi:
Miał dokładnie ten sam problem.
Zaktualizowano youtube-dl przez:
Uruchom youtube-dl przez sudo
sudo youtube-dl
i poinformuje, że zmieniły dystrybucję i wymagają aktualizacji. Naciśnij enter i powinieneś iść.źródło
Musisz wyeksportować ustawienia serwera proxy, aby móc
youtube-dl
pobierać filmy z YouTube. Aby to zrobić, wyeksportuj ustawienia proxy za pomocą:Wymień nazwę użytkownika, hasło, gospodarza i port_no ze swoimi odpowiednimi zmiennymi. Pamiętaj, aby zastąpić wszelkie znaki specjalne w nazwie użytkownika lub haśle kodem HTML. Zignoruj nazwę użytkownika i hasło, jeśli go nie masz, i wyeksportuj je jako:
itp.
Na przykład:
Możesz również napisać to do swojego
~/.bashrc
pliku, aby nie zapisywać ich wielokrotnie w przyszłych sesjach.Spróbuj ponownie pobrać filmy po wykonaniu tej czynności.
źródło
Kiedy próbowałem dokonać aktualizacji za pomocą sudo, jak wskazano w drugiej odpowiedzi:
Dostałem wiadomość, że youtube-dl został zainstalowany przy użyciu menedżera pakietów i powinienem go użyć do aktualizacji. Ale już to zrobiłem
Na koniec wystarczyło użyć sudo, aby go uruchomić.
źródło
Zainstaluj za
youtube-dl
pomocąsudo apt-get install youtube-dl
wiersza polecenia, a następnie użyj:Upewnij się, że używasz
sudo
przed powyższym poleceniem!źródło