【问题标题】:How to get the Channel's list from youtube api?如何从 youtube api 获取频道列表?
【发布时间】:2016-07-25 07:05:00
【问题描述】:

我想从 youtube api 获取所有频道的列表和统计信息。

我所做的是:

  1. 已注册控制台应用
  2. 使用的 Oauth 客户端 ID
  3. https://developers.google.com/youtube/v3/docs/channels/list 使用这个 api 我得到了所有的统计数据

这就是我获取频道列表的方法

function requestUserUploadsPlaylistId() {
  // See https://developers.google.com/youtube/v3/docs/channels/list
  var request = gapi.client.youtube.channels.list({
    mine: true,
    part: 'statistics'
  });
  request.execute(function(response) {
    playlistId = response.result.items[0].contentDetails.relatedPlaylists.uploads;
    requestVideoPlaylist(playlistId);
  });
}

但是,问题是这个返回的只有一个频道的信息。我的帐户下有 20 个频道。所以,我需要将它们全部显示在我的表格中。

我也尝试添加 forUsername:'Username' 参数但没有成功。

另外,当我尝试设置 ma​​nagedByMe:true 时,它的返回错误为

Global:"required",
Message:"Required"

无法显示所有频道的列表。你能解释一下吗?

这就是我想要的

Channelname ViewsCount
1               50
2               51

等等……

忽略我的代码response.result.items[0] 我正在控制台中检查整个响应。并且 items 一次只包含一个频道。

编辑:

【问题讨论】:

    标签: javascript youtube-api youtube-data-api youtube-javascript-api


    【解决方案1】:

    更新 1:

    当您使用managedByMe 标志(设置为true)时,您必须为该标志提供所需的参数onBehalfOfContentOwner,这是您必须知道的内容所有者标识符的字符串。

    要获得正确的内容所有者 ID,您需要请求一个新的访问令牌,并在登录时选择与您要使用的内容所有者 ID 对应的正确用户,然后一切正常。

    查看this question,您似乎需要以 CMS 用户帐户身份登录,然后您将使用该用户 ID 作为内容所有者 ID,之后应该可以根据需要进行操作


    初步答案:

    您只在代码中访问items[0],它只会显示一个元素,请尝试更改代码以使用foreach 循环并像这样遍历所有通道:

    function requestUserUploadsPlaylistId() {
      // See https://developers.google.com/youtube/v3/docs/channels/list
      var request = gapi.client.youtube.channels.list({
        mine: true,
        part: 'statistics'
      });
      request.execute(function(response) {
         response.result.items.forEach(function(anItem) {
            playlistId = anItem.contentDetails.relatedPlaylists.uploads;
            requestVideoPlaylist(playlistId);
         });
      });
    }
    

    关于另一个错误,你不能同时使用managedByMemine,如果你想使用managedByMe你需要清除mine并拥有适当的权限,我建议你玩api explorer 首先确认一切正常,然后实现反映这一点的代码,那里有更多描述性错误。

    【讨论】:

    • 您好,谢谢您的回答。首先,我正在检查响应只包含我不想要的数组长度 0。另外,我正在删除我的,然后使用其他参数。还有其他想法吗?”
    • “我正在检查响应仅包含我不想要的数组长度 0”是什么意思?如果数组长度为 0,那么您将看不到任何结果,在您的情况下,您会看到一个结果,这意味着数组不能为 0 当您运行我的代码时,您会得到什么?
    • 我的意思是 items 包含长度 1 无论我用作参数。 Items[0] 表示我正在访问数组中的第一项。
    • 好的,我需要你去这里填写你在代码中使用的相同参数,然后告诉我你是否仍然只得到一个或多个:developers.google.com/youtube/v3/docs/channels/list#try-it
    • 好的,这似乎是缺少参数/权限,您可以完全删除 managedByMe 并将 mine 设置为 true 吗?只是想看看结果是什么
    猜你喜欢
    • 2012-10-24
    • 2020-10-02
    • 2020-06-03
    • 2013-05-04
    • 2018-02-19
    • 2014-07-19
    • 2013-05-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多