2025-11-17
我们人人要存着必胜的决心,然而我们也要不怕屡败的挫折。——郭沫若《抗战与觉悟》
https://github.com/Evil0ctal/Douyin_TikTok_Download_API
Douyin_TikTok_Download_API 深度解析:高性能异步抖音 / TikTok / Bilibili(及快手扩展)数据抓取与无水印下载的开源工具箱
项目地址:Evil0ctal/Douyin_TikTok_Download_API
在线 Web 应用:https://douyin.wtf | API 文档:https://douyin.wtf/docs
License:Apache-2.0 | Stars:14,938+ | Forks:2,191+
目录导航
- 项目定位与愿景
- 核心特性总览
- 技术栈与模块分层
- 支持的主要能力与接口范围
- 使用场景示例
- 快速体验:本地、Linux一键、Docker部署
- API 调用与示例代码
- 配置要点(Cookie & 鉴权)
- Chrome Cookie Sniffer 扩展介绍
- 项目目录结构解读
- 性能对比与截图
- 常见问题与注意事项
- 合规与责任提示
- 如何参与与贡献
- 总结与展望
1. 项目定位与愿景
Douyin_TikTok_Download_API 是一个“开箱即用”的高性能异步抓取与下载工具,面向抖音 (Douyin)、TikTok、Bilibili(描述中也提及快手扩展方向)。它提供:
- 批量混合解析(Hybrid Parsing)
- 视频 / 图集无水印下载(前端 Demo 关闭在线直接下载以保护服务器负载)
- 丰富 RESTful API(OpenAPI 规范文档)
- 桌面 / iOS 快捷指令辅助调用
- 可作为后端服务集成到二次应用中(数据分析、自动归档、舆情采集等)
项目起始时间:2021/11/06,持续维护中。开源但依赖合法使用场景,禁止滥用与非法数据处理。
2. 核心特性总览(来自 README 可考)
| 类别 | 特性 |
|---|---|
| 解析模式 | 抖音 / TikTok / Bilibili 混合 URL 解析 (hybrid) |
| 下载能力 | 视频与图集下载(支持去水印参数 with_watermark=false) |
| 批量处理 | 批量 URL 输入(无需分隔符,逐行解析) |
| SDK | 提供 PyPI 包 douyin-tiktok-scraper(当前 README 标注“已废弃,需要更新”,谨慎使用) |
| iOS 集成 | 快捷指令支持(iOS 端实现快速分享 → 解析 → 下载) |
| 千行级 API | 多类生成参数(msToken / verify_fp / X-Bogus / A_Bogus / ttwid 等) |
| 高并发异步 | 基于 HTTPX + FastAPI + PyWebIO 构建异步响应 |
| OpenAPI | 完整 Swagger 文档(/docs)用于调试与探索 |
| 可配置性 | 多平台 Cookie 配置在 config.yaml 中可替换 |
| 部署脚本 | Bash 一键部署 / systemd 管理 / update 脚本 |
| 容器支持 | 提供官方 Docker 镜像,快速启动 |
| 安全提示 | 明确强调 Cookie 风控与视频直链访问 403 场景处理 |
| 多平台扩展 | README 中列出 Bilibili 与混合平台 crawler 目录结构 |
3. 技术栈与模块分层
| 模块 | 技术 | 作用 |
|---|---|---|
| /app/web | PyWebIO | 提供简易 Web UI(输入分享链接 → 展示解析结果) |
| /app/api | FastAPI | 提供主 REST API(JSON 数据返回 / 下载跳转) |
| /crawlers | HTTPX 异步请求 | 与各平台 Web API 交互,封装参数生成与数据提取 |
| /crawlers/*/web | 平台适配 | 平台 Cookie、签名参数、设备标识逻辑 |
| /download | 下载逻辑 | 视频流 / 图集资源处理(在本地或服务端处理) |
| chrome-cookie-sniffer | Chrome 扩展 | 自动提取浏览器 Cookie(辅助配置环境) |
亮点:通过独立 crawler 子目录对不同平台做解耦,便于后续扩展新站点或替换请求策略。
4. 支持的主要能力与接口范围(节选)
README 中列出大量“✅”功能点,涵盖:
- 抖音 / TikTok 视频数据解析、评论获取、直播间数据、用户主页作品 / 喜欢 / 收藏 / 粉丝 / 关注数据等
- 关键参数生成:
msToken,verify_fp,s_v_web_id,X-Bogus,A_Bogus,ttwid等 - 用户 / 作品 ID、sec_user_id 提取
- Bilibili 视频详情 / 分 P / 收藏夹 / 热门视频 / 实时弹幕等解析
这些 API 均通过 FastAPI 形式对外提供,并以 /api/* 路径暴露。示例(混合解析):
1 | |
下载接口:
1 | |
5. 使用场景示例
| 场景 | 说明 |
|---|---|
| 内容归档 | 批量保存指定作者视频 / 图集资源用于内网分析 |
| 舆情监测 | 获取评论 / 回复基础数据(需遵守平台与法律约束) |
| 数据分析实验 | 提取互动指标、用户行为模式等(教学 / 研究用途) |
| iOS 集成 | 通过快捷指令从剪贴板抓取分享链接 → 调用 API → 保存文件 |
| 直播洞察 | 获取直播流数据、礼物榜、在线人数趋势(需合法使用) |
| 反复抓取稳定性验证 | 通过自建部署 + Cookie 校正,保证响应稳定 |
6. 快速体验方式
6.1 在线(功能有限)
- Web 主页:
https://douyin.wtf/
Demo 不保证所有解析可用,在线下载功能已关闭(保护服务器资源)
6.2 Bash 一键部署(Linux)
1 | |
6.3 Docker 部署(官方镜像)
1 | |
6.4 验证运行
1 | |
7. API 调用与示例代码
7.1 混合解析(Hybrid Parsing Python示例)
来自 README(PyPI 包目前标注“已废弃,需更新”,谨慎用于生产):
1 | |
7.2 REST API 示例(无需 SDK)
1 | |
7.3 FastAPI 集成示意(伪扩展,贴合项目结构思想)
下面是“如何在你自己的服务里代理调用”的参考(不修改原项目逻辑):
1 | |
注意:真实生产环境需要增加速率限制、异常分类、日志与缓存策略。
7.4 支持的提交格式(节选)
README 展示了常见抖音 / TikTok 分享口令、短链、标准链接、多行批量提交方式。批量模式只需逐行粘贴,无需特殊分隔符。
8. 配置要点(Cookie 与风险控制)
项目强调:
- 抖音 / TikTok Web API 请求需要有效 Cookie(需自行在浏览器访问对应站点后复制)
- 相关 Cookie 配置文件路径:
/crawlers/douyin/web/config.yaml/crawlers/tiktok/web/config.yaml/crawlers/tiktok/app/config.yaml
- 频繁或异常访问可能导致 Cookie 失效或封禁,需自行处理防风控(降低抓取频率、分布式轮换、重登录获取)
建议:自建服务时加限速、随机延迟与错误重试,并缩小抓取目标范围,避免触发反爬策略。
9. Chrome Cookie Sniffer 扩展(辅助抓取环境配置)
仓库中包含 chrome-cookie-sniffer 子目录,提供一个 Chrome 扩展用于:
- 智能拦截 POST/GET 请求中的 Cookie
- 5 分钟防重复抓取策略
- 内容变化才保存(去重)
- Webhook 回调(Cookie 更新时自动推送)
- 一键复制 / 导出 / 清理
- 可扩展新增站点(通过修改
background.js中SERVICES)
示例新增站点配置:
1 | |
Webhook 数据格式:
1 | |
拓展价值:无需手动频繁复制浏览器 Cookie,可半自动维持服务稳定。
10. 项目目录结构解读
1 | |
特点:
- 平台粒度拆分清晰
- hybrid 逻辑独立,支持多端输入统一处理
- utils 提高复用性与维护效率
11. 性能截图与对比(README 展示可用)
README 截图示例对比官方 API 与自建 API 的响应速度(基准图在 Screenshots/benchmarks)。
说明了:
- 自建 API 在某些请求上具有显著性能优势(缓存 / 优化策略)
- 需自行评估稳定性与合法性(非官方 API)
12. 常见问题与注意事项(结合 README 要点整理)
| 问题 | 说明 |
|---|---|
| Demo 下载为什么关闭? | 防止大批量视频下载拖垮演示服务器 |
| 视频直链访问 403 | TikTok 直链常有防盗链策略,需通过 /api/download 中转 |
| Cookie 失效怎么办? | 重新登录复制新的 Cookie,更新后重启服务 |
| 批量解析失败 | 某些 URL 已失效 / 风控限制 / 频率过快导致暂时拒绝 |
| 需要加速吗? | 可使用海外(推荐美国)服务器以减少地域限制 |
| 是否提供桌面工具? | README 推荐第三方桌面下载器项目(TikTokDownload / bilix 等) |
| PyPI 包还能用吗? | 标注“已废弃需要更新”,请优先直接走 API 接口调用 |
| 如何安全抓取? | 控制频率、避免未授权的大规模用户数据采集、遵守各站服务条款 |
13. 合规与责任提示
项目声明:
- 完全免费与开源
- 使用需遵守 Apache-2.0 许可证
- 禁止用于违反法律与平台条款的用途(如滥用爬虫造成拒绝服务、侵犯隐私、盗版分发等)
- 建议仅用于个人学习、研究、内部测试或获得授权的数据处理场景
不当用途风险包括:账号封禁、IP 封禁、法律责任。请谨慎。
14. 如何参与与贡献
- Star 支持持续维护
- Issues:提问前先阅读文档与已有讨论
- Pull Requests:可补充新平台解析、优化参数生成、增强异常处理
- 参与重构(V4 版本备注中说明可加作者微信“Evil0ctal”备注 GitHub 项目)
- 赞助渠道:爱发电 / Ko-fi / Patreon(README 徽章区链接)
15. 总结与展望
Douyin_TikTok_Download_API 以“高性能异步 + 多平台混合解析 + 可扩展爬虫组件”的结构,为需要构建视频数据处理、内容归档、交互分析、移动端快捷调用的开发者提供了一个扎实的基座:
| 价值维度 | 现状 | 展望 |
|---|---|---|
| 平台覆盖 | 抖音 / TikTok / Bilibili 已支持 | 扩展更多平台(快手等)与直播互动数据深挖 |
| 参数生成 | X-Bogus / A_Bogus / msToken 等已集成 | 持续跟进平台参数算法变更 |
| 部署方式 | Bash / Docker / 手动配置 | 提供 Kubernetes Helm / 轻量 SaaS 模式文档 |
| 工具生态 | iOS 快捷指令 / Chrome 扩展 | CLI 加强、SDK 重构(PyPI 包更新) |
| 安全与风控 | 用户需自配 Cookie | 未来或可支持半自动 Cookie 轮换策略(合法前提) |
如果你正在寻找:
- “一个能快速解析抖音/TikTok分享链接并本地化存档的工具”
- “一个可用于数据分析前置采集的接口层”
- “一个能嵌入自己系统的轻量视频/图集抓取服务”
那么它值得克隆试用。
再次访问项目主页获取最新更新与说明:Evil0ctal/Douyin_TikTok_Download_API
附录:快速复读最关键调用
| 目标 | 示例 |
|---|---|
| 混合解析 | GET /api/hybrid/video_data?url=<分享链接>&minimal=false |
| 下载无水印 | GET /api/download?url=<分享链接>&with_watermark=false&prefix=true |
| 本地文档 | http://localhost/docs |
| 在线文档 | https://douyin.wtf/docs |
| 批量模式 | 多行 URL 直接粘贴(无需分隔符) |
感谢阅读,合理合规使用,祝你构建更有价值的多媒体数据应用。🚀