javascript - 如何从 youtube api 获取 channel 列表?

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

我想从 youtube api 获取所有 channel 的列表及其统计信息。

我所做的是:

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

这就是我获取 channel 列表的方法

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);
  });
}

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

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

此外,当我尝试设置 ma​​nagementByMe:true 时,其返回错误为

Global:"required",
Message:"Required"

无法以任何方式显示所有 channel 的列表。你能解释一下吗?

这就是我想要的

Channelname ViewsCount
1               50
2               51

等等......

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

编辑: enter image description here

最佳答案

更新1:

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

要获取正确的内容所有者 ID,您需要请求新的访问 token ,并在登录时选择与您要使用的内容所有者 ID 相对应的正确用户,一切都会正常工作。

调查this question看来您需要做的是作为 CMS 用户帐户登录,然后您将使用该用户 ID 作为内容所有者 ID,之后事情应该根据您的需要进行

<小时/>

初始答案:

您仅在代码中访问 items[0],该代码仅显示一个元素,请尝试更改代码以使用 foreach 循环并迭代所有 channel 像这样:

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);
     });
  });
}

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

关于javascript - 如何从 youtube api 获取 channel 列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38561562/

相关文章:

javascript - 元素的绝对位置问题

javascript - 更新 html 表 AJAX PHP

ios - 如何刷新我在 iOS 中从 google oauth 2.0 获得的 token

youtube - 是否有任何形式的youtube-startup合作伙伴关系?

javascript - AWS 无服务器和 javascript - 它安全吗?

ios - 我如何使用 Youtube iOS API 查找、转到某一秒?

php - 检查YouTube视频是否有效?代码修复

download - 将临时下载链接 (URL) 转换为永久链接

youtube-api - 从 google youtube api v3 获取排序的播放列表项

javascript - 如何从 D3 v5 中的 CSV 文件加载数据