Youtube api YouTube API-使用Google管理员帐户访问多个YouTube频道(品牌帐户)

Youtube api YouTube API-使用Google管理员帐户访问多个YouTube频道(品牌帐户),youtube-api,youtube-data-api,youtube-analytics-api,Youtube Api,Youtube Data Api,Youtube Analytics Api,我需要使用YouTube分析和报告Api从视频中提取信息 当我用谷歌账号登录YouTube时,我可以访问多个YouTube品牌账号 使用“Try it”测试API,我只能在切换到该频道所属的品牌帐户后检索该频道的数据,否则我会得到403-禁止错误 有没有办法使用我用来登录的Google帐户提取数据?因为一旦我在开发者控制台中创建凭证,它们将与Google帐户关联,而不是与品牌帐户关联 我的谷歌账户在品牌账户上有经理角色 我搜索了请求中要使用的OnBehalfOfContentTowner字段,但

我需要使用YouTube分析和报告Api从视频中提取信息

当我用谷歌账号登录YouTube时,我可以访问多个YouTube品牌账号

使用“Try it”测试API,我只能在切换到该频道所属的品牌帐户后检索该频道的数据,否则我会得到403-禁止错误

有没有办法使用我用来登录的Google帐户提取数据?因为一旦我在开发者控制台中创建凭证,它们将与Google帐户关联,而不是与品牌帐户关联

我的谷歌账户在品牌账户上有经理角色


我搜索了请求中要使用的OnBehalfOfContentTowner字段,但我不知道如何获取此ID,我也不确定这是否适用于我的情况,因为我们讨论的是品牌帐户,如果我错了,请纠正我。

YouTube API与其他google API不同。使用其他API验证对完整帐户的访问。然而,YouTube API以其频道为基础。您需要为每个通道对应用程序进行一次身份验证

onBehalfOfContentOwner

此参数适用于拥有和 管理许多不同的YouTube频道。它允许内容所有者 进行一次身份验证并访问其所有视频和频道数据, 无需为每个用户提供身份验证凭据 个别频道。用户验证的实际CMS帐户 需要链接到指定的YouTube内容所有者


你需要成为YouTube的合作伙伴,然后你可以联系你的客户经理并获得CMS id。我还没有弄清楚要成为YouTube的合作伙伴必须具备什么样的魔力。

我两天前刚刚解决了这个问题。事实证明这是可能的,它只是没有文档记录,工作原理与您预期的稍有不同:

一旦我在开发者控制台中创建凭据,它们将与Google帐户关联,而不是与品牌帐户关联

当我第一次尝试时,我也有同样的错误想法(甚至找到了品牌客户的id)。事实证明,您不想使用品牌的oauth信息——您想使用自己的客户端id/client\u secret代表品牌帐户创建一个刷新令牌,然后使用该令牌创建身份验证令牌

步骤:

  • 使用主帐户通过创建oauth客户端id和客户端机密
  • 编辑刚才添加的客户端id/client\u secret条目,并将“”添加到页面底部的“授权重定向URI”中
  • 我们将以惰性方式创建一个刷新令牌。去
  • 单击右上角的gears并将访问类型设置为“脱机”,然后单击“使用您自己的OAuth凭据”,并输入您在步骤1中创建的客户端id和客户端密码
  • 选择要授予其访问权限的作用域。单击授权API
  • 这里有一个神奇的地方:你现在将被要求“选择一个帐户”。在此处选择要访问的品牌帐户,而不是您的主帐户。因为你有权限访问它,所以即使你使用自己的客户id和客户机密,这也可以正常工作
  • 当它提示您时,允许权限访问,然后您将被带回oauth游乐场
  • 单击“交换令牌的授权码”
  • 抓取刷新令牌,并像平常一样使用它来根据需要生成身份验证令牌
  • 祝贺您,您现在可以访问品牌帐户了


    希望这能有所帮助。

    如果您遵循获取永久刷新令牌的解决方案并使用Java,这对我来说很有用

    GoogleCredential credential = new GoogleCredential.Builder().setTransport(httpTransport)
                        .setJsonFactory(JSON_FACTORY)
                        .setClientSecrets(oauth2ClientId, oauth2ClientSecret)
                        .build()
                        .setRefreshToken(oauth2RefreshToken);
    
    
     this.youTubeClient = new YouTube.Builder(httpTransport, JSON_FACTORY, credential)
                        .setApplicationName(APPLICATION_NAME)
                        .build();
    
    必需的依赖项

    
    com.google.api
    
    

  • @DalmTo so summary,我必须要求我的每个品牌客户(渠道)经理给我CMS ID?因为老实说,我不知道我们需要在哪一方拥有一个CMS账户,在品牌账户方面还是在我的谷歌账户方面。我认为经理们应该能够得到它。我帮不了什么忙,我只处理了另外一个问题,那个人有一个cms账户。如果内存可用,谷歌必须启用它并给他们所需的ID。你能详细说明第9点吗?您的意思是必须使用它而不是客户id,并在concent屏幕中选择品牌帐户吗?或者在完成此操作后,我可以使用google account访问品牌帐户api报告?您可以使用刷新令牌,使用您想要的任何sdk(或手动调用)生成正常的自动令牌。然后像往常一样使用auth令牌发出api请求。非常感谢。我会试试的。最后我用刷新令牌得到了它。感谢您提供的解决方案。您能在第9点上帮助我吗?我已经完成了所有步骤,当我点击“交换令牌的授权码”时,它返回{“error_description”:“Unauthorized”,“error”:“Unauthorized_client”}JSON对象,不返回刷新tocken。我甚至在匿名模式下尝试过,但没有成功。。。