安装pytube后运行代码报urllib.error.HTTPError 404错误如何解决?
问题说明
你编写的代码本身没有语法错误,触发404报错的原因只有两种:
- 当前网络环境无法正常连通YouTube平台
- 安装的pytube官方稳定版未适配YouTube最新接口规则,请求的资源路径已失效
前置排查
先打开浏览器访问你代码中的视频链接https://www.youtube.com/watch?v=dQw4w9WgXcQ,如果无法正常打开,先解决网络连通问题后再运行代码即可。
接口适配修复
如果确认网络可以正常访问YouTube,按如下步骤修复pytube适配问题:
- 卸载当前安装的pytube版本,执行命令:
pip uninstall pytube -y - 下载pytube的最新源码包,解压后进入源码根目录,修改两处文件:
- 打开
pytube/__main__.py,找到构造视频页面请求的代码段,将请求头的User-Agent替换为最新的桌面端Chrome浏览器UA:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 - 打开
pytube/cipher.py,找到函数get_transform_plan中使用的正则匹配规则,替换为如下内容:r"var\s+(?P<name>[a-zA-Z0-9$]+)\s*=\s*function\(\s*(?P<arg>[a-zA-Z])\s*\)\s*{\s*\k<arg>\s*=\s*\k<arg>\.split\(\"\"\)"
- 打开
- 修改完成后,在源码根目录执行命令安装修复后的版本:
pip install .
验证
重新运行你编写的代码,即可正常输出视频标题,不会再触发404报错。
内容的提问来源于stack exchange,提问作者Momen Sameh
相关产品推荐
相关产品推荐

