ไม่สามารถดาวน์โหลดวิดีโอโดยใช้ youtube-dl ('ข้อผิดพลาด sig') วิธีการแก้ไข?


12

ฉันเคยดาวน์โหลดวิดีโอโดยใช้เครื่องมือบรรทัดคำสั่ง youtube-dl จากสองวันที่ผ่านมาเมื่อใดก็ตามที่ฉันพยายามดาวน์โหลดวิดีโอใด ๆ ที่ฉันพบข้อผิดพลาดดังแสดงด้านล่าง

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

เกิดอะไรขึ้น?


คุณอยู่หลังพรอกซีหรือไม่?
jobin

ใช่หนึ่งที่เป็นของสถาบันที่ฉันกำลังศึกษาและเข้าถึงอินเทอร์เน็ต
kernel_panic

คำตอบมีประโยชน์หรือไม่
jobin

2
สำเนาที่เป็นไปได้ของyoutube-dl หยุดทำงาน
Andrea Corbellini

คำตอบ:


20

มีปัญหาเดียวกัน

อัปเดต youtube-dl ผ่านทาง:

sudo youtube-dl -U

เรียกใช้ youtube-dl ผ่าน sudo

sudo youtube-dl และจะแจ้งให้ทราบว่ามีการเปลี่ยนแปลงการกระจายและจำเป็นต้องอัปเดต กด Enter และคุณควรจะไปดี


1

คุณต้องส่งออกการตั้งค่าพร็อกซีของคุณก่อนจึงจะสามารถyoutube-dlดาวน์โหลดวิดีโอจาก youtube ในการดำเนินการนี้ให้ส่งออกการตั้งค่าพร็อกซีโดยใช้:

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/

แทนที่ชื่อผู้ใช้รหัสผ่านโฮสต์และ port_no ด้วยตัวแปรตามลำดับของคุณ อย่าลืมแทนที่อักขระพิเศษใด ๆ ในชื่อผู้ใช้หรือรหัสผ่านของคุณด้วยรหัส HTML ละเว้นชื่อผู้ใช้และรหัสผ่านหากคุณไม่มีและส่งออกเป็น:

export HTTP_PROXY=http://host:port_no/

เป็นต้น

ตัวอย่างเช่น:

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

คุณยังสามารถเขียนสิ่งนี้ลงใน~/.bashrcไฟล์ของคุณเพื่อหลีกเลี่ยงการเขียนอีกครั้งและอีกครั้งสำหรับเซสชันในอนาคต

ลองดาวน์โหลดวิดีโอหลังจากทำเช่นนี้


1

เมื่อฉันพยายามอัพเกรดด้วย sudo ตามที่ระบุในคำตอบอื่น ๆ :

sudo youtube-dl -U

ฉันได้รับข้อความแจ้งว่า youtube-dl ได้รับการติดตั้งโดยใช้ตัวจัดการแพคเกจและฉันควรใช้อันเดียวกันเพื่ออัปเกรด แต่ฉันได้ทำไปแล้ว

sudo easy_install -U youtube-dl

ในท้ายที่สุดเพียงแค่ใช้ sudo เพื่อเรียกใช้งานได้

sudo youtube-dl

-1

ติดตั้งyoutube-dlด้วยsudo apt-get install youtube-dlจากบรรทัดคำสั่งจากนั้นใช้:

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

ตรวจสอบให้แน่ใจว่าคุณใช้sudoก่อนคำสั่งข้างต้น!

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.