YouTube API - 按发布日期查询

Posted

技术标签:

【中文标题】YouTube API - 按发布日期查询【英文标题】:YouTube API - Querying by publish date 【发布时间】:2011-08-11 17:47:14 【问题描述】:

我正在编写一个使用 YouTube 代码 API 执行特定类型搜索的网络应用。在这种情况下,我正在尝试搜索与查询匹配并且在两个日期之间上传的所有视频。 This document 说我可以使用 published-min 和 published-max 参数,而 this one 说我可以使用 updated-min 和 updated-max。

这两个参数集都会导致 YouTube 返回错误:

published-min 返回“此服务不支持 'published-min 参数” updated-min 返回“此服务不支持 'updated-max' 参数” With neither 返回正确的结果集。

如何将我的结果集限制为指定日期范围内的匹配?

【问题讨论】:

FWIW,API 似乎可以识别常规 YouTube 搜索中使用的特殊过滤器值:?q=Test%2C+today?q=Test%2C+this+week?q=Test%2C+this+month 【参考方案1】:

Reference Guide for YouTube's Data API 没有列出任何建议一般按时间间隔进行过滤的内容。

published-min 参数仅在 "User activity feeds" section 中宣传,这是不同的,可能不是您想要的。还是这样?

链接中的 updated-min 参数在通用 gdata 上下文中被引用。看起来他们打算描述所有专用 API 共有的所有东西,但不知何故,updated-min 并非无处不在。

当涉及到您的问题时。我建议按时排序(orderby=published)并在客户端进行过滤。我知道这不是最佳方式,但我能看到的唯一方式是 Google 提供给我们的。

【讨论】:

虽然令人沮丧,但“解决方案”确实有效。我在此对 YouTube 进行如此可怕的实施进行谴责和责骂。在哪个领域可以不按进入日期查询数据库或 API? :( YouTube API 无法执行,起始索引为 1000 或更多。我用来定位我的搜索的样本数据有一个用户的 3300 多个结果集。知道如何解决这个小问题吗? 我知道这更愚蠢,但也许有一些字段包含一组封闭的值,例如category,您可以在其中单独进行过滤并自己合并结果? 无论如何,我建议向他们提出一些请求/投诉。也许有一天有人会为此做点什么。我相信code.google.com/p/gdata-issues 是合适的地方。【参考方案2】:

youtube api v3 支持带有搜索结果的 publishedAfterpublishedBefore 参数。例如:

https://www.googleapis.com/youtube/v3/search?key=YOUKEY&channelId=CHANNELID&part=snippet,id&order=date&maxResults=50&publishedAfter=2014-09-21T00:00:00Z&publishedBefore=2014-09-22T02:00:00Z

【讨论】:

您应该注意,无论谁来到这里,都不是真正的发布日期。对于某些视频来说,这是内容创建日期。

以上是关于YouTube API - 按发布日期查询的主要内容,如果未能解决你的问题,请参考以下文章

每天查询的 YouTube 数据 API v3 配额设置为 0

Youtube Data API v3:按日期排序不起作用

Youtube API CommentThreads 的范围无效 - java

单击列表视图项目时,Android youtube api可全屏加载视频

Youtube Data API V3 - 使用google.youtube.videos.list()获取视频时出错

在 Java 中解析 Youtube API 日期 [重复]