Youtube playlistItems 不返回所有项目

Posted

技术标签:

【中文标题】Youtube playlistItems 不返回所有项目【英文标题】:Youtube playlistItems do not return all items 【发布时间】:2017-12-31 17:54:03 【问题描述】:

我正在尝试获取整个 Youtube 播放列表,但肯定有问题。看起来 playlistItems 不会返回所有项目。更准确地说,对于较大的播放列表,它总是返回 26 个元素。

已编辑

此问题仅影响悬停“50 多个视频”的播放列表

有趣的事实是它也会影响 Youtube 网站

当您打开以下链接时,您会在右侧看到整个播放列表

https://www.youtube.com/watch?v=OBwl2glmqC0&list=PLhy8TB5U6n17R78U7usaLQfCC8nbnG8Nc

当您在“受影响”播放列表上执行相同操作时,它总是在第 26 个元素结束

https://www.youtube.com/watch?v=p7ZsBPK656s&list=RDQMxZTL9gI53Rg

(此外,“受影响”的播放列表总是有一个较短的 URL)

/已编辑

F.i.

https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=50&playlistId=RDZgEY-EkNGN8

返回

/**
 * API response
 */

  "kind": "youtube#playlistItemListResponse",
  "etag": "\"m2yskBQFythfE4irbTIeOgYYfBU/Juh7DGrIhXG9sC1xb0BKgzZ5Mqo\"",
  "pageInfo": 
    "totalResults": 26,
    "resultsPerPage": 50
  ,
  "items": [
....so on

总结果显示此播放列表包含 26 个元素,这是不正确的,因为它有超过 50 个元素

例如。第 51 个元素

https://www.youtube.com/watch?v=QptgChaqIQY&list=RDZgEY-EkNGN8&index=51

是否有人遇到过类似的问题,或者可能是某种限制,但我没有找到任何相关信息。

提前致谢。

【问题讨论】:

好像是因为播放列表是 YouTube 自动生成的,所以只有 26 个初始结果。 【参考方案1】:

您可以参考此thread。它声明您需要为其他人获取下一页结果。要获得剩余的结果,请执行相同的调用,但将 pageToken 设置为您在响应中收到的 nextPageToken。请注意,maxResults 只允许值 1 到 50。

您也可以关注此reported issue 以获取更新。

【讨论】:

感谢您的回复。请检查我的新编辑部分。该问题仅涉及某些类型的播放列表。 @Fr33c3l 你能分享一下你是如何得到这个结果的吗? https://i.stack.imgur.com/7flY6.png。我正在检查这个问题,我认为您可以使用Youtube Iframe API。

以上是关于Youtube playlistItems 不返回所有项目的主要内容,如果未能解决你的问题,请参考以下文章

Youtube Data API v3 PlaylistItems 更新不适用于“稍后观看”播放列表

Youtube playlistItems 列表 API 有时有效,有时会抛出 404

无法将 playlistItem 插入到播放列表的特定位置

列出播放列表项时返回持续时间?

排除 youtube api 播放列表中显示“视频不可用”的所有视频

从 AlamoFire 导入 JSON 数据后创建数组