如何获得playlistItem使用videoId和playlistId的maxResults范围



PlaylistItem没有被videoIdplaylistId检索到。

如果不在maxResults范围内,则会出现此情况。

你会得到item has data below query.

GET https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=3&playlistId=PLLALQuK1NDrgb03P3lIgK7SrBdYbuh4_5&videoId=H4lRmVy_qYc&key={YOUR_API_KEY}

你这次拿不到物品。

GET https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=2&playlistId=PLLALQuK1NDrgb03P3lIgK7SrBdYbuh4_5&videoId=H4lRmVy_qYc&key={YOUR_API_KEY}

试试这里

唯一不同的是maxResults的数量。playlistItem的索引是3,所以它没有被检索到。

这是很好的,除非我会试着得到PlaylistItem,这是maxResults的最大数量。但我必须这么做。这让我很沮丧。

有什么解决办法吗?

API的这种行为实际上是相当令人困惑的,我不希望发生这样的事情。毕竟,maxResults参数的文档说明:

maxResults参数指定结果集中应该返回的最大项数。

由于视频在播放列表中出现了两次,因此应该假设将maxResults参数设置为2或3或任何大于该值的数字的请求将返回两个项目。

可能解决方法

我真的不明白为什么你不能把maxResults参数提高到50,但这将工作:

首先,获取播放列表中所有视频的列表(没有videoId参数)。设置maxResults为"50"。这样的话,你必须为播放列表中的每50个视频做一个请求,但至少这个方法是可靠的。确保在响应中考虑任何nextPageToken属性。这是获取超过maxResults的项目的最简单方法。

可选,如果您不需要进一步的信息(如视频描述等),可以将fields参数设置为items(snippet(position,resourceId/videoId)),nextPageToken。这样,它将只返回必要的信息并减少响应的大小。您的查询可以像这样:

GET https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=50&playlistId=PLLALQuK1NDrgb03P3lIgK7SrBdYbuh4_5&fields=items(snippet(position%2CresourceId%2FvideoId))%2CnextPageToken&key={YOUR_API_KEY}

(fields参数是使用字段编辑器在"Try it!"区域中组成的)

现在您已经有了播放列表中所有项目的视频id,只需检查您的id是否在其中

相关内容

  • 没有找到相关文章

最新更新