问答
怎么把 YouTube 视频评论导出成 CSV 或 Excel?
简短回答
用 YouTube 视频评论接口(/v1/youtube/videos/comments/list)逐页拉取,每条评论写一行 CSV:每页约 20 条,$0.004,1,000 条评论共 $0.20。每行有正文、作者、点赞、回复数和日期;用带 BOM 的 UTF-8 保存,Excel 打开表情和中文都不会乱码。
上周发的产品测评视频已经有 3,000 条评论,市场负责人要你明天之前整理成表格,按点赞排好,方便团队给吐槽和功能需求打标签。超过几十条,从网页上复制粘贴就没法干了,写个小脚本几分钟就能搞定。
用哪个接口
YouTube 视频评论传视频 id 和 sort(top 按热门,latest 按最新),每次返回约 20 条,每条带 text、author、likes、replies 和 published_at。把 page.next_cursor 作为 cursor 传回去,直到 page.has_more 为 false。
脚本
import csv, os, requests
API = "https://api.okdata.online/v1/youtube/videos/comments/list"
H = {"Authorization": f"Bearer {os.environ['OKDATA_API_KEY']}"}
VIDEO = "dQw4w9WgXcQ" # 链接里 v= 后面那一段
MAX_PAGES = 150 # 约 3,000 条评论
rows, cursor = [], None
for _ in range(MAX_PAGES):
params = {"id": VIDEO, "sort": "top", **({"cursor": cursor} if cursor else {})}
body = requests.get(API, headers=H, params=params, timeout=60).json()
if body["code"] != "ok":
raise RuntimeError(f"{body['code']}: {body['message']}")
for c in body["data"]["items"]:
rows.append([c["id"], c["published_at"], c["author"]["name"], c["likes"], c["replies"], c["text"]])
if not body["page"]["has_more"]:
break
cursor = body["page"]["next_cursor"]
with open(f"{VIDEO}-comments.csv", "w", newline="", encoding="utf-8-sig") as f:
w = csv.writer(f)
w.writerow(["comment_id", "published_at", "author", "likes", "replies", "text"])
w.writerows(rows)
print(len(rows), "条评论已保存")
utf-8-sig 会在文件开头写一个 BOM,Excel 靠它才能正确显示表情和中文。评论里的逗号、换行,csv 模块会自动加引号处理。
导出之后,在 Excel 里加一列标签,比如吐槽、功能需求、夸奖、提问,按点赞从高到低往下标。点赞多的评论往往代表更多人的看法,先把这一批标完,再决定剩下的要不要细看。
费用
| 评论量 | 调用次数 | 费用 |
|---|---|---|
| 500 条 | 25 | $0.10 |
| 1,000 条 | 50 | $0.20 |
| 3,000 条 | 150 | $0.60 |
实际翻了几页就付几页的钱。用 MAX_PAGES 提前停下,账单也就停在那里。
表格里不会有的东西
- 楼中楼回复。 拿到的是一级评论和它的回复数,回复内容本身没有。
- 精确的旧日期。 日期有时是从 2 个月前这类标签推算出来的,越早的评论越只能当近似值。
- 评论者所在地。 YouTube 不显示,这个字段是 null。
其他做法
- 官方 YouTube Data API。
commentThreads.list每次只消耗 1 个配额单位,还带部分回复。有 Google key、量又不大的话,它免费,也是更好的选择。 - youtube-comment-downloader。 开源命令行工具,在你的网络上能跑通的话,导一次很方便;它的 issue 里还有人分享了转成 Excel 的写法。
- 手工复制。 50 条以内,直接复制粘贴也行。
想大批量读懂评论在说什么,可以看口碑分析方案。
更新于