在 Google Apps 脚本中列出 YouTube 频道的所有视频

Posted

技术标签:

【中文标题】在 Google Apps 脚本中列出 YouTube 频道的所有视频【英文标题】:List all videos of a YouTube channel in Google Apps Script 【发布时间】:2016-05-08 18:16:15 【问题描述】:

我正在使用 YouTube 数据 API 在 google 电子表格中列出频道的前 25 个视频标题和 ID,但由于某种原因,我只获得了频道的标题。

这是我的代码:

function searchByChannel() 
    var results = YouTube.Channels.list('id,snippet', 
        id: 'UC-9-kyTW8ZkZNDHQJ6FgpwQ',
        maxResults: 25
    );

    var title = "";
    var id = "";
    var lr = 0;
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sheet1 = ss.getSheetByName("Sheet1");
    for (var i = 0; i < results.items.length; i++) 
        var item = results.items[i];
        title = item.snippet.title;
        id = item.id.videoId;
        lr = sheet1.getLastRow() + 1;
        sheet1.getRange(lr, 1).setValue(title);
        sheet1.getRange(lr, 2).setValue(id);
        lr++;
    

我是 YouTube 数据 API 的新手,所以我不知道我在这里做错了什么。如何使用 Google Apps 脚本在我的电子表格中列出 25 个视频 ID 和标题?

【问题讨论】:

如果我运行这个脚本,它会收到错误消息,即在第一行找不到 Youtube 对象。如何导入对象?有什么需要提前申报的吗? 【参考方案1】:

YouTube.Channels 的文档声明它将返回有关频道的信息,而不是有关视频的信息,这就是您获取频道信息的原因。

另一方面,YouTube.Search 收集有关视频的信息,您可以为其提供 channelId 参数,该参数将搜索指定频道,因此,您的结果代码应如下所示:

  var results = YouTube.Search.list('id,snippet', 
    channelId:'UC-9-kyTW8ZkZNDHQJ6FgpwQ',
    maxResults: 25
  );

【讨论】:

谢谢,我得到了标题,但没有得到视频 ID。知道如何解决这个问题吗? N. B. - 我正在获取播放列表的标题,如果我使用item.id,那么我可以获得播放列表的 ID。但我一直在寻找视频标题和 ID。我怎样才能做到这一点?谢谢。 这里是使用频道网址gappsscript.com/…获取所有视频的方法

以上是关于在 Google Apps 脚本中列出 YouTube 频道的所有视频的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 Apps 脚本在 Google 表格中“清除格式”

是否可以使用 Apps 脚本运行 Google 表格插件?

在 Google Apps 脚本中使用 BigQuery 连接到 Google 电子表格

在 Google Apps 脚本中使用 Mandrill API

Google 表单 - 使用 Google Apps 脚本在项目中添加自定义按钮“更多信息”

如何在 Google Apps 脚本中使用服务帐户对 Google 表格进行身份验证