DouK-Downloader:抖音视频下载与 TikTok 数据采集,从 Cookie 配置到 API 部署的完整配置
DouK-Downloader抖音视频下载与 TikTok 数据采集从 Cookie 配置到 API 部署的完整配置【免费下载链接】TikTokDownloader抖音 / TikTok 平台作品下载/数据采集工具项目地址: https://gitcode.com/GitHub_Trending/ti/TikTokDownloaderDouK-Downloader过去一直叫 TikTokDownloader是一个基于 HTTPX 异步请求的开源工具同时覆盖抖音和 TikTok 两个平台。它做的事情可以归成四类按链接或按账号批量下载抖音视频、图集、封面等文件采集作品数据、评论、搜索与热榜等结构化信息抓取直播拉流地址并用 ffmpeg 录下直播以及把上面所有能力包装成 HTTP 接口供你自己的程序调用。如果你的需求是把某个账号的作品存下来或把评论数据灌进自己的表里这个项目的代码量不大逻辑全部可读可改值得一试。从 clone 到第一次下载环境上只有一条硬要求Python 不低于 3.12Windows 10 以上、macOS、Linux 都行。装依赖有两条等价路线任选其一这里用 pip 那条示意git clone https://gitcode.com/GitHub_Trending/ti/TikTokDownloader cd TikTokDownloader pip install -r requirements.txt python main.py另一条是 README 推荐的 uv 路线执行uv sync --no-dev后再uv run main.py。依赖清单本身就是技术栈httpx 负责请求rich 画终端fastapi/uvicorn 提供 API 服务pydantic 做数据校验aiosqlite 和 openpyxl 负责数据落盘。Cookie 怎么获取Cookie 是这个工具最关键的前置条件。它直接决定两件事接口能不能正常返回数据以及你能拿到的视频分辨率。Cookie 失效之前不需要反复写失效了再更新即可。获取步骤建议现在就照着做一遍浏览器打开抖音网页版并登录按 F12 打开开发者工具切到「网络」面板勾上「保留日志」在筛选框里输入cookie-name:odin_tt随便点开一个作品的评论区产生请求选中一个请求把请求头里Cookie的完整值复制出来。更详细的截图版教程见 Cookie获取教程.md。第一次下载走哪条菜单运行python main.py后阅读免责声明输入 YES 确认这个选择会持久化只有第一次出现选「手动输入 Cookie」粘贴刚才复制的内容如果你复制时直接进了剪贴板选「从剪贴板读取 Cookie」然后直接回车也行返回主菜单选「终端交互模式」选「批量下载链接作品(抖音)」再选「手动输入待采集的作品链接」粘贴一个作品链接等进度条走完。文件会落在root/folder_name指向的目录里默认就是项目根目录下的Download文件夹。按默认命名规则文件名由创建时间、内容类型、作者昵称、作品描述四段拼成例如2026-10-21 18:30:05 Video 某某昵称 作品描述.mp4。以后想退出程序在任意菜单输入 Q 或 q 即可任意输入框直接回车表示返回上一级。参数怎么选settings.json 里真正影响结果的几项程序第一次启动会在项目根目录生成 settings.json生成逻辑在 settings.py 的__create方法里。全参数不少但真正左右结果的就下面这些其余保持默认即可参数默认值不配会怎样cookie/cookie_tiktok空字符串账号页、私密账号等接口直接失败画质也上不去root空字符串填了非法路径会静默回退到项目根目录只留一条警告日志name_formatcreate_time type nickname desc用了七键之外的词整个命名规则被丢弃、回退默认组合storage_format空字符串纯采集时数据不落盘跑完只剩终端输出max_pages00 按 99999 处理等于不限量地翻页proxy空字符串启动时测连失败就自动忽略代理静默失效downloadtrue只想要数据不想要文件时把它设为 false两个容易踩的约定改完 settings.json 必须重启程序才生效没有热加载从旧版本升上来时default_mode、update_cookie、original_cover这类老字段名会被自动映射成新名字但文件里最好还是手动改成新写法。跟着一次下载请求走上面那张表管的是配置下面是配置如何被执行。随便丢一个作品链接进去内部依次发生五件事link/extractor.py 先把短链解析成完整链接interface/ 下对应的接口类带着游标分页拉数据extract/extractor.py 从返回体里统一抠出字段downloader/download.py 把文件先写进临时文件夹成功后才移动到目标目录程序退出时清空临时区最后按storage_format把结构化数据存进 CSV、XLSX 或 SQLite。链路里有几个工程细节各说一句调度中枢 TikTokDownloader.py 里有个守护线程每 15 分钟自动刷新 msToken 和 tt_wid 并回写 Cookie所以长时间挂机时凭证不会轻易过期下载器用 Range 头做断点续传大文件中断后不必从头再来同一时刻最多 4 个下载任务并行MAX_WORKERS 4定义在 static.py请求失败由 retry.py 的重试装饰器接管最多重试 5 次每次失败后智能延时再试文件落盘后还会比对文件头魔数jpg、png、mp4、mov 等确认真实类型并纠正后缀防止拿到假 mp4。顺带提醒四个别依赖的功能Web UI 交互模式还在重构菜单里选了只会提示正在重构内置的 xBogus/aBogus 等加密参数算法已过期失效、不再维护需要这类参数的场景要自备生成代码「从浏览器读取 Cookie」和「扫码登录获取 Cookie」两个入口已注释弃用。在这四件事上花时间都是白费。两种上线方式容器和 Web API 服务Docker 容器镜像有三个来源用仓库根目录的 Dockerfile 本地构建双阶段构建最终镜像基于 python:3.12-slimdocker pull joeanamier/tiktok-downloaderdocker pull ghcr.io/joeanamier/tiktok-downloader。拿到镜像后一条命令建容器docker run --name my-downloader -p 5555:5555 \ -v tiktok_downloader_volume:/app/Volume -it 镜像名称之后docker start -i my-downloader启动即可。要清楚一点容器摸不到宿主机的文件系统和浏览器任何依赖宿主环境的能力在容器里都没有其余功能若有异常可以直接去仓库反馈。Web API 接口服务主菜单选「Web API 模式」后main_server.py 里的APIServer.run_server会在 0.0.0.0:5555 起一个 FastAPI 服务。浏览器打开http://127.0.0.1:5555/docs或/redoc就能看到可交互的接口文档。鉴权看请求头里的token每个接口都经过token_dependency依赖校验失败直接返回 HTTP 403。项目默认不设令牌内网自己用没问题如果要公开部署去is_valid_token()里设一个固定令牌再打/token接口自测一下有效性。调用长这样from httpx import post resp post( http://127.0.0.1:5555/douyin/comment, json{detail_id: 0123456789, pages: 2}, headers{token: }, ) print(resp.json())生产环境的建议压成三句前面挂一层反向代理终结 TLS对外接口做限流uvicorn 日志重定向到文件别只看控制台。排障手册出问题先查这八处Cookie 还在有效期但接口失败或视频分辨率变低多半是 Cookie 已失效或根本没有登录态重新从浏览器复制一份写入即可。要拉私密账号的作品还需要用已登录且已关注该账号的 Cookie。文件没出现在我指定的目录root指向的路径不存在或不可写时程序会回退到项目根目录只留一条警告日志。查一下运行日志里的 root 警告改成真实存在的目录再重启。代理配了好像没生效程序启动时会真实请求平台页面测连测连失败就直接忽略代理不会报错。先手动验证代理本身可用再确认日志里出现代理测试成功。批量拉喜欢或收藏作品特别慢这两个接口只返回作品发布日期不返回你操作它的日期所以程序必须把全量拉回来再筛选。用max_pages压低请求页数是最直接的缓解手段。升级之后旧作品找不到了打包版的数据存在_internal/Volume里新版不会自动继承。按 README 的更新说明把旧版的_internal/Volume复制到新版的_internal下。多开几个实例行为开始怪项目没有针对多开做优化。复制整个项目文件夹每个实例各用一份独立副本。想终止程序或 ffmpeg怎么按一律按 Ctrl C不要直接点终端窗口的关闭按钮。能下载付费作品吗不能这是明确的产品边界相关的反馈也不会被处理。这个工具比较适合三类用法个人作品归档、中小规模账号数据采集、把采集能力嵌进自己的系统走 Web API。不适合拿去做大规模商用抓取。使用前请读一遍 README 末尾的免责声明并理解接受采集与下载行为须自行遵守相关法律法规和平台规则由此产生的责任由使用者承担。【免费下载链接】TikTokDownloader抖音 / TikTok 平台作品下载/数据采集工具项目地址: https://gitcode.com/GitHub_Trending/ti/TikTokDownloader创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考