问答

YouTube Data API 搜索配额几下就用完了,怎么多搜一些?

简短回答

把搜索换到 YouTube 视频搜索接口上跑,没有每日上限:每页约 20 个视频,带播放量和频道,$0.004。手里有 Google key 的,点赞和评论数继续用官方 videos.list 拿(1 个配额单位),每日搜索上限就不再卡你。

你给客户盯 30 个关键词,每天早上每个词看 5 页结果,一天就是 150 次搜索调用。Google 的配额说明写着:新项目每天默认 100 次 search.list,单独一个配额桶,每多翻一页就多算一次。于是脚本跑到第 21 个词就停了,要等太平洋时间零点才重置。

可以向 Google 申请提高配额,代价是应用要过审核,还得等。另一个办法是把搜索挪到按页收费、不设上限的地方。

没有每日上限的搜索

YouTube 视频搜索传 query 和 sort(relevance、latest 或 most_viewed),每页返回约 20 个视频:标题、链接、播放量、频道、发布时间和封面。用 cursor 翻页,每页算一次调用。

curl -s -G "https://api.okdata.online/v1/youtube/videos/search" \
  -H "Authorization: Bearer $OKDATA_API_KEY" \
  --data-urlencode "query=standing desk review" \
  -d sort=most_viewed \
  -d fields=id,title,published_at,metrics.views,author.name
每日任务 调用次数 每天费用
30 个词 × 1 页 30 $0.12
30 个词 × 5 页 150 $0.60
1,000 条结果 50 $0.20

多数团队最后用的组合

这里的搜索结果不带 metrics.likes 和 metrics.comments(为 null,并写在 meta.unavailable 里)。需要的话,把视频 ID 交给官方 videos.list,一次最多 50 个 ID,只花 1 个单位。每天 150 次搜索换算过来,大约用掉 10,000 单位里的 60 个,搜索配额桶则一次都不用碰。

不想维护 Google key 的,YouTube 视频详情也能返回点赞和评论数,每个视频 $0.004。

要注意的地方

  • latest 并不严格按时间排,结果仍然按相关度来。在意新旧的话,自己按 published_at 排序;它有时是从 3 周前这类相对时间推算出来的,只能当近似值。
  • 加 view=full 会多一个 ext.length_s 时长,用来区分短视频长度的片段和长视频很方便。
  • 每页都是一次单独的调用。每天监测时,翻到昨天已经见过的视频就可以停了。
  • 结果和 YouTube 自己的搜索一致,没有按地区或上传日期过滤的参数。

官方 API 够用的情况

每天只搜几个词,免费配额完全够,还能用 Google 自带的 publishedAfter、regionCode 等过滤条件。如果你的用途符合 YouTube 的政策,也等得起审核,申请提高配额是正路。要做覆盖很多主题的关键词监测,可以看内容研究方案和价格页。

更新于