最近在做 YouTube 评论相关的工具,API 这块踩了几个坑,记录一下。 1. 配额的账要提前算 YouTube Data API v3 免费额度是 10000 units/天,太平洋时间午夜重置。官方配额表里: 方法 每次消耗 作用 commentThreads.list 1 拉顶级评论,一页最多 100 条 comments.list 1 拉某条评论下的回复 search.list 100 按关键词找视频 看起来挺宽裕:1 unit 换 100 条评论,一天理论上能拉 100 万条。 但 search.list 一次 100 units ,而且 它有自己独立的额度桶,每天只有 100 次 。 所以如果你靠关键词去发现视频,配额会先从那儿炸掉,而不是先炸在拉评论上。 [这里写一句你自己实际怎么处理的:视频 ID 是从哪来的、有没有撞过配额上限] 2. 搜索评论不该在前端做 我最初的想法是把评论拉下来,前端 filter 。后来发现 commentThreads.list 本身就有个 searchTerms 参数: GET /youtube/v3/commentThreads?part=snippet&videoId=VIDEO_ID&searchTerms=关键词 这是 YouTube 在服务端搜整条线程,不是只搜你当前已经加载的那一页。省带宽,也省延迟。 两个容易踩的限制: searchTerms 不能和 id 参数一起用,只能配合 videoId 或 allThreadsRelatedToChannelId 它只匹配顶级评论的文本,回复里的内容搜不到,要另外走 comments.list [这里可以写你遇到的某个具体现象,比如搜不到某条回复、或者某类关键词没结果] 3. 分页和回复是两个 endpoint ,请求数不是页数 commentThreads.list 一页最多 100 条( maxResults 上限就是 100 ),翻页靠 nextPageToken 。 但它返回的 replies 字段只是个预览,不是该评论下的全部回复。要拿完整的得再调 comments.list 。 所以评论多的视频,实际请求数约等于「顶级评论的页数 + 有回复的评论条数」,不是页数。 4. 读不需要 OAuth 读公开评论,API key 就够了,不用走 OAuth 。写操作才需要。这点比想象中省事。 我把上面这些做成了个网站: https://apriocity.com 能按关键词搜整条评论线程、按发帖人名字找某条评论、导出 CSV 。前端 Next.js ,后端 Flask + Redis 。 问一个我一直没想好的: 热门视频评论几十万条的时候,你们一般怎么处理配额? 开多个 GCP 项目轮换,还是干脆不上官方 API ?想听听有实际经验的怎么做的。


  • 情报分类:服务器与云资源
  • 分类依据:内容涉及服务器、云资源或网络线路
  • 信息来源:服务器 / V2EX
  • 发布时间:2026/10/2 09:07:48