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

Python调用YouTube API时出现“Access blocked: MyAPP request is invalid”错误的求助

Python调用YouTube API时出现“Access blocked: MyAPP request is invalid”错误的求助

看起来你遇到的这个认证错误在Google API使用中挺常见的,别慌,我来帮你梳理几个最可能的原因和解决办法:

一、先检查OAuth 2.0客户端配置

这是最容易踩坑的核心点:

  • 确保你在Google Cloud控制台创建的是**“桌面应用”类型**的OAuth客户端ID,而不是Web应用或其他类型。你的代码用的是InstalledAppFlow,专门对应桌面应用的认证流程,类型不匹配直接就会触发这个错误。
  • 核对client_secret.json文件是不是你刚创建的桌面应用的配置文件,别不小心用了其他项目的旧文件,或者下载时选错了客户端类型。

二、确认YouTube API服务是否已启用

  • 登录Google Cloud控制台,找到你的项目,进入“API和服务” -> “已启用的API和服务”页面,确认YouTube Data API v3已经被启用。如果没启用,赶紧点击启用,启用后可能需要等1-2分钟再测试,让配置生效。

三、代码细节与认证流程检查

先把你的代码贴出来方便对照:

from googleapiclient.discovery import build
from google_auth_oauthlib.flow import InstalledAppFlow

# Replace with the path to your downloaded client_secret.json file
CLIENT_SECRETS_FILE = 'client_secret.json'

# Define the scopes your application needs
SCOPES = ['https://www.googleapis.com/auth/youtube.readonly']
API_SERVICE_NAME = 'youtube'
API_VERSION = 'v3'

def get_authenticated_service():
    flow = InstalledAppFlow.from_client_secrets_file(CLIENT_SECRETS_FILE, SCOPES)
    credentials = flow.run_local_server(open_browser=False) # Or flow.run_local_server() for web apps
    return build(API_SERVICE_NAME, API_VERSION, credentials = credentials)

# Now you can use the authenticated service to make YouTube API calls
youtube = get_authenticated_service()
  • 你代码里用了open_browser=False,这时候控制台会输出一个授权链接,务必用和Google Cloud项目关联的Google账号打开这个链接授权,别用了不在测试用户列表里的账号。
  • 如果手动复制链接容易出错,可以试试把open_browser=False改成flow.run_local_server(),让程序自动打开浏览器完成授权,减少手动操作的失误。

四、其他易忽略的小问题

  • 检查你的网络环境,有没有代理或者防火墙拦截了Google的授权请求?可以暂时关闭代理再测试一次。
  • 如果你的应用还处于Google Cloud控制台的“测试”状态,只有添加在“OAuth同意屏幕”测试用户列表里的账号才能正常使用,如果你用的账号不在列表里,也会被拦截。

你可以按照上面的步骤逐个排查,大部分情况下都是客户端类型配置错误或者API未启用的问题,先从这两点入手应该能快速解决。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.08 07:28:01