ker*_*nic 12 python youtube-dl
我曾经使用 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'
Run Code Online (Sandbox Code Playgroud)
这是怎么回事?
小智 20
有完全相同的问题。
通过以下方式更新 youtube-dl:
sudo youtube-dl -U
Run Code Online (Sandbox Code Playgroud)
通过 sudo 运行 youtube-dl
sudo youtube-dl
它会通知他们已经更改了分发并需要更新。按回车键,你应该可以开始了。
您需要先导出代理设置,然后才能用于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/
Run Code Online (Sandbox Code Playgroud)
将用户名、密码、主机和 port_no 替换为您各自的变量。请记住将用户名或密码中的任何特殊字符(如果有)替换为 HTML 代码。如果您没有用户名和密码,请忽略用户名和密码,并将其导出为:
export HTTP_PROXY=http://host:port_no/
Run Code Online (Sandbox Code Playgroud)
ETC。
例如:
export HTTP_PROXY=http://123431212:mypassword@192.168.1.2:3128/
Run Code Online (Sandbox Code Playgroud)
您还可以将其写入~/.bashrc
文件,以避免在将来的会话中一次又一次地写入它们。
执行此操作后重新尝试下载视频。
归档时间: |
|
查看次数: |
23639 次 |
最近记录: |