DouK-Downloader 实操指南:从 Cookie 配置到 Docker 部署的抖音/TikTok 批量下载与数据采集

发布时间:2026/11/5 9:58:37

DouK-Downloader 实操指南:从 Cookie 配置到 Docker 部署的抖音/TikTok 批量下载与数据采集 DouK-Downloader 实操指南从 Cookie 配置到 Docker 部署的抖音/TikTok 批量下载与数据采集【免费下载链接】TikTokDownloader抖音 / TikTok 平台作品下载/数据采集工具项目地址: https://gitcode.com/GitHub_Trending/ti/TikTokDownloader动手前先问自己三个问题你要把某个账号的作品整库搬到本地还是要把评论、热榜这类数据写进数据库又或者想让别的系统通过 HTTP 接口来调用采集能力DouK-Downloader前身 TikTokDownloader这三件事都能做——它是基于 HTTPX 的命令行批量下载与数据采集程序自带 FastAPI 服务化和 Docker 镜像。下文按选型、跑起来、配通、用起来、部署、排障的订单带你走完这条路径。第 1 步 · 选型自检先确认值不值得投入把预期钉死能省掉后面大半的折腾。左边是它现在能稳定交付的右边是它明确不做或做不了的✅ 能做抖音账号发布/喜欢/收藏/收藏夹作品批量下载视频、图集、实况、最高画质抖音数据作品评论、合集、账号详情、综合/视频/用户/直播四类搜索、热榜TikTok账号发布/喜欢作品、链接作品、合辑下载原画视频工程能力增量下载、断点续传、跳过已下载、CSV/XLSX/SQLite 落库、代理请求、剪贴板监听不做付费作品下载README 明确列为边界勿提此类 issueWeb UI 图形交互界面——代码重构中选进该模式只会看到正在重构的提示扫码登录获取 Cookie已失效、从浏览器读取 Cookie已弃用⚠️ 硬限制项目内置的加密参数算法已过期且不再维护部分接口可能失败。出路只有一条按官方文档指引自己准备加密参数生成代码并配置进去接受这个前提再开始否则中途会被卡住。第 2 步 · 跑起来Python 3.12 起步两条路线任选环境门槛只有一个Python ≥ 3.12。依赖清单在 requirements.txt技术栈就是 httpx[socks]、rich、fastapi uvicorn、pydantic、aiosqlite、openpyxl、aiofiles 这一圈没有隐藏的本地服务依赖。git clone https://gitcode.com/GitHub_Trending/ti/TikTokDownloader cd TikTokDownloader uv sync --no-dev # 官方推荐按 pyproject.toml 同步依赖 uv run main.py # 在 uv 环境里直接启动不想用 uv 就走 venv 路线效果等价python -m venv venv source venv/bin/activate # Windows 用 venv\Scripts\activate pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt python main.py首次启动的交互流程值得提前知道免得卡在菜单上程序先打印项目信息与免责声明输入YES确认该选择会持久化以后不再问进入主菜单Cookie 写入、三种运行模式终端交互 / 后台监听 / Web API、下载记录与日志开关、语言切换全程交互约定只有一条直接回车 返回上级菜单输入Q或q 退出程序所有输入框都这样。两点平台提示Windows 用 Windows 11 自带终端交互体验最好macOS 上从 Actions 下载的未签名可执行文件首次运行前先执行xattr -cr 项目文件夹移除安全标记。第 3 步 · 配通先拿 Cookie 钥匙再改 settings.json把 Cookie 和配置文件看成同一条流水线钥匙先备齐配置一次改到位。先拿钥匙Cookie。按 docs/Cookie获取教程.md 的官方路径走无痕窗口访问 douyin.com 并登录 → 按F12进开发者工具的网络标签并勾选保留日志 → 筛选框输入cookie-name:odin_tt→ 点开任意作品评论区触发请求 → 选中任意数据包完整复制请求头里Cookie的值到剪贴板。回程序里选手动输入 Cookie粘贴或选从剪贴板读取 Cookie直接回车。抖音与 TikTok 各存各的对应配置项cookie/cookie_tiktok。⚠️ 教程里的document.cookie方式拿不到 httpOnly 字段别走偏。正确姿势就是上面的网络面板复制。另外 Cookie 只在失效后才需要重写拿不到原画时先怀疑 Cookie 质量换一份已登录的。再改配置。首次运行会在项目根目录生成settings.json缺的参数自动补齐逻辑在 src/config/settings.py。这张表回答哪些值值得动分组参数默认值改它的目的落盘root/folder_mode/false指定下载根目录、按账号分文件夹归档命名name_format/splitcreate_time type nickname desc/-文件名模板可用键iddesccreate_timenicknameuidmarktype与分隔符数据storage_format留空不落库可选csv/xlsx/sqlite网络proxy/max_pages/0代理地址给喜欢/收藏类任务封分页上限行为download/max_sizetrue/0只采数据不下文件单文件字节上限典型改动前后对比改前刚生成root: 、storage_format: 、cookie: —— 文件堆在项目根目录数据不落库程序基本空转改后可用态root: /data/videos、folder_mode: true、storage_format: sqlite、cookie: 已写入、max_pages: 10—— 按账号分目录归档、采集数据进 SQLite、全量类任务封顶 10 页。⚠️ 排障坑所有参数都会先过校验非法值不报错而是静默回退默认值日志里只有一句参数 xxx 设置错误程序将使用默认值。所以改了没生效时别怀疑配置没保存先去日志里搜默认值三个字定位是哪个字段被回退了。另外改完settings.json必须重启程序才生效程序每 15 分钟自动刷新 msToken、tt_wid 等易变参数并回写 Cookie这些你不用手动管。第 4 步 · 用起来三种目标三条路径按你的使用目标对号入座每个场景都是目标 → 操作 → 产出。个人随手存 → 后台监听模式。目标是刷到什么存什么。选后台监听模式后程序常驻轮询剪贴板你复制任何抖音/TikTok 作品链接它自动识别并下载产出就是本地作品文件无需任何额外输入。批量入库 → 终端交互模式。目标是一个账号一个账号地搬库或采数据。功能入口全在 src/application/main_terminal.py抖音侧覆盖批量下载账号作品可走accounts_urls配置项批量指定、链接作品、评论数据、合集、账号详情、四类搜索、热榜、收藏作品/音乐/收藏夹TikTok 侧覆盖账号作品、链接作品、合辑与直播拉流地址。产出按storage_format决定是只落文件、还是文件 数据库双份。团队服务 → Web API 模式。目标是让其他系统按需拉数据产出是 HTTP 接口见第 5 步。三个行为细节提前知道能避免误判文件先下载到临时目录完成后再移入储存目录程序退出时清空临时目录——所以中断不会留下半成品但也不要去临时目录里翻东西账号昵称或自定义标识mark变化时已下载文件里的昵称与标识会自动重命名不用手动整理喜欢/收藏接口只返回作品发布日期而非操作日期程序必须拉全量后再筛日期作品多的账号会很慢这是max_pages参数存在的原因。run_command配置项还能写入启动即执行的菜单指令序列跳过层层点击直达任务。第 5 步 · 部署出去Docker 容器 Web API 最小调用选Web API 模式后FastAPI 服务监听0.0.0.0:5555浏览器访问/docs或/redoc就是自动生成的接口文档端点覆盖账号、作品、评论、合集、直播、搜索、短链解析。容器化部署。仓库自带 Dockerfilepython:3.12-bullseye做构建器装编译依赖python:3.12-slim当运行镜像EXPOSE 5555、VOLUME /app/Volume挂数据卷docker pull joeanamier/tiktok-downloader # 也可用仓库 Dockerfile 本地构建 docker run --name douk -p 5555:5555 \ -v douk_data:/app/Volume -it joeanamier/tiktok-downloader docker start -i douk # 后续启动restart -i 为重启注意容器访问不到宿主机文件系统Cookie 统一走手动输入或剪贴板写入别指望从浏览器读取。最小 API 调用。以/douyin/comment为例from httpx import post data {detail_id: 0123456789, pages: 2} r post(http://127.0.0.1:5555/douyin/comment, jsondata, headers{token: }) print(r.json())⚠️ 安全红线项目默认不校验令牌所有业务端点靠token_dependency检查请求头里的token不通过返回 403。一旦把 5555 端口暴露到公网必须先去 src/custom/function.py 的is_valid_token()里配置令牌再放行否则任何路过的人都能消耗你的 Cookie 与带宽可用/token端点验证令牌是否生效。第 6 步 · 排障与红线常见问题与合规边界高频问题速查点击展开Q下载的视频清晰度不够A先换一份已登录账号的 Cookie再看max_size是否设得过大拦截了文件仍不行检查智能延时是否导致请求频繁失败。Q改完 settings.json 没反应A必须重启程序。若日志出现参数 xxx 使用默认值说明该值非法被静默回退对照报错字段改正即可。Q喜欢/收藏任务跑得特别久A接口只返回作品发布日期程序要拉全量再筛日期属正常行为用max_pages给分页封顶。Q容器里为什么没有从浏览器读取 CookieA容器访问不到宿主机文件系统该能力且已弃用在容器内不可用统一用手动/剪贴板写入。Q终止 ffmpeg 该点什么A任何时候按Ctrl C不要直接点终端关闭按钮否则临时目录清理逻辑不会执行。多实例与更新程序未针对多开优化要并行跑两套任务复制整个项目文件夹再分别配置升级可执行文件时把旧版_internal\Volume拷进新版_internal保留配置与记录或停止后整目录覆盖。构建可执行文件走 GitHub Actions 自动构建流程是 Fork 仓库 → 在 Settings 里允许全部 Actions → 手动触发构建可执行文件工作流选master或develop分支 → 从 Artifacts 下载产物。普通账号每月约 2000 分钟免费额度Fork 记得定期同步上游。合规与免责项目基于 GNU GPLv3.0 开源README 末尾的免责声明立场很直接——使用风险由你自行承担不得用于未经授权下载、传播受版权保护内容数据处理的合规性你自己对着平台条款与当地法规负责作者不提供付费版本或商业服务。接入团队工作流之前把免责声明完整读一遍确认你的采集场景在边界内。收个尾。接下来就做三件事把已登录 Cookie 写进 settings.json改好root和storage_format后重启先验证一个账号的批量下载跑顺了再进容器配好 token 对外开放。本文基于项目公开内容整理功能边界以官方 README 为准。【免费下载链接】TikTokDownloader抖音 / TikTok 平台作品下载/数据采集工具项目地址: https://gitcode.com/GitHub_Trending/ti/TikTokDownloader创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/11/5 9:48:36

