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

问题描述

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

我进行了一些研究,但并未发现将API与Google Sheets结合使用的方法,而且我对其他语言的了解不足,无法翻译成Google Apps脚本。

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

function searchByKeyword() {
  var results = YouTube.Search.list('id,{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从何处获得结果。

在本文中,我暂时还没有将数据放在Google工作表中,但是如果有人知道如何做,那么我也将非常感谢您的帮助。我只希望Title和ID在同一行的两个单独的单元格中。现在特定的单元格无关紧要。

解决方法

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

您可以替换:

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

使用

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