首页/新闻资讯/正文详情

抖音 TikTok 批量下载工具 DouK-Downloader 完全实操指南:从 Cookie 配置到 Docker 生产部署

发布时间:2026/11/5 5:12:00 来源:云帆数科 栏目:资讯中心
抖音 TikTok 批量下载工具 DouK-Downloader 完全实操指南:从 Cookie 配置到 Docker 生产部署
抖音 TikTok 批量下载工具 DouK-Downloader 完全实操指南从 Cookie 配置到 Docker 生产部署【免费下载链接】TikTokDownloader抖音 / TikTok 平台作品下载/数据采集工具项目地址: https://gitcode.com/GitHub_Trending/ti/TikTokDownloaderDouK-Downloader历史项目名 TikTokDownloader是一款完全开源的抖音 / TikTok 批量下载与数据采集工具基于 HTTPX 异步网络模块编写一套程序同时覆盖账号作品批量下载、链接作品下载、评论与搜索数据抓取、直播拉流、剪贴板监听下载并可以通过 FastAPI 以 Web API 服务形态部署。这篇文章面向已经会pip install、docker run但对项目内部结构不熟悉的用户带你走完一条完整路径判断它适不适合你的场景 → 最短时间跑起来 → 把 Cookie 和配置改成你要的样子 → 按真实业务落地 → 容器化部署成长期服务。先确认边界它哪些能办、哪些办不了在投入配置时间之前先把能力边界看清楚。项目历史名为TikTokDownloader现在叫DouK-Downloader下面按业务域梳理它当前的实际能力业务域能做的事文件下载抖音视频 / 图集 / 实况 / 动图、最高画质视频、TikTok 原画与图集、动态或静态封面、背景音乐账号维度抖音账号发布 / 喜欢 / 收藏 / 收藏夹作品TikTok 账号发布 / 喜欢作品账号详情数据链接维度抖音 / TikTok 链接批量下载、剪贴板监听自动下载数据采集作品评论与回复、合集 / 合辑作品、账号详细数据、综合 / 视频 / 用户 / 直播四类搜索、抖音热榜直播抖音 / TikTok 拉流地址获取调用ffmpeg录制直播工程能力增量下载、断点续传、已下载跳过、csv/xlsx/sqlite持久化、代理请求、局域网访问、Web API然后是必须提前知道的限制这几条会直接决定你的方案选型⚠️ 项目内置的加密参数算法已过期失效且不再维护部分功能可能无法正常工作如果用到相关功能需要自行准备加密参数生成代码。⚠️ Web UI 交互模式正在重构当前进入只会提示该功能正在重构「从浏览器读取 Cookie」已弃用「扫码登录获取 Cookie」已失效两者都不要指望。⚠️ 明确不支持付费作品下载「批量下载收藏作品」只支持当前登录 Cookie 对应的单账号程序未做多实例优化想并行跑两套任务要复制整个项目文件夹。最短路径第一次把程序跑通环境门槛只有一个Python ≥ 3.12。依赖清单在 requirements.txt核心技术栈是httpx[socks]异步 HTTP 加 SOCKS 代理、rich终端交互、fastapiuvicornWeb API、pydantic数据模型、aiosqlite配置数据库、openpyxlXLSX 导出、lxml页面解析、pyperclip剪贴板、aiofiles异步文件 IO。git clone https://gitcode.com/GitHub_Trending/ti/TikTokDownloader cd TikTokDownloader依赖安装两条路线任选官方推荐uv# 路线 Auv推荐 uv sync --no-dev uv run main.py # 路线 Bpip venv python -m venv venv # Windows 激活venv\Scripts\activateLinux / macOSsource venv/bin/activate pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt python main.py程序真正的入口是 main.py创建TikTokDownloader实例并await run()同时捕获KeyboardInterrupt和CancelledError实现优雅退出。首次启动时程序会打印项目信息和免责声明输入YES确认——这个选择会写进数据库持久化以后不再问逻辑见 src/application/TikTokDownloader.py。之后进入主菜单能看到 Cookie 写入、终端交互模式、后台监听模式、Web API 模式、下载记录开关、日志开关、版本检查、语言切换zh_CN/en_US等选项两处交互约定贯穿全程先记住直接回车 返回上级菜单输入Q或q 退出程序任何时候想终止程序或ffmpeg按Ctrl C不要直接点终端关闭按钮否则临时目录清理逻辑不会执行。另外两条平台注意事项Windows 用户建议用 Windows 11 自带的 Windows 终端获得最佳交互体验macOS 上如果下载的是未签名可执行文件首次运行前在终端执行xattr -cr 项目文件夹路径移除安全标记。让它真正为你工作Cookie 与 settings.json一次性把 Cookie 拿对写进配置Cookie 是这套程序唯一但关键的钥匙。官方推荐路径完整图文教程见 docs/Cookie获取教程.md打开浏览器建议无痕窗口访问抖音网页版并登录账号——不登录也能拿但已登录 Cookie 的数据权限和可下载分辨率更高按F12打开开发人员工具切到网络选项卡勾选保留日志在筛选器输入cookie-name:odin_tt然后点开任意作品的评论区触发请求选中任意一个数据包完整复制请求头中Cookie的值到剪贴板。⚠️ 教程里在控制台执行document.cookie的方法拿不到 httpOnly 字段官方明确标注该方法不适用本项目请以网络面板复制为准。写入程序有两条路抖音和 TikTok 各自独立存储对应配置项cookie/cookie_tiktok手动输入 Cookie选中后粘贴内容从剪贴板读取 CookieCookie 已在剪贴板选中后直接按回车。写入后的使用要点Cookie 只在失效后才需要重写不是每次运行都要写下载不到原画或数据请求失败时第一反应应该是换 Cookie。另外程序内置一个周期性线程每 15 分钟自动刷新msToken、tt_wid等易变参数并回写 Cookie间隔常量COOKIE_UPDATE_INTERVAL 15 * 60定义在 src/custom/static.py这些参数你不需要手动管。把 settings.json 改成生产可用的样子首次运行会在项目根目录生成settings.json生成与缺参补齐逻辑见 src/config/settings.py。所有参数经 src/config/parameter.py 逐一校验后才生效注意一个排障要点非法值不报错而是静默回退默认值——改错了配置日志里看到的往往是回退提示而不是错误。默认配置几乎不可用典型部署需要动的是这几组字段文件落盘组字段默认值说明root回退到项目根目录的Download文件夹文件落盘根路径folder_modefalse是否按账号 / 合集建文件夹归档name_formatcreate_time type nickname desc文件名模板可用键id/desc/create_time/nickname/uid/mark/typesplit-文件名分隔符desc_length/name_length64/128描述与文件名截断长度music/static_cover/dynamic_coverfalse是否下载音乐、静态封面、动态封面max_size0不限单文件字节上限downloadtrue只采集数据不落地文件时设为false网络组proxy/proxy_tiktok代理地址程序会先用代理请求平台首页做连通性测试失败或超时则自动忽略该代理、timeout默认 10 秒、max_retry默认 5 次、chunk默认20971522MB 分块、max_pages默认0表示不封顶喜欢 / 收藏类接口必须全量拉取后才能做日期筛选给这类任务设个上限能省很多时间。存储与平台组storage_format留空 采集数据不持久化可选csv/xlsx/sqlite、ffmpeg直播录制依赖的可执行文件路径、live_qualities直播画质、douyin_platform/tiktok_platform两个平台的功能总开关、browser_info/browser_info_tiktok请求指纹含User-Agent、webid、device_id、地区与语言TikTok 场景尤其重要device_id的获取方法同样写在 docs/Cookie获取教程.md 末尾。改前改后对比一下量其实不大刚生成时root: 、storage_format: 、cookie: —— 文件堆在项目根目录数据不落库程序空转。典型部署后root: /data/videos、folder_mode: true、storage_format: sqlite、cookie: 已写入、max_pages: 10—— 按账号分目录归档采集数据进 SQLite喜欢 / 收藏类任务封顶 10 页请求。⚠️ 修改settings.json后必须重启程序才生效。旧版本字段如default_mode、update_cookie、original_cover会被自动映射为新字段见 src/config/settings.py 中的rename_params。三个真实场景的落地路径场景一把一批账号的作品批量入库这是最高频的用法。进入终端交互模式-批量下载账号作品(抖音)账号链接有三种来源accounts_urls配置推荐含mark自定义标识、tab作品类型、earliest/latest日期筛选、手动输入、从文本文档读取功能清单定义见 src/application/main_terminal.py。这个场景有四个值得提前知道的行为细节下载文件先写临时目录完成后移入储存目录程序退出时清空临时目录昵称或自定义标识mark变化时程序会自动重命名已下载文件中的对应部分私密账号的发布作品需要已登录且已关注该账号的 Cookie 才能采到内置智能延时机制连续处理达到阈值会自动暂停数分钟避免触发风控——看到程序已经暂停运行的提示不要慌这是设计行为。抖音侧其余功能按同样的入口 → 输入 → 产物三段式工作批量下载链接作品手动 / 文本文档、采集作品评论数据作品 ID 页数需配合storage_format落库、批量下载合集作品mix_urls配置 / 当前账号收藏合集列表 / 手动 / 文档、采集账号详细数据、采集搜索结果数据综合 / 视频 / 用户 / 直播四类、采集热榜数据无需输入。TikTok 侧对应支持账号作品accounts_urls_tiktok、链接作品、合辑作品mix_urls_tiktok和拉流地址获取。还有一个提效参数run_command配置项可以写入启动即执行的菜单指令序列跳过层层点击直达目标任务适合固定流程的批量作业。场景二刷到什么存什么选后台监听模式后程序常驻剪贴板轮询复制任何抖音 / TikTok 作品链接程序自动识别并下载。适合个人日常使用不需要再记菜单。场景三只采数据不下载文件如果你的目标是评论库、搜索词库或热榜快照而不是视频文件把storage_format设为sqlite或csvdownload设为false然后用采集作品评论数据、采集搜索结果数据、采集抖音热榜数据等入口即可产物直接进你配置的持久化后端。从本地脚本到长期服务启动 Web API 并拿到文档选Web API 模式后FastAPI 服务监听0.0.0.0:5555主机与端口常量见 src/custom/static.py服务实现见 src/application/main_server.py。访问http://127.0.0.1:5555/docs或/redoc可以看到自动生成的 OpenAPI 文档端点覆盖账号、作品、评论、回复、合集、直播、搜索、短链解析、全局配置等请求 / 响应模型定义在 src/models/。一个评论采集端点的调用示例与 README 官方示例一致from httpx import post from rich import print def demo(): headers {token: } data { detail_id: 0123456789, pages: 2, } api http://127.0.0.1:5555/douyin/comment response post(api, jsondata, headersheaders) print(response.json()) demo()把令牌鉴权加上再谈公网所有业务端点都经过token_dependency校验请求头里的token不通过直接返回 HTTP 403/token端点用于验证令牌是否有效。项目默认不校验src/custom/function.py 中的is_valid_token()当前直接return True也就是说本地跑没有任何门槛但一旦把服务暴露到公网务必先到is_valid_token()里配好自己的令牌逻辑否则任何路过的人都能消耗你的 Cookie 和带宽。用 Docker 部署成容器仓库自带 Dockerfilebuilder 阶段用python:3.12-bullseye装编译依赖最终镜像用python:3.12-slim只保留运行时EXPOSE 5555VOLUME /app/Volume挂载数据卷CMD [python, main.py]启动。docker pull joeanamier/tiktok-downloader # 或者用仓库 Dockerfile 本地构建镜像 docker run --name douk -p 5555:5555 -v tiktok_downloader_volume:/app/Volume -it joeanamier/tiktok-downloader docker start -i douk # 后续启动 docker restart -i douk # 重启-v把下载产物持久化到命名卷-p把 API 端口映射到宿主机。容器化部署有两条注意事项容器访问不到宿主机文件系统依赖本地环境的函数比如已弃用的从浏览器读取 Cookie在容器内不可用Cookie 统一用手动输入 / 剪贴板方式写入SERVER_HOST默认就是0.0.0.0容器映射端口后记得把令牌鉴权配置好。高频问题速查与日常维护高频问题速查点击展开Q下载的视频清晰度不够A优先换已登录账号的 Cookie确认max_size没设得太小检查是否频繁撞上智能延时导致重试失败。Q改完 settings.json 没反应A必须重启程序。日志里出现参数已回退 / 缺少参数类提示说明该字段值非法程序已经悄悄用了默认值。Q喜欢 / 收藏作品任务跑得太久A接口只返回作品发布日期而非操作日期程序必须全量拉取后再筛日期。用max_pages给请求次数封顶。Q为什么触发不了 Fork 仓库里的 Actions 工作流AActions 权限没开——Settings - Actions - General 里把 Actions permissions 改为 Allow all actions and reusable workflows。多实例与更新程序没针对多开优化需要并行两套任务就复制整个项目文件夹再分别配置。更新可执行文件版本时把旧版_internal\Volume复制到新版_internal保留配置与下载记录或停掉程序后整目录覆盖。构建可执行文件项目内置 GitHub Actions 自动构建工作流路径是 Fork 仓库 → 启用 Actions → 在 Actions 页手动触发「构建可执行文件」工作流选master或develop分支→ 到运行记录的 Artifacts 里下载产物。注意 GitHub 对普通用户每月提供约 2000 分钟免费额度Fork 仓库要定期与上游同步才能拿到修复。合规与免责项目基于 GNU GPLv3.0 开源README 末尾的免责声明立场很明确——使用者自行评估并承担使用风险不得用于未经授权下载、传播受版权保护内容数据处理需自行遵守目标平台条款与当地法规作者不提供任何付费版本或商业服务。把工具接进团队工作流之前先完整读一遍 README.md 的免责声明章节。DouK-Downloader 用一套代码同时扮演了两个角色个人终端里最省心的批量下载器以及加上 Docker、Web API 和令牌之后可被其他系统调用的采集服务。它的前提条件也很清楚——加密参数需要自备、Web UI 尚在重构、Cookie 是必须持续维护的前置条件。把这些前提消化掉之后从uv run main.py到生产 API 的整条路径都是文档里写明的、可以直接复制的路径。本文基于该仓库公开内容整理功能边界以官方 README 为准。【免费下载链接】TikTokDownloader抖音 / TikTok 平台作品下载/数据采集工具项目地址: https://gitcode.com/GitHub_Trending/ti/TikTokDownloader创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