【亲测免费】 CodiumAI PR-Agent:重塑代码审查的未来

CodiumAI PR-Agent:重塑代码审查的未来 【免费下载链接】pr-agent 🚀 PR Agent: The Original Open-Source PR Reviewer. This project is not the Qodo free tier. 项目地址: https://gitcode.com/GitHub_Trending/pr/pr-agent 随着软件开发日新…

2026/11/5 10:03:39

附录 A · 工具速查表

附录导读本附录是混淆工具和反混淆工具的快速索引,按用途分类,相当于一本"工具字典":第 1 节:混淆工具——把代码变难分析的"加固方"武器;第 2 节:反混淆工具——把混淆代码还原回去的…

2026/11/5 10:03:39

PDO属性设置全解析:高效数据库操作秘诀

PDO::关于PHP的PDO这种技术, 它有一份参考手册。PDO:: — 设置属性(PHP 5 > 5.1.0, PECL pdo > 0.1.0)说明语法bool PDO::setAttribute ( int $attribute , mixed $value )我们需要把数据库句柄的属性给设置好。在下文之中, 会列举出一些可以被大家所用到的通用的属性内容…

2026/11/5 10:03:39

JAVA——抽象类、内部类和接口

一、抽象类如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。抽象类可以包含抽象方法与普通方法和属性。在Java中,一个类如果被 abstract 修饰称为抽象类,抽象类中被 abstract 修饰的方法称为抽象方法,抽…

