You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Pytube 15.0.0下载YouTube音频时遭遇403 Forbidden错误求助

解决方案与替代工具

修复Pytube 15.0.0的403 Forbidden错误

针对YouTube最新反爬调整,以下是可行修复方案:

  • 自定义请求头初始化:跳过修改源码,直接在创建YouTube实例时传入符合现代浏览器的User-Agent,避免被识别为非官方客户端:
    from pytube import YouTube
    
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36"
    }
    yt = YouTube("你的视频URL", headers=headers)
    audio_stream = yt.streams.filter(only_audio=True).first()
    audio_stream.download()
    
  • 启用OAuth认证:模拟真实用户登录状态,绕过反爬限制,首次运行会触发浏览器授权,后续自动缓存凭证:
    yt = YouTube("你的视频URL", use_oauth=True, allow_oauth_cache=True)
    
  • 切换至维护活跃的分支版本:官方pytube更新滞后,可改用pytubefix分支,完全兼容原有代码:
    pip uninstall pytube -y
    pip install pytubefix
    
    代码仅需替换导入:from pytubefix import YouTube

可下载YouTube视频片段的替代Python模块

  • yt-dlp:功能最全面的工具,原生支持分段下载、格式转换,反爬适配及时,示例下载指定时间段音频片段:
    import yt_dlp
    
    ydl_opts = {
        "format": "bestaudio/best",
        "outtmpl": "%(title)s_clip.mp3",
        "postprocessors": [{"key": "FFmpegExtractAudio", "preferredcodec": "mp3"}],
        # 指定片段时间:从10秒到45秒
        "download_ranges": lambda info, ydl: [{"start_time": 10, "end_time": 45}]
    }
    
    with yt_dlp.YoutubeDL(ydl_opts) as ydl:
        ydl.download(["你的视频URL"])
    
  • pytubefix:作为pytube的修复分支,支持结合FFmpeg自行裁剪片段(需提前安装FFmpeg):
    from pytubefix import YouTube
    import ffmpeg
    
    yt = YouTube("你的视频URL")
    audio_stream = yt.streams.filter(only_audio=True).first()
    temp_file = audio_stream.download(output_path="temp")
    # 裁剪10-45秒的片段
    ffmpeg.input(temp_file, ss=10, to=45).output("clip.mp3").run()
    
  • youtube-dl:yt-dlp的前身,虽已停止维护,但部分场景仍可使用,分段下载逻辑与yt-dlp类似,但优先推荐yt-dlp。

内容的提问来源于stack exchange,提问作者Chaos Klaus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 22:28:25