dsh-superagent 测试体系全解析:近 60 个测试文件如何覆盖智能体的每一个角落
dsh-superagent 测试体系全解析:近 60 个测试文件如何覆盖智能体的每一个角落

人工智能AI Agent代码智能体AI 应用dsh-plugin后端前端Agent 工作流 【免费下载链接】dsh-superagent-prototype Towards a More Autonomous Agent System 项目地址: https://gitcode.com/gh_mirrors/ds/dsh-superagent-prototype 点击查看 免费下载 dsh-superagen… · 2026/11/5 5:12:00

XHS-Downloader 完整教程:快速上手小红书无水印作品下载
XHS-Downloader 完整教程:快速上手小红书无水印作品下载

XHS-Downloader 完整教程:快速上手小红书无水印作品下载 【免费下载链接】XHS-Downloader 小红书(XiaoHongShu、RedNote)链接提取/作品采集工具 项目地址: https://gitcode.com/gh_mirrors/xh/XHS-Downloader 你一定遇到过这个卡点&am… · 2026/11/5 5:11:00

如何用PySceneDetect快速分割视频:完整教程与实战案例
如何用PySceneDetect快速分割视频:完整教程与实战案例

如何用PySceneDetect快速分割视频:完整教程与实战案例 【免费下载链接】PySceneDetect :movie_camera: Python and OpenCV-based scene cut/transition detection program & library. 项目地址: https://gitcode.com/GitHub_Trending/py/PySceneDetect 想… · 2026/11/5 5:11:00

