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 的搜索?