Pluviobyte/douyin-comments

★ 318⑂ 84

抓取抖音单条视频完整评论区(一级 + 楼中楼)的 Agent Skill:在已登录的 Chrome 里照抄页面真实请求,签名交给页面 SDK

About Pluviobyte/douyin-comments

Pluviobyte/douyin-comments is an open-source project on GitHub, mainly written in JavaScript. 抓取抖音单条视频完整评论区(一级 + 楼中楼)的 Agent Skill:在已登录的 Chrome 里照抄页面真实请求,签名交给页面 SDK It currently holds 318 stars and 84 forks with 0 open issues, and was last pushed on an unknown date (repository created unknown).

Project Overview

AI Homed tracks it on the Today's Trending board, currently at rank #93 with 0 new stars today.

GitHub Repository Details

Repository Pluviobyte/douyin-comments · default branch - · size 0 KB · watchers 0 · source: GitHub REST API and repository README

README

douyin-comments

抓取抖音单条视频完整评论区的 Agent Skill。 抓取范围包括一级评论、全部楼中楼回复和视频详情,可选下载 720p 视频,最终输出一份按点赞排序的 评论全文.md 和原始 JSON。

请求在你自己已登录的 Chrome 页面里发出,签名交给页面自带的 SDK 计算。不需要 TikHub 之类的付费接口,不需要 Playwright,也不用逆向 a_bogus。

实测

| 视频 | 抓到 | 视频显示评论数 | 请求 / 耗时 | 验证码 | | --- | --- | --- | --- | --- | | 7 分钟 AI 工具视频 | 一级 83 + 回复 112 = 195 | 195 | 35 次 / 138 秒 | 无 | | 46 分钟教程 | 一级 77 + 回复 58 = 135 | 135 | 63 次 / 252 秒 | 无 |

第一条与逐个手动点「展开回复」抓到的结果逐条比对,完全一致。手动方式用了约 6 分钟。

原理

抖音 Web 评论接口要带 a_bogus、msToken、uifid 等风控参数。如果只带 device_platform 和 aid 去调楼中楼接口,会立刻弹出文字点选验证码,请求一直挂起。原因是缺少页面正常请求里都有的那 30 多个公共参数。

所以这个 skill 不自己拼参数,而是照抄页面的真实请求:

1. page_hook.js:拦截页面自己发出的第一次评论请求,把它的 URL 和请求头记成模板。 2. page_fetch.js(主路线):之后每次请求只替换 aweme_id、cursor、comment_id 三个参数,其余照抄。请求从页面内的 XHR 发出,由页面 SDK 补上签名。 3. page_ui_expand.js(兜底路线):在评论区逐个点「展开 N 条回复」,由页面自己发请求,脚本只截获响应。这条路线慢,但不会触发风控。 4. recv.py:本机接收服务,页面把每一页响应 POST 到 127.0.0.1 落盘。 5. build_report.py:合并去重,逐楼核对回复数有没有抓全,再生成 评论全文.md。

请求节奏为每次间隔 2~4 秒,每 15 次额外停 8~15 秒。

依赖

安装

git clone https://github.com/Pluviobyte/douyin-comments.git ~/.claude/skills/douyin-comments

也可以放到项目的 .claude/skills/ 下。如果目标目录已存在,先检查里面的内容,不要直接覆盖。

使用

在 Claude Code 里给一个抖音视频链接,并说明要抓评论:

抓一下这条视频的评论区 https://www.douyin.com/video/7xxxxxxxxxxxxxxxxxx

支持三种链接:douyin.com/video/、带 modal_id= 的主页链接,以及 v.douyin.com 短链。

产出默认写到当前项目的 .internal/抖音评论/<aweme_id>/:

raw/                  # 模板、每页原始响应、接收日志
comments_top.json     # 一级评论(去重)
comments_replies.json # 楼中楼回复(去重)
评论全文.md            # 按点赞排序,回复缩进在所属评论下面
参考视频.mp4           # 可选

完整流程见 SKILL.md。

边界

致谢

整体思路参考了 MediaCrawler:公共参数集、uifid 请求头、先抓一级评论再逐楼抓回复、请求间留间隔。本仓库没有使用它的代码。

GitHub Stars & Activity

318Stars
84Forks
0Open issues
JavaScriptLanguage

GitHub Popularity

GitHub stars318
Forks84
Open issues0
Primary languageJavaScript
License-
Stars gained today0
Created-
Last pushed-

Trending History

Daily boardrank #93 · ▲ 0 stars

Related AI Projects

1

DietrichGebert / ponytail

JavaScript★ 181,437⑂ 9,980▲ 621 stars
→
2

addyosmani / agent-skills

JavaScript★ 112,181⑂ 11,746▲ 224 stars
→
3

Leonxlnx / taste-skill

JavaScript★ 106,906⑂ 7,234▲ 700 stars
→
4

Orkas-AI / Orkas

JavaScript★ 6,044⑂ 365▲ 1,118 stars
→
5

heydamir / unslop

JavaScript★ 3,178⑂ 160
→
6

microsoft / power-platform-skills

JavaScript★ 1,094⑂ 222▲ 9 stars
→
7

jacke-pp / open-yoki

JavaScript★ 583⑂ 39
→
8

sleepy-zone / ai-ref-library-cn

JavaScript★ 504⑂ 137
→

More AI Rankings