Tidak dapat mengunduh video menggunakan youtube-dl ('sig error'), bagaimana cara memperbaikinya?


12

Saya biasa mengunduh video menggunakan alat baris perintah youtube-dl, dari dua hari terakhir setiap kali saya mencoba mengunduh video apa pun, saya mendapatkan kesalahan seperti yang ditunjukkan di bawah ini.

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

apa yang sedang terjadi?


Apakah Anda di belakang proxy?
jobin

yup, salah satu milik lembaga tempat saya belajar dan mengakses internet.
kernel_panic

Apakah jawabannya bermanfaat?
jobin

2
kemungkinan duplikat dari youtube-dl berhenti bekerja
Andrea Corbellini

Jawaban:


20

Punya masalah yang sama persis.

Diperbarui youtube-dl via:

sudo youtube-dl -U

Jalankan youtube-dl via sudo

sudo youtube-dl dan itu akan menginformasikan bahwa mereka telah mengubah distribusi dan perlu memperbarui. Tekan enter dan Anda harus siap.


1

Anda perlu mengekspor pengaturan proxy Anda sebelum dapat digunakan youtube-dluntuk mengunduh video dari youtube. Untuk melakukan ini, ekspor pengaturan proxy menggunakan:

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/

Ganti nama pengguna, kata sandi, host dan port_no dengan variabel Anda masing - masing. Ingatlah untuk mengganti karakter khusus apa pun, jika ada, di nama pengguna atau kata sandi Anda dengan kode HTML mereka. Abaikan nama pengguna dan kata sandi jika Anda tidak memiliki dan ekspor sebagai:

export HTTP_PROXY=http://host:port_no/

dll.

Misalnya:

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

Anda juga dapat menulis ini ke ~/.bashrcfile Anda untuk menghindari menulisnya lagi dan lagi untuk sesi mendatang.

Coba lagi mengunduh video setelah melakukan ini.


1

Ketika saya mencoba memutakhirkan dengan sudo seperti yang ditunjukkan dalam jawaban lain:

sudo youtube-dl -U

Saya mendapat pesan yang mengatakan bahwa youtube-dl telah diinstal menggunakan manajer paket dan saya harus menggunakan yang sama untuk memutakhirkannya. Tapi saya sudah melakukannya

sudo easy_install -U youtube-dl

Pada akhirnya, hanya menggunakan sudo untuk menjalankannya bekerja.

sudo youtube-dl

-1

Instal youtube-dldengan sudo apt-get install youtube-dldari command-line, lalu gunakan:

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

Pastikan, bahwa Anda menggunakan sudosebelum perintah di atas!

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.