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

使用YouTube Data API连接品牌账户上传视频遇权限问题求助

YouTube Data API无法访问品牌账户的配置排查方案

问题背景

我使用ASP.NET Framework MVC开发项目,通过YouTube Data API向品牌账户上传视频时遇到权限报错:

  • 原始谷歌账户及关联的原生YouTube频道可正常完成API调用
  • 但OAuth2登录选择品牌账户时触发授权错误,无法执行后续操作

当前操作流程:

  1. 点击「通过谷歌连接」按钮启动OAuth2登录,选择谷歌账户后选择目标YouTube频道
  2. 选择原生频道时流程正常,可执行上传等API操作
  3. 选择品牌账户时直接报错

备注:

  • 使用普通谷歌账户,非YouTube合作伙伴,无内容所有者ID
  • 谷歌应用处于测试阶段,已将原始账户和品牌账户邮箱添加为测试用户
  • 已查阅品牌账户相关过往讨论帖未解决问题

关键配置排查要点

1. 确认OAuth授权范围覆盖品牌账户权限

确保请求的OAuth2 scope包含品牌账户所需的全量权限,避免仅限定原生频道的窄范围:

  • 上传视频需包含https://www.googleapis.com/auth/youtube.upload
  • 如需全频道管理,补充https://www.googleapis.com/auth/youtube

代码中检查scope设置示例:

var scopes = new[] { 
    "https://www.googleapis.com/auth/youtube.upload", 
    "https://www.googleapis.com/auth/youtube" 
};

2. 验证品牌账户的关联权限

登录谷歌账户管理后台,确认原始账户对品牌账户拥有所有者权限:

  • 进入「数据和隐私」→「品牌账户」
  • 找到目标品牌账户,确认原始账户角色为「所有者」(非管理者等受限角色)

3. 核对OAuth同意屏幕的测试用户配置

进入谷歌云控制台→目标项目→「API和服务」→「OAuth同意屏幕」:

  • 确认品牌账户邮箱已添加至测试用户列表(仅添加原始账户无效)
  • 测试阶段所有涉及的账户(原始+品牌)必须在测试用户范围内

4. API调用时指定品牌账户的频道ID

授权成功后,需通过channels.list接口获取当前用户的所有关联频道,筛选出品牌账户对应的频道ID再执行操作:

var channelsListRequest = youtubeService.Channels.List("id,snippet");
channelsListRequest.Mine = true;
var channelsListResponse = await channelsListRequest.ExecuteAsync();

// 遍历获取品牌账户频道ID
foreach (var channel in channelsListResponse.Items)
{
    // 根据频道名称或标识判断是否为品牌账户频道
    if (channel.Snippet.Title == "你的品牌账户频道名称")
    {
        string brandChannelId = channel.Id;
        // 使用该ID执行后续上传等操作
    }
}

5. 清除OAuth授权缓存

ASP.NET MVC可能缓存了旧的授权令牌,导致无法切换至品牌账户:

  • 清除浏览器对应域名的Cookie和本地存储
  • 或在代码中强制清除令牌缓存(如使用官方库,可删除相关缓存文件)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 12:25:24