api - YouTube Data API playlistItems :List only returns max of 100 data items - or 2 pages of data, 工作正常 7 月 16 日

标签 api youtube

我正在使用 YouTube Data API v3 - 今天 playlistItems:List 仅返回所有视频播放列表的最多 100 个数据项或 2 页数据(UU + channel ID 的最后 22 个字符)。我相信下一页标记在第一页之后也可能不正确,因为它在第三页上显示了错误的上一页标记。

UPDATE: Further testing shows that the playlistItems:List api works correctly 
for some channels -

All video playlist - UU4mLlRa_dezwvytudo9s1sw works

https://developers.google.com/youtube/v3/docs/playlistItems/list?apix=true&apix_params=%7B%22part%22%3A%5B%22id%2Csnippet%22%5D%2C%22maxResults%22%3A50%2C%22playlistId%22%3A%22UU4mLlRa_dezwvytudo9s1sw%22%7D


but at least two others do not work correctly and only return 100 items:

UUGGZ_POGmIWG1pQXTDzQv-g
UUwD4x63A9KC7Si2RuSfg-SA

这已经正常工作了好几年。它在 7 月 16 日正常工作。同样的行为发生在 API Explorer 中。
所有视频播放列表 UUwD4x63A9KC7Si2RuSfg-SA 的 API Explorer 示例和结果:https://developers.google.com/youtube/v3/docs/playlistItems/list?apix=true&apix_params=%7B%22part%22%3A%5B%22id%2Csnippet%22%5D%2C%22maxResults%22%3A50%2C%22pageToken%22%3A%22CDIQAA%22%2C%22playlistId%22%3A%22UUwD4x63A9KC7Si2RuSfg-SA%22%7D
first page of results:

{
  "kind": "youtube#playlistItemListResponse",
  "etag": "oE9yCl2NBCpgzQbX82RR1jjqkco",
  "nextPageToken": "CDIQAA",
  "items": [


second page - page token CDIQAA:

{
  "kind": "youtube#playlistItemListResponse",
  "etag": "w8PJ0yDadTWJfwSP2CWcODoMzuk",
  "nextPageToken": "CGQQAA",
  "prevPageToken": "CDIQAQ",
  "items": [

third page - page token CGQQAA:

{
  "kind": "youtube#playlistItemListResponse",
  "etag": "AQSyYYKWgu50RiGPA10TjRTE7Ys",
  "nextPageToken": "CJYBEAA",
  "prevPageToken": "CGQQAQ",    
  "items": [],                  <---- NO DATA, but 521 items still to show
  "pageInfo": {
    "totalResults": 621,
    "resultsPerPage": 50
  }
}
可能的解决方法
  • 使用 YouTube 数据 API v3 - 搜索:指定 channel ID、无查询和结果过滤器类型 = 视频的列表。这在配额方面很昂贵,每个查询/页面 50 个结果需要 100 个配额。然而,这个 API 现在似乎最多可以为一个 channel 提供大约 300 个结果。
  • 使用 YouTube Data API v3 - playlistItems:List 和 channel 所有者授权的 OAuth token ,而不是公共(public) API key 。这和以前一样工作,没有 100 项限制。但是,这意味着如果没有所有者的 OAuth token ,您将无法获取 channel 或播放列表的视频列表(超过 100 个视频)。
  • 最佳答案

    这是 YouTube API 中的一个已知错误。该错误的公开确认和跟踪在这里:https://issuetracker.google.com/issues/161628022
    编辑:似乎已于 2020 年 7 月 24 日修复
    也有一些重复。我发现

  • https://issuetracker.google.com/issues/147096849
  • https://issuetracker.google.com/issues/161399038

  • 可能最好只是等待它修复。它只被打开/分配了一天左右,所以它可能会很快得到修复。再说一次,它可能不会。它以前发生过,需要很长时间才能修复。
    启发式地,在我看来这是对未列出的播放列表的限制,也就是说,playlists.list 未返回的播放列表鉴于 channelId .
    我检查并确认即使使用较小的页面大小,也只会为未列出的播放列表返回前 100 个播放列表项目(我只查看了“上传”播放列表,因为我手边没有很多大的未列出的播放列表),并使用页面大小共 50 个,列出的播放列表将返回所有项目(播放列表 PLC474234E124B5213 返回所有 102 个项目,播放列表 FLSC1HqVmTaE4Shn32ihbC7w 返回所有 136 个项目)。根据我的经验,YouTube API 中的此类错误很少有解决方法。不值得花很多时间在上面。暂时接受限制,记录(向任何关心的人)这是一个已知的错误/限制,然后继续前进,就好像它是一个记录在案的限制,并有一个待处理的功能请求以消除限制。

    关于api - YouTube Data API playlistItems :List only returns max of 100 data items - or 2 pages of data, 工作正常 7 月 16 日,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62963399/

    相关文章:

    node.js - 使用 Axios 将 React 请求发送到 mongodb

    google-chrome-extension - Chrome 扩展程序未在 YouTube 的浏览器导航中加载

    jquery - 如何仅定位 YouTube iframe 网址?

    youtube - 如何在 youtube-dl 中设置默认下载位置

    javascript - 是否可以确定用户是否完成了使用api观看嵌入式youtube视频的操作?

    javascript - 如何从列表中播放随机视频?

    ios - Alamofire POST 错误 token - Swift

    api - 使用 Swagger 和 ServiceStack 记录响应类

    php - 如何使 Magento 页面完全空白?

    c# - 如何使用 API 查找给定错误的 TFS 测试用例数