在没有 Oauth2 的情况下从 Youtube Analytics API 读取数据

Read data from Youtube Analytics API without Oauth2

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

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

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

def get_service():
    return build('youtubeAnalytics', 'v2', developerKey=API_KEY)

它失败了 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 身份验证。如果是后者,那么令我惊讶的是 google 控制台允许您一路生成 API 密钥并指定 YouTube Analytics API 需要它们,仅让你发现你不能使用它。

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

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

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

我会为此打开一个单独的问题。

设置key参数。您可以使用 api 键读取数据。很简单。

http -v 'https://www.googleapis.com/youtube/v3/playlistItems?playlistId={playlistId}&part=id,snippet,contentDetails,status&key={api_key}&max_results=10'