给 AI

操作指南

怎么导出某个话题下所有 YouTube 视频的评论

先用 YouTube 视频搜索找到视频,再对每条视频翻页调 YouTube 视频评论。下面的示例一共 9 次调用,花费 $0.02;失败的调用不扣费。

更新于

要做的事:你在卖某个产品,或者准备卖,相关的测评视频下面有成千上万条评论,有买家也有观望的人。先搜出大家真正在看的那些视频,再把每条视频下的评论读进同一张表。最后得到一个 CSV,每行一条评论,带所属视频、内容、作者、点赞、回复数和日期,可以人工打标签,也可以交给模型归纳出吐槽和好评。

不需要 Google Cloud 项目,不用申请 API key,也不用申请配额。每次调用就是带着 key 发一个 HTTPS 请求。

分步操作

第一步:找到视频

调用YouTube 视频搜索,填 query 和 sort:relevance(默认,相关度)、latest(最新)或 most_viewed(播放最多)。一次调用返回约 20 条视频,每次 $0.004,每条有 id、title、url、频道信息 author 和 metrics.views。搜索结果里 metrics.comments 为 null,所以按播放量挑视频。

curl -G "https://api.okdata.online/v1/youtube/videos/search" \
  -H "Authorization: Bearer $OKDATA_API_KEY" \
  --data-urlencode 'query=robot vacuum review' \
  -d sort=most_viewed \
  -d fields=id,title,author.name,metrics.views

第二步:翻页读评论

把视频的 id 传给YouTube 视频评论。sort 可选 top(默认,即 YouTube 的“热门评论”顺序)或 latest(从新到旧)。想看大多数观众看到的评论用 top;视频还在持续涨评论、想跟进最新动态时用 latest。

一次调用返回约 20 条评论,每次 $0.002。每条有 id、text、author(name 和 username,后者是 @ 开头的那个账号名)、likes、replies(下面有几条回复)和 published_at。要下一页,就把 page.next_cursor 原样作为 cursor 传回去;page.has_more 为 false 时停下。

curl -G "https://api.okdata.online/v1/youtube/videos/comments/list" \
  -H "Authorization: Bearer $OKDATA_API_KEY" \
  -d id=h4Lw0pZk3sE -d sort=top

第三步:用 Python 串起来

脚本留下播放量最高的 4 条视频,每条读 MAX_PAGES 页评论。每一页都是一次单独的调用,所以页数上限同时也是花费上限。

import csv
import os
import requests

API = "https://api.okdata.online"
HEADERS = {"Authorization": f"Bearer {os.environ['OKDATA_API_KEY']}"}
VIDEOS = 4
MAX_PAGES = 2  # 每条视频读几页评论;每页一次调用


def get(path, **params):
    body = requests.get(API + path, headers=HEADERS, params=params, timeout=60).json()
    if body["code"] != "ok":
        raise RuntimeError(f"{body['code']}: {body['message']} (charged: {body['charged']})")
    return body


found = get("/v1/youtube/videos/search", query="robot vacuum review", sort="most_viewed")["data"]["items"]
videos = sorted(found, key=lambda v: v["metrics"]["views"] or 0, reverse=True)[:VIDEOS]

with open("youtube_comments.csv", "w", newline="", encoding="utf-8-sig") as f:
    out = csv.writer(f)
    out.writerow(["video_id", "video_title", "comment_id", "author", "likes", "replies", "published_at", "text"])
    for v in videos:
        cursor = None
        for _ in range(MAX_PAGES):
            body = get("/v1/youtube/videos/comments/list", id=v["id"], sort="top", **({"cursor": cursor} if cursor else {}))
            for c in body["data"]["items"]:
                out.writerow([v["id"], v["title"], c["id"], c["author"]["name"], c["likes"], c["replies"], c["published_at"], c["text"]])
            if not body["page"]["has_more"]:
                break
            cursor = body["page"]["next_cursor"]

utf-8-sig 会在文件开头写一个 BOM,Excel 打开时表情和外文才不会乱码。想读得更深,就调大 MAX_PAGES:4 条视频各读 10 页是 40 次评论调用,在搜索之外再花 $0.08。

注意事项

  • 只有一级评论。 能拿到每条评论的回复数,拿不到回复正文;这里的 parent_id 始终为 null。
  • 日期是估算的。 published_at 是从“2 个月前”这类标签推算的,越早的评论日期越粗。
  • 没有评论者属地。 YouTube 不显示这个信息,ip_location 为 null,并在 meta.unavailable 里注明。
  • 删掉的视频不收钱。 已经不存在的视频返回 not_found,不扣费。
  • 官方配额。 按 Google 的配额计算页,新项目每天有 100 次 search.list,单独计算;其他方法合计每天 10,000 个单位,太平洋时间零点重置。commentThreads.list 每次消耗 1 个单位,一次最多返回 100 条评论串。如果你已经有 Google 项目,主要是读评论,官方 API 更省钱;按话题批量跑时,通常是搜索配额先用完。
  • 重试不会重复扣费。 每次调用带一个 Idempotency-Key 请求头。24 小时内同样的请求配同样的 key,会直接拿回上次的结果,meta.replayed 为 true,不再扣费。

只导出单条视频的评论到表格,看怎么把 YouTube 视频评论导出成 CSV。卡在每天的搜索次数上,看YouTube 搜索配额用完怎么办。

示例花费

搜一页播放最多的扫地机器人测评(robot vacuum review)视频,再取播放量前 4 条视频各两页热门评论

接口调用次数单价小计
YouTube 视频搜索1$0.004$0.004
YouTube 视频评论8$0.002$0.016
合计9$0.02

按本页生成时的价格计算。失败的调用不扣费。

在你的 AI 里用(MCP)

先接好 MCP 服务,然后直接说你要什么。智能体会自己找到这些接口、看清价格,再用你的余额调用。

可以这样说在 YouTube 搜 robot vacuum review,按播放量排序。挑播放最多的 4 条视频,每条取两页热门评论,整理成一张表:视频、评论内容、作者、点赞、回复数、日期。再把出现不止一次的吐槽点列出来。

智能体第一次调用 call 工具时发送的内容
{
  "endpoint": "youtube.videos.search",
  "params": {
    "query": "claude code tutorial"
  },
  "idempotency_key": "<新的 UUID>"
}

配置 MCP 服务 →

资料来源

  1. YouTube Data API: Quota calculatordevelopers.google.com · 读取于
  2. YouTube Data API: CommentThreads: listdevelopers.google.com · 读取于

接上一次,以后直接问 AI。

新 key 自带 $0.10 试用额度。贴一句话,就能接进你的智能体。

免费开始
一句话接进你的 AI

把这句话发给你的智能体

读一下 https://okdata.online/zh/agents.md,帮我把 okdata 配好;我的 key 在环境变量 OKDATA_API_KEY 里。

Claude Code、Cursor、Codex 等能打开网址的智能体,读完会自己配好。

MCP 地址https://api.okdata.online/mcp