调用pytube.Youtube.streams报AttributeError,原正常工具及exe失效求助
解决方案
一、修复yt.streams调用的AttributeError错误
这个错误是YouTube更新反爬机制后,旧版本pytube无法适配新加密逻辑导致的,按以下步骤解决:
- 升级pytube到最新版本:
执行命令更新官方稳定版:
若稳定版未修复问题,安装GitHub开发分支版本:pip install --upgrade pytubepip install git+https://github.com/pytube/pytube.git - 手动调整加密逻辑(备选):
找到pytube安装目录下的cipher.py文件,定位get_throttling_plan函数,调整正则表达式以匹配YouTube新的节流代码片段。此方法仅作临时补救,优先推荐升级版本,避免后续因YouTube更新再次失效。
二、修复打包exe后无法运行的问题
使用pyinstaller打包时,需处理pytube的动态依赖问题,操作如下:
- 配置正确的打包参数:
执行打包命令时添加隐藏导入参数,确保pytube所有依赖被正确打包:pyinstaller --onefile --hidden-import pytube --hidden-import pytube.cipher --hidden-import pytube.extract your_script.py - 额外注意事项:
- 确保exe运行环境可正常访问YouTube网络;
- 若出现SSL证书错误,可在代码开头添加以下内容临时禁用证书验证(仅用于个人测试场景):
import ssl ssl._create_default_https_context = ssl._create_unverified_context
内容的提问来源于stack exchange,提问作者Adrian
相关产品推荐
相关产品推荐