三维重建与无感定位技术在危化品园区智能安防中的应用
三维重建与无感定位技术在危化品园区智能安防中的应用

1. 项目背景与核心价值危化品园区安全管理一直是工业领域的重点难点问题。传统监控手段存在视野盲区、定位精度低、响应滞后等痛点,尤其在复杂立体空间中难以实现全方位无死角覆盖。我们团队研发的这套智能安防管理系统,通过融合三维重建与无感定位两大核… · 2026/11/5 5:49:12

哈希算法原理、应用与工程实践指南
哈希算法原理、应用与工程实践指南

1. 哈希的本质与核心价值哈希(Hash)本质上是一种将任意长度的输入数据映射为固定长度输出的单向函数。就像图书馆的索书号系统——无论书籍多厚多薄,都能被转换成统一格式的编号。这种转换具有三个关键特性:确定性:相同… · 2026/11/5 5:49:12

STM32驱动KSZ8863交换芯片:三端口配置与调试实战
STM32驱动KSZ8863交换芯片:三端口配置与调试实战

简介:面向STM32嵌入式开发者的KSZ8863交换芯片驱动移植与调试资料,重点解决在缺少硬件I2C外设或引脚受限时,如何通过GPIO模拟I2C总线完成芯片寄存器配置的问题,适合具备一定STM32外设与网络芯片基础的中级开发者参考。压缩包共12个… · 2026/11/5 5:49:12

