无需 Oauth2 从 Youtube Analytics API 读取数据

Gia*_*omo 1 youtube youtube-api google-authentication youtube-analytics youtube-analytics-api

我目前正在编写一个 python 脚本,用于从 YouTube Analytics API 中提取信息以获取单独的 YouTube 频道列表。例如,输出是统计上个月每个 YouTube 频道的视频观看次数。

我最初的想法是要求每个 YouTube 帐户所有者在其 console.cloud.google 中创建一个 YouTube Analytics 应用程序,创建一个项目,启用 youTube Analytics API,生成一个 API 密钥并指定 YouTube Analytics 需要它API。

我正在使用一个帐户进行测试,如果我尝试使用通过上述过程生成的 API 密钥运行脚本并进行身份验证,如下所示:

def get_service():
    return build('youtubeAnalytics', 'v2', developerKey=API_KEY)
Run Code Online (Sandbox Code Playgroud)

它失败了HttpError 401 Request is missing required authentication credential. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.

我不确定我在创建 API 密钥时是否做错了什么,或者 YouTube Analytics API 是否需要Oauth2 身份验证。如果是后者,那么我很惊讶谷歌控制台允许您一路生成 API 密钥并指定它们是 YouTube Analytics API 所需要的,结果却发现您无法使用它。

所以我的问题是:我是否必须使用 Oauth2 for YouTube Analytics API 还是可以使用 API 密钥?我正在尝试从“我自己的”帐户读取数据,那么为什么我需要手动授权我自己的应用程序?

Gia*_*omo 6

好吧,我发现没有 OAuth 2.0 身份验证就无法使用 YouTube Analytics API。在我看来,Google 文档和 Google 控制台非常令人困惑,因为它们分别允许您创建特定于 YouTube Analytics API 的 API 密钥,并将 API 密钥描述为一种可能的身份验证方式(只是告诉您,所有方法都需要 OAuth2 .0)。

我仍然不清楚如何为命令行 python 脚本设置 YouTube Analytics API 身份验证,该脚本不需要用户在每次脚本运行时手动表示同意。

我将为此提出一个单独的问题。