【发布时间】:2019-11-12 10:15:07
【问题描述】:
我正在使用 Youtube Api 获取频道的所有视频详细信息
在第一个响应中,我可以看到有 761525 个结果,并且 nextPageToken 也在那里,但是使用该下一页令牌我可以在该 API 没有给我任何结果之后最多 300 到 400 个视频详细信息。
那么还有其他方法可以获取所有视频详细信息吗?还是我遗漏了什么?
【问题讨论】:
标签: youtube youtube-api
我正在使用 Youtube Api 获取频道的所有视频详细信息
在第一个响应中,我可以看到有 761525 个结果,并且 nextPageToken 也在那里,但是使用该下一页令牌我可以在该 API 没有给我任何结果之后最多 300 到 400 个视频详细信息。
那么还有其他方法可以获取所有视频详细信息吗?还是我遗漏了什么?
【问题讨论】:
标签: youtube youtube-api
YouTube 为任何搜索请求返回 500 个视频的软限制。
如果 totalResults 中的数量超过此数量,您可以使用 publishedAfter 和 publishedBefore 过滤器拆分搜索查询,以按天/周/月等循环遍历日期。 ,确保每个“时间窗口”返回小于 500 的限制。最终,您将获得所有结果。
【讨论】:
在您第一次请求 API 调用后,例如: https://www.googleapis.com/youtube/v3/search?part=snippet,id&key=XXXXXXXX&channelId=UCq-Fj5jknLsUf-MWSy4_brA&order=date&maxResults=50
您需要获取该(第一个)结果的 nextPageToken 参数,并将其提供给下一个(第二个)请求。假设第一个结果的nextPageToken是ABCDEFG,你的下一个请求一定是这样的: https://www.googleapis.com/youtube/v3/search?part=snippet&pageToken=ABCDEFG,id&key=XXXXXXXX&channelId=UCq-Fj5jknLsUf-MWSy4_brA&order=date&maxResults=50
看到在 sn-p 之后我添加了 &pageToken=ABCDEFG。然后您再次获取此(第二个)结果的参数 nextPageToken 的字符串并将其提供给您的下一个(第三个)请求。因此,您需要使用 while 循环执行此操作,直到 nextPageToken 为空,这意味着您已达到边界编号(在您的情况下为 761525 结果)。或者,您可以通过获得一定数量的结果来解决此问题。
总结:
【讨论】: