对服务帐号使用 OAuth 2.0

注意:YouTube Content ID API 专供 YouTube 内容合作伙伴使用,并非所有开发者或 YouTube 用户都能使用。如果您在 Google API 控制台中未看到 YouTube Content ID API 列为某项服务,请访问 YouTube 帮助中心,详细了解 YouTube 合作伙伴计划。

背景

服务帐号是一种 Google 帐号,可用于授权 API 调用,而无需任何用户互动。与其他 OAuth 2.0 流程不同,使用适用于服务帐号的 OAuth 2.0 流程对访问权限进行身份验证和授权是在网络浏览器中进行。相反,适用于服务帐号的 OAuth 2.0 依靠加密签名来授予访问权限。只要您的代码有权访问底层加密密钥,它就可以继续进行 API 调用,而不必担心刷新和访问令牌。它非常适合在服务器上运行的自动化应用,无需人工干预。

您现在可以使用服务账号 OAuth 2.0 流程为 YouTube Content ID API 请求授权。您还可以使用此流程授权 YouTube Data API 和 YouTube Analytics API 调用支持委托参数的方法。在所有这些情况下,使用此流程的应用会以 YouTube 内容合作伙伴(使用 YouTube CMS 帐号)而不是 YouTube 频道所有者的身份授权 API 请求。

设置您的服务帐号

以下屏幕截图说明了创建与您的 API 项目关联的服务帐号的过程,您应确保该服务帐号已启用适当的 API(YouTube Data API v3、YouTube Analytics API、YouTube Content ID API 等)。

  1. 访问 https://cloud.google.com/console 并选择您现有的 API 项目(或创建一个新项目)。
  2. 在左侧边栏中,选择 API 和身份验证
  3. 确保已为您的项目激活 YouTube Content ID API。
  4. 在左侧边栏中,选择 Credentials
  5. 点击创建新的客户端 ID 按钮。
  6. 从列出的选项中选择服务帐号,然后点击创建客户端 ID。您的服务帐号的私钥将下载到您的计算机上。这是密钥的唯一副本,并且您需要将密钥保存在应用程序可以读取的安全位置。
  7. 记下服务帐号的电子邮件地址。(凭据页面上会显示电子邮件地址。)您需要通过此地址向服务账号授予访问 YouTube 内容管理系统账号的权限。
  8. 访问 https://www.youtube.com/content_owner_users 并点击新建用户按钮。
  9. 电子邮件地址字段中输入第 7 步中服务帐号的电子邮件地址,然后为用户选择适当的角色。然后点击邀请按钮。
  10. 您的服务帐号会自动接受邀请,随后该帐号可以代表您 YouTube CMS 帐号访问 YouTube API。
  11. 请按照向请求授权指南中关于 OAuth 2.0 服务帐号流程的说明,使用您的服务帐号向请求授权。

进行 API 调用

大多数语言的客户端库都为服务帐号流程的 OAuth 2.0 提供了原生支持。您应该能够按照该库文档中的示例,使用适当的 YouTube API 作用域执行基本授权。

最需要注意的是,您必须使用适当的委托参数来代表与您的 CMS 帐号关联的特定频道执行操作。要查看与您的 CMS 帐号关联的频道列表,请访问 https://cms.youtube.com/edit_user_accounts