使用Fiddler Classic拦截YTMusic脚本流量时遇SSL证书验证失败
解决YTMusic库搭配Fiddler时的SSL证书验证错误
针对你遇到的问题,这里提供三种无需修改YTMusic库源码的解决办法:
1. 全局禁用SSL证书验证(快速临时方案)
在你的Python脚本开头添加以下代码,强制所有HTTP请求跳过SSL验证:
import requests from requests.packages.urllib3.exceptions import InsecureRequestWarning # 关闭验证警告 requests.packages.urllib3.disable_warnings(InsecureRequestWarning) # 全局设置不验证SSL证书 requests.Session().verify = False # 之后再导入YTMusic库 from ytmusicapi import YTMusic ytmusic = YTMusic('headers_auth.json') blah = ytmusic.get_playlist('blah')
2. 将Fiddler证书导入Python信任列表(安全持久方案)
这是更合规的做法,避免全局禁用SSL带来的安全风险:
- 打开Fiddler,依次点击
Tools > Options > HTTPS,点击Actions > Export Root Certificate to Desktop,导出证书文件(默认名为FiddlerRoot.cer) - 运行以下命令找到Python的根证书文件路径:
python -c "import certifi; print(certifi.where())" - 用文本编辑器打开输出的
cacert.pem文件,把FiddlerRoot.cer中从-----BEGIN CERTIFICATE-----到-----END CERTIFICATE-----的全部内容,复制粘贴到cacert.pem的末尾,保存文件 - 重启你的Python脚本即可正常运行
3. 通过环境变量指定信任Fiddler证书(无需修改代码)
在Windows系统中设置环境变量,让Python自动信任Fiddler证书:
- 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
- 在系统变量中点击「新建」,变量名填
REQUESTS_CA_BUNDLE,变量值填Fiddler证书文件的绝对路径(比如C:\Users\你的用户名\Desktop\FiddlerRoot.cer) - 重启命令行或IDE,运行脚本即可生效
内容的提问来源于stack exchange,提问作者spottedmahn
相关产品推荐
相关产品推荐

