DouK-Downloader 批量下载抖音 TikTok 作品:从 Cookie 到 Web API 的完整指南
【免费下载链接】TikTokDownloader抖音 / TikTok 平台作品下载/数据采集工具项目地址: https://gitcode.com/GitHub_Trending/ti/TikTokDownloader
DouK-Downloader 是一款完全开源的抖音 / TikTok 作品下载与数据采集工具,基于 HTTPX 异步模块构建。它解决两个问题:批量下载目标账号的作品文件,以及把采集到的评论、账号数据落到 CSV/XLSX/SQLite 里做后续分析。你是写定时任务的开发者,还是盯竞品账号的运营,都能直接上手。本文带你从空目录装好环境,下到第一个作品,再把它起成对外可调用的 Web API 服务。
环境准备与首次启动:5 步把程序跑起来
python --version:确认 Python 不低于3.12版本,低了先升级。git clone https://gitcode.com/GitHub_Trending/ti/TikTokDownloader:把源码拉到本地。uv sync --no-dev:一条命令装齐全部依赖,没有 uv 就退回pip install -r requirements.txt。uv run main.py:启动程序,首次运行按提示输入 YES 接受免责声明。- 程序会生成
settings.json,先按下一节把 Cookie 配好再正式干活。
git clone https://gitcode.com/GitHub_Trending/ti/TikTokDownloader uv sync --no-dev uv run main.pyCookie 怎么拿、第一个作品怎么下
🔑为什么必须先配 Cookie:它包含你的身份与设备信息,平台据此决定返回什么数据。缺失或过期,轻则画质受限,重则请求直接失败。
怎么拿:浏览器打开 douyin.com,按 F12 进「网络」面板,筛选cookie-name:odin_tt,点击加载任意作品评论区,在请求头里全选复制 Cookie 的值。别从控制台复制document.cookie,那条路拿不到必要字段。完整图文步骤见 Cookie 获取教程。
怎么写入:返回主菜单,选「手动输入 Cookie」粘贴回车,或复制好后选「从剪贴板读取 Cookie」直接回车。抖音和 TikTok 各有独立字段(cookie/cookie_tiktok),按需分别写入。
怎么下:进菜单按 终端交互模式 → 批量下载链接作品(抖音) → 手动输入待采集的作品链接,粘贴链接回车,文件落到项目根目录的Download文件夹。
settings.json 里最影响行为的 5 个参数
| 参数 | 默认值 | 改它之后会发生什么 |
|---|---|---|
accounts_urls | 空模板 | 填入账号主页链接,每次启动增量拉取新作品;可配earliest/latest做日期筛选 |
name_format | create_time type nickname desc | 文件名拼接顺序,调换字段顺序即可改变命名 |
folder_mode | false | 设true按账号建文件夹归档 |
storage_format | 空 | 设CSV/XLSX/SQLite后采集数据持久化落库 |
download | true | 设false只采数据不下载视频文件 |
max_pages | 0 | 限制单次任务请求页数,0表示不限制 |
改完配置必须重启程序才生效,settings.json只在启动时读一次。抖音侧Cookie 写在cookie字段;TikTok 侧写cookie_tiktok,另需在browser_info_tiktok里配device_id等初始参数。
多账号增量采集:只拉新增作品
场景:你盯着一批账号,希望每次启动只拉新内容,不重复下历史作品。
配置改法:把每个账号主页链接填进accounts_urls,enable保持true;只想看近段时间就补earliest/latest日期区间;打开download和storage_format,作品既落文件也落库。
预期行为:程序会记录已下载作品 ID,下次启动自动跳过已有文件,只拉增量。
已知限制:喜欢、收藏类接口不返回操作日期,对这个 tab 做日期筛选需要全量拉取后再筛,耗时长,建议用max_pages限制页数。另外内置的加密参数算法已过期且不再维护,依赖它的部分功能可能不可用,以项目最新 release 说明为准。
容器化部署与 Web API 调用
仓库自带 Dockerfile,也可直接拉现成镜像。数据放挂载卷,容器重建不丢:
docker run -d -p 5555:5555 -v ./Volume:/app/Volume --name douk joeanamier/tiktok-downloader选「Web API 模式」后服务监听5555端口,浏览器打开http://127.0.0.1:5555/docs就是自动生成的全部接口文档。
脚本和定时任务直接调它采评论、拉账号数据:
from httpx import post data = {"detail_id": "<作品ID>", "pages": 2} response = post("http://127.0.0.1:5555/douyin/comment", json=data, headers={"token": "<令牌>"}) print(response.json())警告:对局域网或公网开放时务必设置请求头令牌,未设令牌的服务不应暴露到公网。
高频故障速查
- 画质明显偏低、下不到最高清 — Cookie 过期或缺身份字段 — 按教程重新获取并写入。
- 从控制台复制
document.cookie一直失败 — 该方式拿不到必要字段 — 改从网络面板cookie-name:odin_tt请求里复制。 - 改了
settings.json没生效 — 配置只在启动时读一次 — 重启程序。 - 容器里想「从浏览器读取 Cookie」 — 容器读不到宿主机浏览器 — 手动粘贴 Cookie。
- 批量下载喜欢、收藏特别慢 — 接口不返回操作日期需全量拉取 — 用
max_pages限制页数。
把下载器挂进你的工作流
把想盯的账号链接写进accounts_urls,打开download和storage_format,之后每次启动都会增量拉新作品并落库。想长期挂着,就按上面的方式起一个 Docker 容器,让它成为你采集链路里的固定一环。Web UI 模式目前重构关闭,交互以终端和 API 为主,重开时间关注仓库 release 即可。
【免费下载链接】TikTokDownloader抖音 / TikTok 平台作品下载/数据采集工具项目地址: https://gitcode.com/GitHub_Trending/ti/TikTokDownloader
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考