YouTube数据API:/ playlistItems和/ search端点之间的不一致

时间:2016-07-13 18:31:35

标签: youtube-api youtube-data-api

我正在尝试获取频道中的所有视频。我注意到/ search和/ playlistItems返回的结果数量不一致。

使用/search时,totalResults = 20会返回20个项目。

https://www.googleapis.com/youtube/v3/search?part=snippet&channelId=UCaLCI9770qY9hGRmdZgVV-g&maxResults=50&type=video&key={YOUR_API_KEY}

但是,使用/playlistItems时(使用方法here),totalResults = 23但项目只包含20个项目。

https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=50&playlistId=UUaLCI9770qY9hGRmdZgVV-g&key={YOUR_API_KEY}

YouTube频道目前在网站上展示了20个视频:https://www.youtube.com/user/1957fenderstrat/videos

totalResults中的/playlistItems是否可能会计算已删除的视频?

是否有人能够获取频道的所有视频,而不会产生较高的/search通话费用?

潜在相关:

youtube api playlistitems deleted videos

编辑:

我刚注意到频道统计信息也会返回videoCount 23。

https://www.googleapis.com/youtube/v3/channels?part=statistics&id=UCaLCI9770qY9hGRmdZgVV-g&maxResults=50&key={YOUR_API_KEY}

1 个答案:

答案 0 :(得分:0)

根据我的经验,Seach调用并不用于枚举频道中的视频。

尽管接受channelId,但甚至无法保证结果仅来自该频道。同样,尽管广告的项目总数很大,但搜索呼叫在几百个结果后仍可以停止返回项目。 (我见过人们使用publishedBefore参数来尝试使它变大,但这通常是不可靠的。)

您最好的选择是使用playlistItems调用。总计可能不够准确,因此只能使用页面标记。在YouTube之类的大型系统中,由于多种原因,总数有时可能会略有下降。

还请注意,搜索通话的费用为100个配额点,播放列表项的费用为1点。