Hus*_*ail 5 python youtube macos
我正在尝试使用以下命令从 YouTube 视频中获取音频:
youtube-dl --extract-audio --audio-format mp3 [video link]
Run Code Online (Sandbox Code Playgroud)
每次我尝试在 macOS (High Sierra v10.13.2) 的终端中运行此命令时,都会出现以下错误:
ERROR: Unable to download webpage: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749)> (caused by URLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749)'),))
Run Code Online (Sandbox Code Playgroud)
注意:我安装了 youtube-dl,还有 Python 2.7 和 Python 3.6(如果有帮助的话)
如果有人能帮我解决这个问题,那就太好了。
小智 15
我已经遇到这个问题一段时间了,但一直无法解决。所以我做了临时修复
[ 终端 ]
--no-check-certificate
可悲的是,这只会将您的 HTTPS youtube-dl 请求变成纯文本 HTTP 请求。
经过一番挖掘,我发现这是一个 Python v3.6 问题。
https://bugs.python.org/issue29065#msg283984
如果您使用 VIM 或任何编辑来检查
vim '/Applications/Python 3.6/ReadMe.rtf'
Run Code Online (Sandbox Code Playgroud)
如果您查找(证书验证和 OpenSSL\),您会看到...
在安装 Python v3.6 期间,他们决定使用他们自己的 OpenSSL 私有版本,不幸的是,这本身不适用于默认的根证书。然而,它带有一个命令脚本来安装一个精心策划的默认根证书包。
该错误向我推荐了 python certifi模块。这些模块似乎很适合查找您的证书所在的位置。
[ Python v3.6 ]
进口证明
certifi.where()
'/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/certifi/cacert.pem'
这真的只是告诉了它在哪里,但为了以防万一,我使用 python 终端解释器做了它。
[ 终端 ]
打开“/Applications/Python 3.6/Install Certificates.command”
我个人这是我的最终反应......
[ 终端 ]
-- pip install --upgrade 证书
要求已经是最新的:/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages 中的 certifi
-- 删除任何现有的文件或链接
-- 创建 certifi 证书包的符号链接
-- 设置权限
回溯(最近一次调用最后一次):
文件“”,第 44 行,在
文件“”,第 40 行,在 main
PermissionError: [Errno 1] 不允许操作:'cert.pem'
登出
正在保存会话...
...复制共享历史记录...
...保存历史记录...截断历史记录文件...
...完全的。
[过程完成]
但它奏效了,我不必再处理 SSL 验证失败的问题了!(-.-)\ /(-.-)/
| 归档时间: |
|
| 查看次数: |
7122 次 |
| 最近记录: |