如何使用API (针对MCN)从YouTube CMS帐户获取收入报告?

问题描述 投票:4回答:1

我可以访问YouTube CMS帐户(适用于MCN)。在YouTube上,我可以使用它做很多事情,这还包括下载包含有关收入详细信息的CSV报告。

但是,我想对该数据进行一些自动处理,从而使用API​​而不是手动CSV下载来访问数据。看起来YouTube Analytics Content Owner Reports也应该包含这些数据,因此我试图从这个API中获取一些数据(现在只使用API Explorer),但我唯一能得到的是“禁止”响应。

API Explorer告诉我,对于CMS帐户,我需要指定contentOwner == OWNER_NAME,但无法解释OWNER_NAME会是什么。我试图只插入我的CMS帐户的显示名称,用下划线替换空格,但没有成功。如何找出我的所有者名称?

此外,当我使用OAuth进行身份验证时,我会像往常一样收到帐户列表,我可以选择使用哪个帐户(例如,我是所有YouTube渠道的经理),但未列出CMS帐户。但是,如果我去YouTube,我可以点击右上角,然后切换到CMS。不知道这是否重要......

然后,也许我完全走错了路,因为我想获得连接到我的MCN的所有频道的报告,但这并不意味着我拥有内容。也许我不是内容所有者?在这种情况下:从API请求报告的正确方法是什么?

youtube youtube-api
1个回答
6
投票

首先,CMS帐户不是您可以通过Oath登录的单独帐户。它更像是一种特权,它与您的某个google / youtube帐户相关联。这与youtube的常规频道管理形成对比,其中每个频道都有自己的登录凭据。

我附上了我的youtube帐户选择器视图的屏幕截图,其中CMS属于帐户[email protected],该帐户也是您必须用于访问CMS报告的oauth授权的帐户。

此外,您可以看到CMS的名称,在本例中为“CMSName”。因此,通常这是您将用于contentOwner == CMSName的名称。但是,您的CMS名称似乎包含空格。不幸的是,由于缺少管理员权限,我无法重建此案例,但我建议您使用_也用于空格,因为“”和“%20”不会映射有效参数的正则表达式。

但你说,你尝试它没有成功。但是也有错误的情况:

  1. 403禁止访问:CMS的名称可能有误,或者所选的OAth帐户没有所需的权限。您是否拥有所有必需的范围并选择了正确的帐户?
  2. 400错误请求:当请求本身无效时会发生这种情况。因此,如果您选择contentOwner == CMSName作为ids参数,则始终需要过滤参数,例如通道== [ChannelIdForWhichIHaveCMSRights]。因此,通常应该工作的API请求看起来像这样:https://www.googleapis.com/youtube/analytics/v1/reports?ids=contentOwner%3D%3D[CONTENTOWNER_ID]&start-date=2015-01-01&end-date=2015-01-15&metrics=views&filters=channel%3D%3D[CHANNEL_ID_WITH_CMS_RIGHTS]&access_token=[OATH_TOKEN_FOR_RIGHT_ACCOUNT]

如果两种情况都不适合您并且您仍然遇到403错误,那么让我们进行一些调试并尝试获取内容所有者ID。我现在将介绍YouTube Content ID API https://developers.google.com/youtube/partner/

提前几句:您必须在开发人员控制台中激活API,就像您要为应用程序使用的任何其他API一样。但:

Note: The YouTube Content ID API is intended for use by YouTube content partners and is not accessible to all developers or to all YouTube users. If you do not see the YouTube Content ID API as one of the services listed in the Google Developers Console, see www.youtube.com/partner to learn more about the YouTube Partner Program.

您没有在列表auf可用API中看到它,除非您的帐户已连接到CMS并且已经过了一段时间...除非Content ID API可用于您的帐户,否则需要7-14天。这是我从支持部门获得的信息,但他们告诉我,这是一个自动步骤。

因此,现在假设您已经可以访问Content ID API。

您可以获取属于某个帐户的contentOwnerShip列表。您可以使用API​​资源管理器https://developers.google.com/youtube/partner/docs/v1/contentOwners/list#try-it仅使用param fetchMine = true并使用https://www.googleapis.com/auth/youtubepartner-content-owner-readonly范围进行授权。响应如下:

{ "kind": "youtubePartner#contentOwnerList", "items": [ { "kind": "youtubePartner#contentOwner", "id": "[CMS_ID]", "displayName": "[DisplayName]", "primaryNotificationEmails": [ "[email protected]" ], "conflictNotificationEmail": "[email protected]", "disputeNotificationEmails": [ "[email protected]" ], "fingerprintReportNotificationEmails": [ "[email protected]" ] } ] }

这是从中获取CMS_ID的地方,您也可以将它用作任何API请求,如onBehalfOfContentOwner。

要获取属于所有权的所有渠道的列表,只需提出此请求即可

        "https://www.googleapis.com/youtube/v3/channels?part=contentDetails&managedByMe=true&onBehalfOfContentOwner=[CONTENTOWNER]&access_token=[ACCESS_TOKEN]"

但是这个请求需要授予“https://www.googleapis.com/auth/youtubepartner”范围。

这可以如何帮助您,随时提出进一步的问题。

© www.soinside.com 2019 - 2024. All rights reserved.