如何使用 Youtube API 获取随机视频 ID?

How to get random video IDs with Youtube API?

我正在尝试使用 YouTube API 将随机视频 ID 提取到 Google 表格中。我对 YouTube API 的经验很少,之前只用过一次来拉取搜索结果。

我做了一些研究,但没有找到太多可以将 API 与 Google 表格结合使用的信息,而且我对其他语言的了解不足,无法翻译成 [=38] =] Apps 脚本。

我目前正在使用 developer page 中的示例脚本,删除了搜索参数(原文:var results = YouTube.Search.list('id,snippet', {q: 'dogs', maxResults: 25});)。

function searchByKeyword() {
  var results = YouTube.Search.list('id,snippet', {maxResults: 25});

  for(var i in results.items) {
    var item = results.items[i];
    Logger.log('[%s] Title: %s', item.id.videoId, item.snippet.title);
  }
}

当我 运行 这样做时,它工作正常并成功提取视频标题和 ID,但结果始终相同。

我相信这里有几件事我不理解,可以在以下方面寻求帮助:

  1. 这个脚本在结果方面是如何工作的? (结果从哪里来)
  2. 有没有办法让结果随机化?

只是为了澄清,我了解代码的结构以及它在 运行 时的作用。我不明白 YouTube API 从哪里得到结果。

在这个 post 中,我还没有专注于将数据放入 google sheet 中,但如果有人知道如何做,我将非常感谢您的帮助以及。我只想将标题和 ID 放在同一行的两个单独的单元格中。现在特定的单元格并不重要。

您可以尝试按日期对搜索结果进行排序(结果按时间倒序排序),每次您 运行 API,它都会向您发送最近的匹配上传,这可能与上次结果集不同。

您可以替换:

var results = YouTube.Search.list('id,snippet', {q: "dogs", maxResults: 25});

var results = YouTube.Search.list('id,snippet', {q: "dogs", maxResults: 25, order: "date", type: "video" });