三个入口,一套逻辑
93 个操作的 REST 接口、给 AI agent 用的 MCP 服务端、以及 dtk 命令行。
MCP 不是在 HTTP 上再包一层:三者调的是同一个 service 层,
所以一次工具调用省掉了第二跳和第二次认证。
数据读取于 2026-09-11,构建时写进页面,不是页面去请求的。
Douyin_TikTok_Download_API 是一个开源、自部署的抖音、
TikTok 数据接口服务。你用一条 docker compose up
把它跑在自己的机器上。没有托管版、不用注册、没有配额,链路上也没有第三方。
它能取两个平台的作品、作者、评论、合集和搜索,下载视频和图集时拿到的是无水印的流 —— 它挑的是平台本来就提供的那条干净流,而不是「去掉」了什么。采集到的内容归档在 你自己的 PostgreSQL 里,所以上游删掉的作品,本地还读得到。
麻烦的部分它替你处理了,而不是丢给你:抖音的 a_bogus、X-Bogus 请求签名和 TikTok 的
签名都是纯 Python 实现;短链会先展开再对照白名单校验,然后才发出任何请求;作品 ID 会先按
平台自己的编码规则验一遍,所以一个不可能存在的 ID 不会浪费一次上游请求。

三个入口,一套逻辑
93 个操作的 REST 接口、给 AI agent 用的 MCP 服务端、以及 dtk 命令行。
MCP 不是在 HTTP 上再包一层:三者调的是同一个 service 层,
所以一次工具调用省掉了第二跳和第二次认证。
cookie 不再是负担
无头浏览器按时铸造游客身份,池子自己测试、冷却和退休它们。 你自己的登录态 cookie 是可选增强,不是前提。
签名是纯 Python
a_bogus、X-Bogus 和 TikTok 的签名都在进程内算,微秒级。
浏览器留作兜底,同时也是漂移探测器 —— 平台换了算法,是它先发现的。
它会告诉你自己不舒服
每次请求都有结构化记录,每个身份和每个端点都有实时健康度。 风控信号会在池子烧穿之前触发熔断。
在浏览器里
demo。在终端里
不用注册:演示账号的口令是实例自己在 /api/v1/auth/demo 公布的。
登录拿到的是会话 cookie,不是 bearer token。
PASS=$(curl -s https://demo.douyin.wtf/api/v1/auth/demo | jq -r .data.password)
curl -s -c jar -o /dev/null \ -X POST https://demo.douyin.wtf/api/v1/auth/login \ -H 'content-type: application/json' \ -d "{\"username\":\"demo\",\"password\":\"$PASS\"}"
curl -s -b jar -X POST 'https://demo.douyin.wtf/api/v1/parse?wait=25' \ -H 'content-type: application/json' \ -d '{"url":"https://www.douyin.com/video/7675505205047348543"}' \| jq '.data | {platform, kind, description}'?wait=25 是让这次调用变同步的开关:它会挂住连接直到任务完成,然后用 200 把结果给你。
不加它就是 202 加一个 task id,那是正常的异步路径。这个实例的上限是 30 秒。
接口文档也不用登录就能看 ——
/swagger、
/redoc、
/openapi.json,中英双语。
TikHub 付费出现在这一页上,这个项目才得以保持免费和 Apache-2.0。整个安排就这么简单: 这里没有付费档、没有被留一手的功能,也没有任何东西会因为你从不点它而停止工作。
git clone https://github.com/Evil0ctal/Douyin_TikTok_Download_API.gitcd Douyin_TikTok_Download_APIcp .env.example .env # 然后设置 DTK_SECRET_KEYCOMPOSE_ENV_FILES=.env docker compose -p dtk -f docker/compose.yml up -d打开 http://localhost:8000,在浏览器里完成初始化。
完整版在快速开始。
一个 bash 脚本,会识别你的发行版、给出对应的 Docker 安装方式、按机器大小调好 容器上限、生成密钥、把整套跑起来。再跑一次它就变成运维菜单: 状态、升级、改口令、备份、改设置、清磁盘。
bash <(curl -fsSL https://raw.githubusercontent.com/Evil0ctal/Douyin_TikTok_Download_API/main/install/install.zh.sh)英文版是 install/install.sh。两份都在安装与部署里有说明。
Apache-2.0。源码、issue 和发布都在 GitHub · 在 demo.douyin.wtf 上试 · English。