我已经在这里多次提到此问题,但是到目前为止,我还没有看到任何解决方案。可以肯定的是,这是API中的错误,但是可以解决该问题的任何帮助。
问题:我正在尝试通过使用v3 playlistItems API调用来获取播放列表中的所有项目。有时它完全按预期工作,但有时只返回部分结果集。当返回部分/不完整的列表时,有两件事总是正确的:
该行为完全独立于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
在此先感谢您能提供的任何帮助。