YouTube playlistItems API返回的结果集不完整

时间:2020-01-21 12:25:20

标签: youtube-api youtube-data-api

我已经在这里多次提到此问题,但是到目前为止,我还没有看到任何解决方案。可以肯定的是,这是API中的错误,但是可以解决该问题的任何帮助。

问题:我正在尝试通过使用v3 playlistItems API调用来获取播放列表中的所有项目。有时它完全按预期工作,但有时只返回部分结果集。当返回部分/不完整的列表时,有两件事总是正确的:

  • 仅退回26件商品。将totalResults和resultsPerPage正确设置为播放列表中的全部项目,但实际上[Items]中将仅填充26个项目。如果期望使用多页结果集,则在超过第26号项目后,您将收到多页的空白项目[]。
  • 此错误行为是列表的属性。如果列表显示此行为,则显然将始终显示此行为。有些列表总是可以正常工作,而其他列表似乎总是会截断26个项目。

该行为完全独立于maxResults,因此,如果设置maxResults = 50并查询其中包含50个项目的播放列表,结果将显示totalResults = 50,但实际上只能填充26个项目。

无论造成此问题的根本原因是什么,我都认为,如果totalResults报告的结果集与实际结果中的实际数目不同,那显然是一个错误。

我已经看到建议使用iframe API作为可能的解决方案,但是我需要在Swift的后台线程上反序列化结果,因此我更喜欢使用v3数据API,前提是它可以按照文档。

我将在下面提供3个示例。将[key]替换为API密钥后,可以通过将URL粘贴到浏览器中来观察结果。

示例1:

https://www.googleapis.com/youtube/v3/playlistItems?key=[key]&playlistId=RDCLAK5uy_kGA_NH_mqT53XwMP_IHL21Pi_bdYBeG58&maxResults=50&part=snippet

pageInfo:
- totalResults : 50
- resultsPerPage : 50

Items returned, page 0:
- Expected : 50
- Got : 26

Total items returned: 26 / 50

示例2:

https://www.googleapis.com/youtube/v3/playlistItems?key=[key]&playlistId=RDCLAK5uy_mfdqvCAl8wodlx2P2_Ai2gNkiRDAufkkI&maxResults=50&part=snippet

pageInfo:
- totalResults : 81
- resultsPerPage : 50

Items returned, page 0:
- Expected : 50
- Got : 26

Items returned, page 1:
- Expected : 36
- Got : 0

Total items returned: 26 / 81

示例3:

https://www.googleapis.com/youtube/v3/playlistItems?key=[key]&playlistId=RDCLAK5uy_nUi8B-S9ckz5feHM7oMGyQQ_eKW2Zl9aE&maxResults=50&part=snippet

pageInfo:
- totalResults : 112
- resultsPerPage : 50

Items returned, page 0:
- Expected : 50
- Got : 26

Items returned, page 1:
- Expected : 50
- Got : 0

Items returned, page 2:
- Expected : 12
- Got : 0

Total items returned: 26 / 112

在此先感谢您能提供的任何帮助。

0 个答案:

没有答案