PyTube请求返回410 HTTP响应,无法下载YouTube视频求助
解决PyTube抛出HTTP Error 410: Gone的问题
问题复现
使用以下PyTube代码下载YouTube视频:
from pytube import YouTube # Define the YouTube video URL url = "https://www.youtube.com/watch?v=dQw4w9WgXcQ" # Create a YouTube object and get the video streams yt = YouTube(url) mp4files = yt.streams
近期运行时出现错误:
raise HTTPError(req.full_url, code, msg, hdrs, fp) urllib.error.HTTPError: HTTP Error 410: Gone
此前代码可正常运行,需修复该问题。
解决方案
以下是几个有效的修复步骤,按优先级尝试:
更新PyTube到最新版本
YouTube会频繁调整反爬机制,PyTube官方通常会跟进修复。执行升级命令:pip install --upgrade pytube替换为社区维护的PyTube分支(pytubefix)
如果官方版本未及时修复,可使用社区维护的pytubefix:- 卸载原PyTube:
pip uninstall pytube -y - 安装pytubefix:
pip install pytubefix - 修改代码导入语句:
from pytubefix import YouTube url = "https://www.youtube.com/watch?v=dQw4w9WgXcQ" yt = YouTube(url) mp4files = yt.streams
- 卸载原PyTube:
添加自定义请求头或启用OAuth认证
部分情况下,YouTube会拦截无合法请求头的请求,可尝试设置User-Agent或启用OAuth:from pytube import YouTube url = "https://www.youtube.com/watch?v=dQw4w9WgXcQ" # 设置User-Agent yt = YouTube(url, headers={ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" }) # 或启用OAuth认证(首次运行需登录,后续缓存凭证) # yt = YouTube(url, use_oauth=True, allow_oauth_cache=True) mp4files = yt.streams
内容的提问来源于stack exchange,提问作者Luthando Nxumalo
相关产品推荐
相关产品推荐

