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

Pytube下载工具突发urllib.error.HTTPError 400错误求助

pytube 抛出 HTTP Error 400: Bad Request 问题修复方案

近期使用pytube开发的视频/播放列表下载工具突然无法运行,触发HTTP Error 400: Bad Request错误,且官方示例程序也出现相同问题,可排除自身代码逻辑问题。该问题通常是由于YouTube调整了API接口,导致旧版pytube无法兼容。

解决方案

1. 升级pytube到最新版本

YouTube频繁调整接口规则,pytube官方会持续跟进修复,优先尝试升级到最新版:

pip install --upgrade pytube

若使用Python3,可替换为pip3。

2. 安装pytube开发分支(若稳定版未修复)

若升级稳定版后问题仍存在,可安装pytube的master开发分支,该分支通常包含最新的修复:

pip install git+https://github.com/pytube/pytube.git@master

3. 手动替换innertube.py中的API密钥(临时修复)

如果上述方法无效,可手动修改pytube的innertube.py文件,更新其中的API密钥:

  1. 找到pytube安装目录下的innertube.py(路径类似C:\Users\你的用户名\AppData\Local\Programs\Python\Python39\lib\site-packages\pytube\innertube.py)
  2. 定位到self.base_data字典中的key字段,将其替换为当前有效的YouTube客户端密钥(可从浏览器访问YouTube时的网络请求中提取)
  3. 修改示例:
self.base_data = {
    "context": {
        "client": {
            "clientName": "WEB",
            "clientVersion": "2.20240520.01.00",
            "key": "替换为新的有效密钥"
        }
    }
}

4. 临时替代方案:使用yt-dlp

若pytube长期无法修复,可切换到功能更稳定、更新更及时的yt-dlp库:

  • 安装yt-dlp:
pip install yt-dlp
  • 基础使用示例:
    • 下载单视频(MP4):
    import yt_dlp
    
    def download_video(url):
        ydl_opts = {
            'format': 'mp4',
            'outtmpl': '%(title)s.%(ext)s',
        }
        with yt_dlp.YoutubeDL(ydl_opts) as ydl:
            ydl.download([url])
    
    • 下载播放列表(MP4):
    def download_playlist(url):
        ydl_opts = {
            'format': 'mp4',
            'outtmpl': '%(playlist_title)s/%(title)s.%(ext)s',
        }
        with yt_dlp.YoutubeDL(ydl_opts) as ydl:
            ydl.download([url])
    
    • 下载音频并转MP3:
    def download_audio(url):
        ydl_opts = {
            'format': 'bestaudio/best',
            'postprocessors': [{
                'key': 'FFmpegExtractAudio',
                'preferredcodec': 'mp3',
                'preferredquality': '192',
            }],
            'outtmpl': '%(title)s.%(ext)s',
        }
        with yt_dlp.YoutubeDL(ydl_opts) as ydl:
            ydl.download([url])
    

内容的提问来源于stack exchange,提问作者Mr. Margarine

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 13:04:58