从播放列表中排序Youtube API结果

Let*_*ers 12 youtube video youtube-api youtube-data-api

我现在一直在努力使用Youtube的API v3而且我无法按照我想要的方式工作.我的目标是将选定播放列表中的最新视频加载到我的网站中.问题是我只是我回复中最老的视频.

要加载播放列表,我请求以下API URI:https: //www.googleapis.com/youtube/v3/playlistItems

以下是请求示例(只需点击执行):http: //developers.google.com/apis-explorer/#p/youtube/v3/youtube.playlistItems.list?part = id%252Csnippet%2522CtentDetails%2522Cstatus&playlistId = PLOU2XLYxmsIKGo-dgliIJQNZ6L3G8UV4b&_h = 1&

如何对结果进行排序并首先获取最新视频?我在文档中找不到任何内容,我一直在谷歌上搜索没有任何运气.如果您无法对结果进行排序,则此API没有任何意义.唯一的方法是通过令牌继续加载下一页加载所有视频,但这只是疯了.

任何的想法?听起来像一个基本问题,但我找不到解决方案......

Vin*_*nto 13

当前API没有用于列出播放列表项的排序选项,但如果您以编程方式插入项,则可以position在插入时指定值,以使新视频显示在列表顶部.

如果是其他人正在添加视频,那么您必须获取所有页面.由于播放列表限制为200个项目,因此最多需要4个请求.不理想,但现在是唯一的选择.

  • 好的,这是我害怕的.如果你问我,那么相当无用的API. (14认同)
  • 刚刚注意到结果是根据播放列表设置排序的?(你当然必须改变自己). (2认同)

Pau*_*mas 6

这似乎是目前YouTube API的限制,并且其创作者似乎非常短视.

这并不能解决您的确切问题,但对于遇到类似问题的其他人,我发现使用"搜索"查询可以在一定程度上进行排序.

这有助于我通过搜索播放列表来订购播放列表(而不是playlistItems)查询,而不是请求播放列表列表.因此我的查询:

https://www.googleapis.com/youtube/v3/playlists?part=snippet&maxResults=20&channelId={channelID}&key={API_KEY}
Run Code Online (Sandbox Code Playgroud)

成为:

https://www.googleapis.com/youtube/v3/search?part=snippet&type=video&order=date&safeSearch=none&maxResults=20&channelId={channelID}&key={API_KEY}
Run Code Online (Sandbox Code Playgroud)

您还可以搜索视频和查询术语以及其他几个参数,因此您可以通过这种方式获得所需的结果.