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

时间:2015-01-23 13:40:11

标签: youtube youtube-api

我可以访问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请求报告的正确方法是什么?

1 个答案:

答案 0 :(得分:6)

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

Youtube Account Selector

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

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

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

  1. 403 Forbidden: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]

  3. 如果两种情况都不适合您并且您仍然遇到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 available 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": [ "mail@random.xx" ], "conflictNotificationEmail": "mail@random.xx", "disputeNotificationEmails": [ "mail@random.xx" ], "fingerprintReportNotificationEmails": [ "mail@random.xx" ] } ] }

    这是您从中获取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”范围。

    锄头可以帮助你,随时提出更多问题。