
DouK-Downloader 抖音/TikTok 作品下载与数据采集完整实战教程10 分钟跑通首次下载【免费下载链接】TikTokDownloader抖音 / TikTok 平台作品下载/数据采集工具项目地址: https://gitcode.com/GitHub_Trending/ti/TikTokDownloaderDouK-Downloader历史名称 TikTokDownloader是一款完全开源、基于 HTTPX 异步请求实现的抖音 / TikTok 作品下载与数据采集工具。它解决的核心问题是不用抓包、不用写脚本就能把视频、图集、音乐、封面文件下载下来并把作品、账号、评论、搜索等结构化数据持久化保存。典型用途有三类个人作品归档、中小规模账号数据采集、把采集能力以 Web API 形式集成进你自己的系统。能力一览按你的使用场景对号入座场景能做什么单个作品下载粘贴一个抖音或 TikTok 链接即可下载支持最高画质视频、图集、实况/动图、音乐、动态/静态封面账号批量处理抖音账号发布、喜欢、收藏、收藏夹作品TikTok 账号发布、喜欢作品支持多账号批量、增量下载、按发布时间筛选链接批量与监听手动/文本文件批量输入作品链接后台监听剪贴板复制链接自动触发下载直播录制获取抖音 / TikTok 直播拉流地址调用 ffmpeg 录制直播数据采集作品评论、合集/合辑、账号详细数据、综合/视频/用户/直播四类搜索、抖音热榜工程化特性断点续传、多线程默认 4 并发、自动跳过已下载、代理请求、CSV/XLSX/SQLite 数据落盘、容器化与 API 服务化⚠️ 使用当前版本前先认清四个不可依赖的功能Web UI 交互模式正在重构代码尚未更新菜单仅有提示内置 xBogus/aBogus 等加密参数算法已过期失效、为合规不再维护依赖它的功能可能不正常需自行准备生成代码「从浏览器读取 Cookie」与「扫码登录获取 Cookie」均已弃用或失效主菜单对应代码已注释。准备工作Python 3.12、依赖与 Cookie 一次配齐环境与依赖唯一的硬指标是 Python 不低于3.12Windows 10、macOS、Linux 均可运行README 推荐 Windows 11 自带终端。获取源码后pip 与 uv 两条路径任选其一git clone https://gitcode.com/GitHub_Trending/ti/TikTokDownloader cd TikTokDownloader python -m venv venv # 可选 pip install -r requirements.txtuv sync --no-dev # README 推荐路径 uv run main.pyrequirements.txt 本身就是一张技术栈清单httpx异步请求、rich彩色终端、fastapiuvicorn服务化、pydantic数据校验、aiosqlite与openpyxl持久化。Cookie 获取步骤 Cookie 是浏览器端身份凭证决定接口权限与视频画质只在失效后需要重写不是每次运行都要写。完整图文见 Cookie获取教程.md核心步骤是浏览器访问抖音网页版并登录账号按F12打开开发人员工具选「网络」选项卡并勾选「保留日志」筛选框输入cookie-name:odin_tt点击任意作品评论区触发请求选中一个数据包全选复制Cookie的完整值。10 分钟首次使用从启动到第一个文件落地程序入口是 main.py它创建TikTokDownloader实例并调用run()。按下面步骤原样操作python main.py首次启动生成settings.json并展示项目标题与免责声明输入YES确认该选择已持久化以后不再出现主菜单选手动输入 Cookie (抖音)粘贴刚才复制的 Cookie 后回车嫌麻烦可以选从剪贴板读取 Cookie (抖音)复制好直接回车即可返回主菜单选终端交互模式选批量下载链接作品(抖音)再选手动输入待采集的作品链接粘贴一个抖音作品链接回车等进度条走完文件出现在root根目录下的folder_name文件夹中默认就是项目根目录下的Download/文件名由创建时间、账号昵称、作品描述拼成。菜单交互规则只需记住两条任意输入框直接回车是返回上一级输入Q或q是结束程序。关键配置影响行为最大的六个参数settings.json首次启动自动生成生成逻辑在 settings.py 的Settings.__create默认值全部定义在Settings.default。修改后必须重启程序才生效不支持热加载。旧版字段有自动映射default_mode→run_command、original_cover→static_cover等。只挑最影响行为的六个讲cookie/cookie_tiktok默认两个平台的身份凭证字符串或字典均可。未登录时账号页、私密账号作品会直接失败画质偏低时优先怀疑它。建议从已登录浏览器写入失效再更新。root默认储存根路径。程序先检查目录是否存在再尝试在父目录下创建都不行才回退到项目根目录并写警告日志。建议填一个确定存在的目录。name_format默认create_time type nickname desc文件命名模板键只能从id/desc/create_time/nickname/uid/mark/type七键里选任一非法整体回退默认。建议批量多账号下载时加上uid或mark避免重名。storage_format默认数据持久化格式CSV/XLSX/SQLite。纯采集不下载的场景必须配置否则数据不落盘相关功能会直接警告退出。max_pages默认0等价 99999分页请求次数上限。喜欢/收藏接口只返回发布日期不返回操作日期程序必须拉全量再筛选这个参数是唯一的量级阀门。建议账号作品多时显式设小并配合日期区间缩小范围。proxy默认代理地址。程序启动时会真实请求平台页面测连失败就静默忽略代理日志里搜「代理测试成功/失败」确认状态。部署与服务化容器一行起API 接进你的系统Docker 一行启动命令镜像可用仓库根目录 Dockerfile 本地构建双阶段构建最终镜像基于python:3.12-slim也可直接拉取joeanamier/tiktok-downloader或ghcr.io/joeanamier/tiktok-downloaderdocker run --name tiktok-downloader -p 5555:5555 -v tiktok_downloader_volume:/app/Volume -it joeanamier/tiktok-downloader docker start -i tiktok-downloader注意容器内无法访问宿主机文件系统与本地浏览器依赖宿主环境的功能不可用其余功能如有异常需向作者反馈。Web API 服务化调用示例主菜单选Web API 模式程序在0.0.0.0:5555启动 FastAPI 服务常量定义在 static.pySERVER_HOST/SERVER_PORT服务实现在 main_server.py 的APIServer.run_server。浏览器访问http://127.0.0.1:5555/docs或/redoc就是自动生成的交互文档。每个接口经token_dependency读取请求头里的token交由 function.py 的is_valid_token()校验失败返回 HTTP 403。该函数当前恒返回True即默认无需令牌对外部署前建议在这里改成校验固定令牌并可用/token接口测试有效性。调用示例from httpx import post data {detail_id: 0123456789, pages: 2} headers {token: } response post(http://127.0.0.1:5555/douyin/comment, jsondata, headersheaders) print(response.json()) 生产化三句话需要多实例就复制整个项目文件夹隔离运行对外暴露前挂一层反向代理终结 TLS 并限流长期运行把 uvicorn 日志重定向到文件。源码导读一条请求链路三个核心模块全链路一句话串起来用户输入经 link/extractor.py 把短链解析成完整链接interface/ 下的接口类发起分页请求extract/extractor.py 统一提取字段downloader/ 先把文件写入临时文件夹、完成后再移动到储存目录storage/ 按storage_format持久化数据调度中枢是 TikTokDownloader.py 的主菜单分发与run_command直达。调度层TikTokDownloadersrc/application/TikTokDownloader.py菜单分发、Cookie 写入、版本检查另开守护线程按 15 分钟周期COOKIE_UPDATE_INTERVAL自动刷新 msToken、tt_wid 并回写 Cookie。接口层API模板src/interface/template.py统一generate_params→request_data→check_response三段式account.py、detail.py、live.py 等子类只关心各自的 URL 与游标规则终端菜单的 15 个功能入口定义在 main_terminal.py 的__function。下载层Downloadersrc/downloader/download.py信号量限制并发MAX_WORKERS 4__update_headers_range支持 Range 断点续传先落临时目录再save_file移入目标目录。两个值得读的工程细节retry.py 的重试装饰器按max_retry上限循环、失败后智能延时static.py 的FILE_SIGNATURES内置 jpg/png/mp4/mov 等文件头魔数下载后据此校验真实类型并纠正后缀。常见问题先对现象再找解法Q数据获取失败或视频清晰度偏低Cookie 失效或未登录导致。重新写入 Cookie私密账号的发布作品要求登录且该账号已关注目标私密账号。Q文件没出现在预期目录root是非法路径程序已静默回退到项目根目录。查运行日志中的 root 警告改成存在的目录后重启。Q配置了代理却没生效启动时代理测连失败程序自动忽略。先手动验证代理可用再确认日志出现「代理测试成功」。Q批量喜欢/收藏作品特别慢接口只返回作品发布日期程序必须拉全量再按日期筛选。用max_pages控制页数并尽量缩小日期区间。Q升级后旧作品好像丢了旧版本数据存在_internal/Volume新版不会自动继承。按 README 更新方案一把旧版_internal/Volume复制到新版_internal。Q多开多个实例行为异常项目未针对多开优化。复制整个项目文件夹每个实例独立运行。另外两点操作纪律终止程序或 ffmpeg 一律按Ctrl C不要直接点终端关闭按钮本项目不支持付费作品下载。适用场景与合规声明DouK-Downloader 适合三类场景个人作品归档、中小规模账号数据采集、Web API 服务化集成。双平台能力完整全部逻辑可读可改。⚠️ 使用前请完整阅读 README.md 末尾的免责声明并理解接受全部条款。本项目使用必须自行遵守相关法律法规与平台规则不得用于侵犯知识产权的行为因数据采集与下载行为产生的一切法律责任由使用者自行承担。【免费下载链接】TikTokDownloader抖音 / TikTok 平台作品下载/数据采集工具项目地址: https://gitcode.com/GitHub_Trending/ti/TikTokDownloader创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考