Không thể tải xuống video bằng youtube-dl ('sig error'), làm thế nào để sửa?


12

Tôi đã từng tải xuống video bằng công cụ dòng lệnh youtube-dl, từ hai ngày qua bất cứ khi nào tôi cố tải xuống bất kỳ video nào tôi đều gặp lỗi như hình dưới đây.

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

chuyện gì đang xảy ra vậy


Bạn có đứng sau một proxy?
việc

yup, một trong những tổ chức nơi tôi đang học và truy cập internet.
kernel_panic

Câu trả lời có hữu ích không?
việc

Câu trả lời:


20

Có chính xác cùng một vấn đề.

Đã cập nhật youtube-dl qua:

sudo youtube-dl -U

Chạy youtube-dl qua sudo

sudo youtube-dl và nó sẽ thông báo rằng họ đã thay đổi phân phối và cần cập nhật. Nhấn enter và bạn sẽ tốt để đi.


1

Bạn cần xuất cài đặt proxy của mình trước khi có thể sử dụng youtube-dlđể tải xuống video từ youtube. Để thực hiện việc này, xuất cài đặt proxy bằng cách sử dụng:

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/

Thay thế tên người dùng, mật khẩu, máy chủ lưu trữ và port_no bằng các biến tương ứng của bạn . Hãy nhớ thay thế bất kỳ ký tự đặc biệt nào, nếu có, trong tên người dùng hoặc mật khẩu của bạn bằng mã HTML của họ. Bỏ qua tên người dùng và mật khẩu nếu bạn không có và xuất chúng dưới dạng:

export HTTP_PROXY=http://host:port_no/

Vân vân.

Ví dụ:

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

Bạn cũng có thể viết nó vào ~/.bashrctập tin của bạn để tránh viết chúng nhiều lần cho các phiên trong tương lai.

Thử lại tải xuống video sau khi làm điều này.


1

Khi tôi cố gắng nâng cấp với sudo như được chỉ ra trong câu trả lời khác:

sudo youtube-dl -U

Tôi nhận được một thông báo nói rằng youtube-dl đã được cài đặt bằng trình quản lý gói và tôi nên sử dụng tương tự để nâng cấp nó. Nhưng tôi đã làm xong

sudo easy_install -U youtube-dl

Cuối cùng, chỉ cần sử dụng sudo để chạy nó đã hoạt động.

sudo youtube-dl

-1

Cài đặt youtube-dlvới sudo apt-get install youtube-dltừ dòng lệnh, sau đó sử dụng:

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

Hãy chắc chắn rằng bạn sử dụng sudotrước lệnh trên!

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.