如何使用 youtube api 获取按发布日期排序的播放列表的视频

Posted

技术标签:

【中文标题】如何使用 youtube api 获取按发布日期排序的播放列表的视频【英文标题】:How to get videos for a playlist in sorted by publish date using youtube api 【发布时间】:2017-03-03 07:08:36 【问题描述】:

我需要在播放列表中获取每日上传的视频,因此我想获取按发布日期排序的播放列表的视频。 那么在获取播放列表数据时是否有任何选项可以传递发布日期?

我尝试了 2 个选项

选项 1) https://www.googleapis.com/youtube/v3/playlistItems?part=snippet%2CcontentDetails&maxResults=15&playlistId=PLP-nGFpz3fa_boeLhG4m0Ie_8vmCvp5oH&key=YOUTUBE_API_KEY

从该 URL 返回的结果是否已排序?我发现它没有排序。 我可以在这个或某些相关参数中传递一些与日期相关的日期参数吗?

选项2) 我尝试使用“Youtube 搜索 API” https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.search.list

这里我们有日期选项,但只能传递 channelId 而不是 playlistId。 那么我们可以在搜索 API 中传递 playlistId 来获取播放列表的所有视频吗?

我还有其他方法可以使用吗?

谢谢

【问题讨论】:

你能select()jq 排序吗? 【参考方案1】:

PlaylistItems:list 没有任何方式来排序结果 - 播放列表顺序按所有者指定的顺序返回。 Search:list 也不允许您指定播放列表。

播放列表所有者是否将新视频添加到播放列表的开头或结尾?如果是开始,您可以尝试获取前 X 个视频并将发布日期与当前日期进行比较。

【讨论】:

我们想让它通用(适用于 youtube 上的任何播放列表),所以真的不能依赖播放列表所有者...如果所有者将其添加到开头,逻辑将起作用,但如果所有者添加它呢最后,我们将最终获取播放列表中的所有视频以获取最新视频...【参考方案2】:

查看使用 Videos.list 的指南,它没有提到此功能可用,其中列表在返回响应正文时很容易排序。尝试首先将结果放入容器中,您将在其中实现自己的日期比较以对项目进行排序。这个SO thread 似乎证实了这一点。

【讨论】:

如果我们使用自己的容器进行比较,我们最终可能会获取播放列表的所有视频以获取最新添加的视频。(可能是最新添加的视频在结果中最后)....所以如果我们在播放列表中有 50000 个视频,并且在特定日期仅添加了 2 个,我们可能需要获取所有 50000 个视频才能获取这 2 个新添加的视频...:( 暂时不支持。也许您可以开始这个项目或提交功能请求。

以上是关于如何使用 youtube api 获取按发布日期排序的播放列表的视频的主要内容,如果未能解决你的问题,请参考以下文章

如何在 android 的 Youtube API V3 中按频道 ID 获取 Youtube 直播?

如何使用 YouTube API V3 获取频道

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

如何搜索按日期和视图排序的YouTube视频?

如何使用 Youtube API 获取 Youtube 频道横幅?

如何使用 Youtube Javascript API 获取 youtube 用户的观看历史记录?