2026/11/5 10:03:39

二叉树的学习

二叉树 1.树形概念 想了解二叉树的概念我们得先知道数的概念 树是⼀种⾮线性的数据结构,它是由n(n>0)个有限结点组成⼀个具有层次关系的集合。把它叫做树是因为它看起来像⼀棵倒挂的树,也就是说它是根朝上,⽽叶朝下…

2026/11/4 12:38:23

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/4 21:04:25

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/5 0:02:07

多智能体协作系统架构设计与实践优化

1. 多智能体协作系统的时代背景2017年Transformer架构的诞生彻底改变了人工智能的发展轨迹。当行业还沉浸在单一大模型带来的性能突破时,Anthropic的研究团队已经将目光投向了更前沿的领域——如何让多个智能体通过协作产生超越单体能力的系统智能。这就像交响乐团中…

2026/11/5 0:02:07

大模型系统性入门实战指南:从原理到部署微调的全链路路线

提到大模型的系统性入门,我先说个结论:这事真不难,难的是资料太散、路线太多,今天这个框架明天那个工具,新人很容易在“收藏夹吃灰”和“教程看到一半放弃”之间反复横跳。市面上关于大模型的内容少说有几十万篇&#…

2026/11/5 0:02:07

鸿蒙文件系统沙箱机制解析与开发实践

1. 鸿蒙文件系统沙箱机制深度解析作为一名从Android转向鸿蒙开发的工程师,我深刻体会到文件系统访问是迁移过程中最先遇到的"拦路虎"。在Android上运行良好的文件读写代码,在鸿蒙真机环境却频频出现文件写入后神秘消失或直接抛出权限拒绝错误的…

2026/11/4 12:38:23

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/4 21:04:25

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