pytube11.0.1运行官方示例报AttributeError: 'NoneType' object has no attribute 'span'
错误原因
该报错是你使用的11.0.1版本pytube过于老旧导致的:YouTube平台不定期更新前端播放器的JS逻辑,旧版本pytube内置的JS解析正则规则无法匹配新版播放器的代码结构,在解析节流函数数组时func_regex.search()匹配失败返回None,后续调用None.span()就触发了AttributeError。
解决方法
- 优先升级pytube到最新正式版本,执行命令:
pip install --upgrade pytube
如果你使用conda安装的pytube,建议先卸载conda源的旧版本再用pip安装最新版:
conda remove pytube pip install pytube
- 升级完成后如果仍报错,清除pytube本地缓存的旧JS文件即可:
- Linux/macOS系统:删除
~/.cache/pytube目录下的所有文件 - Windows系统:删除
C:\Users\<你的用户名>\AppData\Local\pytube\cache目录下的所有文件
- Linux/macOS系统:删除
操作完成后重新运行测试代码即可正常执行。
内容的提问来源于stack exchange,提问作者a-python-script
相关产品推荐
相关产品推荐