危化品园区智能安防系统:三维重建与无感定位技术实践
危化品园区智能安防系统:三维重建与无感定位技术实践

1. 项目背景与核心价值危化品园区作为特殊的高风险作业场所,其安全管理一直是行业痛点。传统监控系统存在三大局限:二维画面缺乏空间感知、人工巡检存在盲区、应急响应依赖经验判断。我们团队研发的这套智能安防系统,通过三维重建构建数字孪生… · 2026/11/5 5:49:12

解决IntelliJ IDEA中MyBatis XML文件SQL背景色问题
解决IntelliJ IDEA中MyBatis XML文件SQL背景色问题

1. 问题背景与现象解析作为一名常年使用IntelliJ IDEA进行Java开发的程序员,我最近在编写MyBatis的XML映射文件时遇到了一个视觉干扰问题——文件中的SQL语句部分突然出现了浅色背景高亮(如下图所示)。这种背景色虽然不影响代码功能&#xff… · 2026/11/5 5:49:12

STM32 SD卡FATFS文件系统移植与读写实战
STM32 SD卡FATFS文件系统移植与读写实战

简介:围绕STM32平台读取SD卡并挂载FATFS文件系统,这套实战工程包面向嵌入式初学者、课程设计学生及需要快速验证存储方案的开发者,重点解决SPI/SDIO接口下SD卡初始化、扇区读写与文件系统移植问题。资料将HAL库、FATFS配置、KEIL工程组织与文… · 2026/11/5 5:48:12

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

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

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

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

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

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

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

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

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

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

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

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

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

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

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

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

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

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

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码