【问题标题】:YouTube Data API : Inconsistency between /playlistItems and /search endpointsYouTube 数据 API:/playlistItems 和 /search 端点之间的不一致
【发布时间】:2016-07-13 18:31:34
【问题描述】:

我正在尝试获取频道中的所有视频。我注意到 /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 但 items 只包含 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

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

有没有人有解决方案来获取频道的所有视频,而不会产生拨打/search 的更高费用?

潜在相关:

youtube api playlistitems deleted videos

编辑:

我刚刚注意到频道统计信息还返回了 23 个 videoCount

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

【问题讨论】:

  • 我认为你不能在这两个请求中获得相同数量的结果,因为频道和播放列表不一样,或者两者里面的视频不一样。那么你真正的问题是什么?你想用这个实现什么?
  • 我正在尝试获取频道中的所有视频,方法是调用/playlistItems。我的问题是项目的数量和totalResults 似乎不同,使我的代码认为我缺少视频。

标签: youtube-api youtube-data-api


【解决方案1】:

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

尽管接受channelId,但结果甚至不能保证仅来自该频道。此外,尽管广告的项目总数,搜索调用可能会在 100 个结果后停止返回项目。 (我见过有人使用publishedBefore参数来尝试让它变得更多,但它通常不可靠。)

最好的办法是使用playlistItems list 调用。总计可能不准确,因此仅使用页面标记。在像 YouTube 这样庞大且分布广泛的系统中,由于多种原因,总数有时可能会有所偏差。

另请注意,搜索调用需要 100 个配额点,而 playlistItems 需要 1 个点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-18
    • 2016-01-20
    • 2020-08-17
    • 1970-01-01
    • 1970-01-01
    • 2020-11-22
    • 1970-01-01
    • 2013-02-16
    相关资源
    最近更新 更多