【问题标题】:How to get videos for a playlist in sorted by publish date using youtube api如何使用 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 排序吗?

标签: youtube-api youtube-data-api


【解决方案1】:

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

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

【讨论】:

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

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

【讨论】:

  • 如果我们使用自己的容器进行比较,我们最终可能会获取播放列表的所有视频以获取最新添加的视频。(可能是最新添加的视频在结果中最后)....所以如果我们在播放列表中有 50000 个视频,并且在特定日期仅添加了 2 个,我们可能需要获取所有 50000 个视频才能获取这 2 个新添加的视频...:(
  • 暂时不支持。也许您可以开始这个项目或提交功能请求。
猜你喜欢
  • 1970-01-01
  • 2015-07-26
  • 1970-01-01
  • 2011-01-30
  • 2011-06-04
  • 1970-01-01
  • 1970-01-01
  • 2012-12-26
  • 2012-11-01
相关资源
最近更新 更多