About Douyin MCP
Douyin MCP is an MCP server published by pazwusimple-netizen in the Developer Tools category: 抖音 MCP Server — 让 AI 助手能读懂抖音.
The repository has 22 stars and 5 forks, with the last commit 7 months ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues before depending on it in production.
Install
git clone https://github.com/pazwusimple-netizen/douyin-mcpThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Ask AI
Ask AI about Douyin MCP
Powered by Claude · Grounded in docs
Security checks
Static checks derived from the repository 6 days ago. Heuristics on the source, not an audit.
- ✓README presentThe repository ships documentation.
- ✓License declaredUsable under a stated license.
- ✓Tests presentA test suite exists in the repository.
- ✓Dependencies pinnedA lockfile pins dependency versions.
- !No dynamic code executionSource scan found eval or shell execution. Review how tool inputs reach it before granting credentials.
1 check has not been run yet.
README
Douyin MCP Server
让 AI 助手直接读取抖音内容:搜索视频、查看详情、抓评论、分析博主、下载视频、语音转文字。
✨ 相比同类项目的优势
| 特性 | 本项目 | 其他抖音 MCP |
|---|---|---|
| 搜索防护 | 自动频率控制 + verify_check 自动重试 + Playwright 浏览器回退 | 搜索容易被封 |
| 语音转文字 | 4 种 ASR 服务商可选,支持长视频自动切片 | 大多不支持 |
| 视频下载 | 无水印下载 + 图文下载 + OCR 文字识别 | 仅基础下载 |
| 工具数量 | 15 个 MCP 工具覆盖搜索/详情/评论/下载/转写 | 通常 3-5 个 |
| 签名方案 | 本地 V8 引擎生成 a_bogus,不依赖外部服务 | 依赖第三方或不签名 |
| Cookie 管理 | Playwright 浏览器扫码登录,自动保存和刷新 | 手动复制粘贴 |
适合的场景
- 内容选题和行业调研
- 竞品账号分析
- 评论区观点收集
- 教程类视频知识提取
- 把抖音内容接进 Codex / Claude CLI 这类 AI 工作流
功能概览
当前提供 15 个 MCP 工具,分为 5 大类。搜索工具内置三层防护机制,大幅降低被抖音风控拦截的概率。
📊 数据获取
搜索视频 search_videos
支持丰富的筛选条件:
- 3 种排序方式:综合排序 / 按点赞最多 / 按最新发布
- 4 种时间筛选:不限 / 1天内 / 1周内 / 半年内
- 4 种搜索类型:综合 / 视频 / 用户 / 直播
- 支持分页,单次最多返回 20 条结果
- 🛡️ 内置三层搜索防护:频率控制(8-10秒间隔)→ verify_check 自动重试 → Playwright 无头浏览器回退
"搜索5条关于AI编程的视频,按点赞最多排序,只看一周内的"
获取视频详情 get_video_detail
返回一条视频的完整信息:标题、描述、点赞数、评论数、分享数、收藏数、视频时长(毫秒)、作者信息、下载链接等。
获取视频评论 get_video_comments
支持分页浏览评论列表,每次最多 20 条。返回评论内容、点赞数、回复数、发布时间、评论者信息。
获取评论回复 get_sub_comments
获取某条评论下的子评论(回复),支持分页。适合追踪热门评论下的讨论。
获取博主资料 get_user_info
返回博主的完整资料:昵称、头像、粉丝数、关注数、总获赞数、作品数、简介等。
获取博主作品列表 get_user_posts
按时间顺序列出博主发布的视频,支持分页翻阅历史作品。
获取推荐流 get_homefeed
模拟刷抖音,获取推荐视频流。支持 16 种内容分类:全部、知识、体育、汽车、动漫、游戏、影视、生活、旅行、短剧、美食、三农、音乐、动物、亲子、时尚。
"帮我看看抖音美食类的推荐视频"
检查登录状态 check_login_status / 退出登录 logout
检查当前 Cookie 是否有效;清除本地 Cookie 文件退出登录。
🔗 链接解析
解析分享链接 resolve_share_url
把抖音分享链接(https://v.douyin.com/xxx)解析成视频ID,并自动获取视频详情。适合处理朋友转发给你的"复制链接"。
📥 媒体下载
下载视频 download_video
下载抖音视频到本地,返回文件路径、文件大小、以及视频的点赞/评论/收藏等完整统计数据。
下载图文图片 download_aweme_images
下载图文作品中的全部图片到本地目录,生成 manifest 文件方便后续处理。
图文 OCR ocr_aweme_images
下载图文作品的所有图片,并自动进行文字识别(OCR),输出每张图片中的文字内容。适合处理截图类、知识卡片类的图文内容。
使用 OCR 需要额外安装一个依赖包:
uv sync --extra ocr这会自动安装
rapidocr-onnxruntime(一个纯本地运行的 OCR 引擎),不需要配 API Key,不需要联网,安装完就能用。
🔊 语音转文字
单条转写 transcribe_video
完整流程:获取视频详情 → 下载视频 → 提取音频 → 调用 ASR 转写 → 保存为 .txt 文件。支持长视频自动切片转写。
批量转写 batch_transcribe
一次搜索 + 批量转写,适合从某个领域批量提取知识。支持 3 种排序(综合/点赞最多/最新),默认取点赞最多的前 3 条转写。
"批量转写3条关于跨境电商的抖音视频,按点赞最多排序"
🔐 登录
扫码登录 get_login_qrcode
在终端生成二维码,用手机抖音扫码即可登录。登录后 Cookie 自动保存,无需重启。
快速开始
第 1 步:安装依赖
git clone https://github.com/wuyuxiang2/douyinmcp.git
cd douyinmcp
uv sync
如果你还没安装 uv:
curl -LsSf https://astral.sh/uv/install.sh | sh
source ~/.zshrc
第 2 步:登录抖音
uv run login.py
用手机抖音扫码或账号密码登录即可。登录成功后 Cookie 自动保存到 ~/.config/douyinmcp/cookies.txt,后续不需要重复登录。
第 3 步:确认两个路径
后面配置 MCP 时需要用到这两个值,先记下来:
which uv # 查看 uv 的完整路径,比如 /Users/你的用户名/.local/bin/uv
pwd # 查看当前项目目录的完整路径,比如 /Users/你的用户名/douyinmcp
which uv就是问系统"uv 这个命令装在哪里",pwd就是问"我现在在哪个文件夹"。
第 4 步:添加 MCP
根据你使用的工具,选择对应的配置方式。把示例中的路径替换成第 3 步中你记下的真实路径。
Codex CLI
codex mcp add douyin -- /你的uv路径/uv --directory /你的项目路径/douyinmcp run main.py
Claude CLI
claude mcp add douyin -- /你的uv路径/uv --directory /你的项目路径/douyinmcp run main.py
Claude Desktop(桌面应用)
用文本编辑器(推荐 VS Code 或系统自带的 TextEdit)打开配置文件:
# Mac 上的文件路径
~/Library/Application Support/Claude/claude_desktop_config.json
如果这个文件不存在,直接新建一个就行。
在文件中写入(或在已有的 mcpServers 里加上 douyin 这一段):
{
"mcpServers": {
"douyin": {
"command": "/你的uv路径/uv",
"args": ["--directory", "/你的项目路径/douyinmcp", "run", "main.py"]
}
}
}
保存后重启 Claude Desktop,在对话框底部会出现锤子 🔨 图标,说明 MCP 已连接。
Cursor
用文本编辑器打开配置文件:
# 项目级配置(仅当前项目生效)
你的项目路径/.cursor/mcp.json
# 或 全局配置(所有项目生效)
~/.cursor/mcp.json
如果文件不存在,直接新建一个就行。
JSON 格式和 Claude Desktop 一样:
{
"mcpServers": {
"douyin": {
"command": "/你的uv路径/uv",
"args": ["--directory", "/你的项目路径/douyinmcp", "run", "main.py"]
}
}
}
保存后,在 Cursor 的 Settings → MCP 中就能看到 douyin 服务已连接。
Antigravity(Google Gemini IDE)
在 Antigravity 中打开 MCP Store(左侧边栏),点击 Manage MCP Servers → View raw config,会打开配置文件:
# 文件路径
~/.gemini/antigravity/mcp_config.json
在 mcpServers 中加上 douyin:
{
"mcpServers": {
"douyin": {
"command": "/你的uv路径/uv",
"args": ["--directory", "/你的项目路径/douyinmcp", "run", "main.py"],
"timeout": 120000
}
}
}
timeout设大一些(120 秒),因为视频转写等操作可能需要较长时间。
保存后在 MCP Store 中刷新,看到 douyin 显示为 connected 即可。
到这里,搜索、看评论、下载视频这些功能已经能用了。
第 5 步:配置 ASR 密钥(需要你自己操作!)
⚠️ 重要提示:ASR 密钥包含你的私人 API Key,请你自己在系统终端里手动配置,不要让 AI 帮你操作这一步,避免密钥泄露。
如果你需要用"视频转文字"功能,需要配一个 ASR 服务商的 API Key。下面以硅基流动(免费额度最多)为例。
方式 A:写到 MCP 配置里(推荐)
适合 CLI 工具(Codex / Claude CLI):在终端重新添加 MCP 时带上密钥:
# Codex CLI
codex mcp add douyin \
--env ASR_PROVIDER=siliconflow \
--env SILICONFLOW_API_KEY='sk-你的Key' \
-- /你的uv路径/uv --directory /你的项目路径/douyinmcp run main.py
# Claude CLI
claude mcp add douyin \
-e ASR_PROVIDER=siliconflow \
-e SILICONFLOW_API_KEY=你的Key \
-- /你的uv路径/uv --directory /你的项目路径/douyinmcp run main.py
适合 GUI 工具(Claude Desktop / Cursor):在 JSON 配置中加上 env 字段:
{
"mcpServers": {
"douyin": {
"command": "/你的uv路径/uv",
"args": ["--directory", "/你的项目路径/douyinmcp", "run", "main.py"],
"env": {
"ASR_PROVIDER": "siliconflow",
"SILICONFLOW_API_KEY": "sk-你的Key"
}
}
}
}
方式 B:写到 ~/.zshrc 里(全局生效,所有工具都能用)
nano ~/.zshrc
在文件末尾加上:
export ASR_PROVIDER=siliconflow
export SILICONFLOW_API_KEY='sk-你的Key'
保存退出后执行 source ~/.zshrc 使其生效。
两种方式都是通过系统环境变量传入,编程 AI 无法通过读取项目文件看到你的密钥。
第 6 步:开始使用
配好以后,直接对 AI 说就行:
帮我检查抖音登录状态搜索 5 条关于 AI 编程 的抖音视频,按点赞最多排序把第一条视频的前 10 条评论读给我下载刚才那条视频到 ~/Downloads把这条视频转成文字批量转写 3 条关于 跨境电商 的抖音视频
Cookie 说明
运行 uv run login.py 登录后,Cookie 自动保存到 ~/.config/douyinmcp/cookies.txt,后续使用时程序会自动读取,你不需要手动操作任何 Cookie 相关的事情。
如果你需要自定义 Cookie 路径,可以设置环境变量 DOUYIN_COOKIE_PATH。
文件输出位置
所有产出文件默认放在 ~/Downloads/douyinmcp/ 下,统一管理,不污染项目目录:
| 内容 | 默认位置 | 修改方式 |
|---|---|---|
| Cookie | ~/.config/douyinmcp/cookies.txt |
DOUYIN_COOKIE_PATH |
| 下载视频/图片 | ~/Downloads/douyinmcp/ |
DOUYIN_DOWNLOAD_DIR |
转写文本 .txt |
~/Downloads/douyinmcp/transcripts/ |
DOUYIN_TRANSCRIPT_DIR |
不需要手动创建这些文件夹,程序会在第一次使用时自动创建。
哪些配置需要你填
绝大多数配置不需要你动,代码里都有合理的默认值:
| 配置 | 是否需要填 | 说明 |
|---|---|---|
| Cookie | ✅ 需要,但 login.py 自动搞定 |
登录后自动保存 |
| ASR 密钥 | ⚠️ 只有视频转文字才需要 | 搜索、下载、评论等功能不需要 |
| 下载目录 | ❌ 不需要 | 默认 ~/Downloads/douyinmcp/ |
| 转写目录 | ❌ 不需要 | 有默认路径 |
| OCR 配置 | ❌ 不需要 | 额外装一下依赖即可 |
| 音频切片参数 | ❌ 不需要 | 长视频自动处理 |
配置读取方式
所有配置只从系统环境变量读取,包括:
- MCP
--env传入的 ~/.zshrc里export的- 系统级环境变量
项目目录下不需要创建任何 .env 文件。.env.example 仅作为环境变量参考文档存在。
支持的 ASR 服务商
| 服务商 | 配置变量 | 说明 |
|---|---|---|
siliconflow(默认) |
SILICONFLOW_API_KEY |
硅基流动,使用 SenseVoice 模型 |
volcengine |
VOLCENGINE_APP_ID + VOLCENGINE_ACCESS_TOKEN |
火山引擎(字节跳动) |
openai |
OPENAI_API_KEY |
OpenAI Whisper |
custom |
ASR_API_URL + ASR_API_KEY |
任何兼容 OpenAI Whisper 接口的服务 |
项目结构
douyinmcp/
├── main.py # 入口
├── login.py # Playwright 浏览器扫码登录
├── pyproject.toml # 依赖管理
├── src/
│ ├── server.py # MCP 工具定义(15个工具)
│ ├── client.py # 抖音 API 客户端(含搜索防护)
│ ├── browser_search.py # Playwright 浏览器搜索回退
│ ├── config.py # 配置管理
│ ├── errors.py # 统一错误处理
│ ├── models.py # 数据模型
│ ├── sign.py # a_bogus 签名(本地 V8 引擎)
│ ├── cookies.py # Cookie 解析
│ ├── token_manager.py # Token / msToken 管理
│ ├── ocr.py # OCR 图文识别
│ ├── asr/ # 语音转文字(4种服务商)
│ └── video/ # 视频处理和音频提取
├── tests/ # 单元测试
└── LICENSE
搜索防护机制
抖音搜索 API 有严格的频率限制,连续搜索会触发 verify_check 验证码拦截。本项目实现了三层防护:
搜索请求 → 第1层:频率控制(8-10秒随机间隔)
→ 第2层:verify_check 自动重试(刷新 token + 8-15秒冷却)
→ 第3层:Playwright 无头浏览器回退(真实浏览器环境,不触发验证码)
| 防护层 | 原理 | 效果 |
|---|---|---|
| 频率控制 | 搜索间自动等待 8-10 秒,模拟人类搜索节奏 | 预防 verify_check |
| search_id 链式传递 | 每次搜索把上一次的 logid 传给下一次 | 模拟翻页行为 |
| msToken 优先级链 | Cookie真实token > 首页获取 > API生成 | 提高请求可信度 |
| verify_check 重试 | 自动检测 → 刷新 token → 冷却 → 重试 | 自动恢复 |
| Playwright 回退 | 启动无头 Chromium + stealth 脚本 + Cookie 注入 | 终极保险 |
Playwright 浏览器回退需要首次运行
uv run playwright install chromium安装浏览器。
Acknowledgements
本项目在早期开发阶段参考了 hhy5562877/douyin_mcp 的代码结构和接口设计思路,用来帮助梳理抖音网页接口结构、字段映射和 MCP 工具设计方向。感谢原作者提供的启发和思路。
免责声明
本项目仅供学习和研究使用。使用本项目获取的数据应遵守抖音平台的服务条款和相关法律法规。请勿将本项目用于任何商业用途或违法行为。
License
README fetched from the repository 6 days ago. The original is authoritative.