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

YouTube Data API v3 OAuth2.0授权流程失效,疑似缓存问题

问题:更换谷歌云账号后YouTube API OAuth授权失败

问题现象

  • 原谷歌云账号及YouTube频道下,Python结合YouTube Data API v3上传视频正常:首次运行触发OAuth 2.0授权流程,命令行弹出授权请求,生成令牌文件后后续运行无需重复授权
  • 更换新谷歌云账号与YouTube频道后,同一电脑运行代码出现异常:
    1. 命令行未触发新账号授权请求,先报无法访问myscript.py-oauth2.json文件错误
    2. 后续抛出AttributeError: 'ArgsNamespace' object has no attribute 'logging_level'错误
  • 怀疑旧账号授权缓存残留导致,需确认原因并获取清除方法

原因分析

  1. 旧授权令牌残留:代码通过Storage("%s-oauth2.json" % sys.argv[0])生成的令牌文件与旧账号绑定,系统会优先读取该文件,无法触发新账号的授权流程;若文件权限异常则会出现无法访问的报错
  2. 参数缺失:自定义的ArgsNamespace类缺少run_flow方法必需的logging_level参数,导致授权流程执行时抛出属性错误

解决方法

一、清除旧授权缓存

  • 删除本地令牌文件:找到代码生成的[你的脚本文件名]-oauth2.json(例如myscript.py-oauth2.json),直接删除即可
  • 清除系统级OAuth缓存:
    • Windows:删除C:\Users\[你的用户名]\AppData\Roaming\Google\Credentials目录下的相关文件
    • macOS/Linux:删除~/.credentials/目录下的YouTube API相关文件

二、修复代码参数缺失问题

修改自定义的ArgsNamespace类,补充logging_level参数:

class ArgsNamespace:
    file = video_youtube
    title = "title"
    description = "content"
    category = "24" # 24为娱乐分类,原分类为22
    keywords = "shorts, curiosity"
    privacyStatus = "public"
    logging_level = 'INFO'  # 新增必需参数

额外修复代码中拼写错误:initialize_upload函数内snippet字段的chennelId改为channelId,避免频道ID不生效:

snippet=dict(
    title=options.title,
    description=options.description,
    tags=tags,
    categoryId=options.category,
    channelId= "xxx"  # 修正拼写错误
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 23:27:12