Python开发YouTube视频转音频工具出现HTTP 410运行错误如何解决
错误原因
HTTP 410 Gone 是服务端返回的标准状态码,代表请求的目标资源已经被永久移除,且没有可跳转的替代资源。
该场景下触发错误的核心原因是使用的pytube版本未适配YouTube最新的接口规则:YouTube会定期更新视频资源的抓取接口逻辑,旧版本pytube调用的资源接口已经被YouTube官方下线,因此返回410错误。
修复步骤
- 先卸载本地已安装的旧版本pytube:
pip uninstall pytube - 安装官方最新版本的pytube:
pip install pytube --upgrade - 升级完成后重新运行代码即可正常抓取音频资源。
可选代码优化
原代码中手动判断操作系统拼接路径的写法冗余且容易出错,可以直接用Python内置的os.path.join方法自动适配不同系统的路径分隔符,同时用os.rename替代调用系统命令实现跨平台重命名,简化后的代码如下:
from pytube import YouTube import pytube import os def main(): video_url = input('Enter YouTube video URL: ') path = os.getcwd() name = pytube.extract.video_id(video_url) # 下载音频流 YouTube(video_url).streams.filter(only_audio=True).first().download(output_path=path, filename=name) # 重命名为mp3格式 origin_file = os.path.join(path, f"{name}.mp4") target_file = os.path.join(path, f"{name}.mp3") os.rename(origin_file, target_file) if __name__ == '__main__': main()
内容的提问来源于stack exchange,提问作者Abdullah
相关产品推荐
相关产品推荐

