GAS 以编程方式搜索和下载 youtube

Posted

技术标签:

【中文标题】GAS 以编程方式搜索和下载 youtube【英文标题】:GAS search and download youtube programmatically 【发布时间】:2014-11-12 21:11:51 【问题描述】:

是否可以:

    搜索关键字和时长 > 1 小时的视频。 自动下载。

基本思想来自谷歌应用脚​​本YouTube Service 和search api 文档。有下面的例子:

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

  for (var i = 0; i < results.items.length; i++) 
    var item = results.items[i];
    Logger.log('[%s] Title: %s', item.id.videoId, item.snippet.title);
  

示例可以搜索关键字并打印出videoId,但我也希望添加一个长度> 1小时的条件并自动下载。

我们如何实现这样的想法?

【问题讨论】:

回答是简短“是”或简短“否”的问题通常是not very good questions for on SO。 可能。 API 文档是怎么说的? 【参考方案1】:

您无法通过如此精细的细节按持续时间进行搜索;您只能提供搜索“短”(不到 4 分钟)、“中”(4 分钟 - 20 分钟)或“长”(超过 20 分钟)的过滤器参数。参数是“videoDuration”,因此您的查询函数如下所示:

  var results = YouTube.Search.list('id,snippet', 
    q: 'dogs',
    maxResults: 25,
    videoDuration: 'long',
    type: 'video'
  );

编辑:请注意,当按 videoDuration 搜索时,您还必须包含 'type' 属性并将其设置为视频。

此外,您无法下载 YouTube 视频;没有用于此的 API,这违反了服务条款。

【讨论】:

文档中似乎没有这样的API“videoDuration”:Youtube API,当我运行它时,我收到一条错误消息。 您在评论中提供的链接指向了错误的文档;这是 video->list 端点的文档(当您已经知道视频 id 时),而不是 search->list 端点。你可以在这里看到正确的文档:developers.google.com/youtube/v3/docs/search/list 但是你说得对,有一个错误,因为我遗漏了一部分;按视频时长搜索时,您还必须将“类型”参数设置为“视频”,这样播放列表和频道就不会返回。我已经相应地编辑了我的答案。

以上是关于GAS 以编程方式搜索和下载 youtube的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式更新应用程序时解析错误

以编程方式防止电池充电

如何以编程方式取消使用 searchBar 和 fetchedResultsController 的搜索?

Ace:以编程方式打开搜索/替换框

以编程方式显示 UISearchController 的搜索栏

以编程方式为 Windows 搜索服务创建目录