问答
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 的政策,也等得起审核,申请提高配额是正路。要做覆盖很多主题的关键词监测,可以看内容研究方案和价格页。
更新于