抖音TikTok下载工具DouK-Downloader实战指南【免费下载链接】TikTokDownloader抖音 / TikTok 平台作品下载/数据采集工具项目地址: https://gitcode.com/GitHub_Trending/ti/TikTokDownloaderDouK-Downloader历史名称 TikTokDownloader是一款完全开源的抖音/TikTok 作品下载与数据采集工具基于 HTTPX 异步网络库实现覆盖作品文件下载、结构化数据采集、直播录制与 Web API 服务化四类使用场景。本文按交接说明的方式组织先盘点它能做什么、明确不能做什么再给出从安装到首次下载的完整路径最后拆解到源码级的数据流、核心模块与生产部署要点。第一幕能力与边界盘点定位双平台下载与采集的一站式方案项目解决的核心痛点是免抓包、免逆向地批量获取抖音/TikTok 的作品文件与结构化数据。能力按使用场景分组如下使用场景具体能力点作品下载抖音视频/图集/实况/动图、最高画质TikTok 视频原画/图集动态/静态封面、音乐账号维度抖音账号发布/喜欢/收藏/收藏夹作品批量下载TikTok 账号发布/喜欢作品多账号批量链接维度批量下载链接作品后台监听剪贴板新链接自动入队下载直播录制获取抖音/TikTok 直播拉流地址调用 ffmpeg 录制直播视频数据采集作品评论、合集/合辑、账号详细数据、综合/视频/用户/直播四类搜索、抖音热榜工程能力增量下载、断点续传、多线程、自动跳过已下载、CSV/XLSX/SQLite 持久化、代理请求、局域网远程访问、Web API 调用功能清单的完整来源是 README 的「项目功能」列表全部逻辑集中在 src/ 下可读可改。四项弃用或失效功能不要依赖⚠️ 以下功能在 README 或源码中有明确标注使用当前版本时请将其从依赖清单中划掉功能状态原因Web UI 交互模式重构中代码尚未更新菜单选中后仅提示该功能正在重构见 TikTokDownloader.py 的disable_function约第 138-145 行内置加密参数算法已过期失效、不再维护为合规不再维护 xBogus/aBogus 等内置算法src/encrypt/部分功能可能无法正常工作需自行准备生成代码从浏览器读取 Cookie已弃用README 删除线标注主菜单对应代码已注释TikTokDownloader.py 约第 114、118 行扫码登录获取 Cookie已失效README 删除线标注主菜单对应代码已注释第二幕从安装到第一次下载安装Python 3.12 下限与两条等价路径环境硬指标只有一条Python 不低于3.12。Windows 10 及以上、macOS、Linux 均可运行README 推荐 Windows 11 自带终端以获得最佳交互体验。获取源码后pip 与 uv 两条路径任选其一git clone https://gitcode.com/GitHub_Trending/ti/TikTokDownloader cd TikTokDownloader pip install -r requirements.txt python main.py # 或 uv 路径README 推荐uv sync --no-dev uv run main.pyrequirements.txt 即技术栈本身httpx[socks]异步请求与代理、rich彩色终端、fastapi/uvicorn服务化、pydantic数据校验、aiosqlite/openpyxl持久化、aiofiles异步文件读写。写入 Cookie唯一必填的身份凭证 Cookie 是浏览器端身份凭证决定接口权限和视频画质仅需在失效后重写不是每次运行都要写。获取步骤参考 docs/Cookie获取教程.md浏览器访问抖音网页版可选无痕模式可登录可跳过按 F12 打开开发人员工具切到「网络」选项卡勾选「保留日志」筛选框输入cookie-name:odin_tt点击任意作品的评论区触发请求选取一个数据包全选并复制请求头中Cookie的完整值。两点补充Cookie 未登录时账号页、私密账号作品等接口会直接失败私密账号还需要登录账号已关注对方画质偏低时优先怀疑 Cookie 过期。3 分钟拿到第一个下载结果运行python main.py首次启动看到项目标题与免责声明后输入YES回车该选择持久化仅首次出现主菜单选择手动输入 Cookie (抖音)粘贴 Cookie 回车也可选从剪贴板读取 Cookie复制后直接回车返回主菜单选择终端交互模式依次选择批量下载链接作品(抖音)→手动输入待采集的作品链接粘贴一个抖音作品链接回车等待进度条走完文件落在root/folder_name目录默认Download/文件名含创建时间、作品类型、账号昵称、作品描述任意菜单直接回车返回上级输入Q或q结束程序。最小可运行示例python main.py # 终端交互模式 - 批量下载链接作品(抖音) # - 手动输入待采集的作品链接 - 粘贴作品链接回车 # 产物出现在 Download/ 目录文件名按 name_format 规则生成settings.json 参数逐项过一遍首次启动会在项目根目录自动生成settings.json生成逻辑是 settings.py 的__create约第 151-162 行全部默认值定义在同文件Settings.default约第 21-121 行读取时缺失参数会自动补齐并回写。修改后必须重启程序才生效不支持热加载。旧版本字段有自动映射rename_params约第 122-143 行default_mode→run_command、update_cookie→douyin_platform、update_cookie_tiktok→tiktok_platform、original_cover→static_cover。参数名默认值一句话作用修改建议cookie/cookie_tiktok抖音/TikTok 身份凭证支持字符串或字典登录后从浏览器写入失效再更新root储存根路径非法则回退项目根目录填已存在的目录folder_nameDownload顶层下载目录名保持简单避免非法字符name_formatcreate_time type nickname desc作品文件命名模板从七键组合见下文详解storage_format数据持久化格式CSV/XLSX/SQLite 等纯采集场景必须配置否则不落盘downloadtrue是否下载文件只采数据设为falsemax_pages0等价 99999分页请求次数上限控制喜欢/收藏的拉取量proxy/proxy_tiktok平台代理地址启动时自动测连失败即忽略timeout/max_retry10/5请求超时秒/失败重试次数范围 2-10 秒、0-5 次max_size/chunk0/2MB单文件大小上限/接收数据块大小chunk 范围 128KB-2MBmusic/dynamic_cover/static_cover均false是否额外下载音乐或封面按需开启run_command启动时预执行的功能指令免去重复选菜单ffmpegffmpeg 可执行文件路径下载直播必填desc_length/name_length/truncate64/128/50描述/文件名截断长度与智能截断阈值一般不动校验逻辑集中在 parameter.py对行为影响最大的五个参数逐个说明cookie__check_cookie约第 280-287 行同时接受字典与字符串非法类型记警告并返回空值。它是账号页、私密作品、最高画质三条链路的共同前提。root__check_root约第 368-382 行先判目录是否存在再尝试在父目录下创建都不行才回退项目根路径并写警告日志——文件消失时先查这里。name_format__check_name_format约第 404-415 行要求每个键都在NAME_KEYS约第 55-63 行的七个键内id/desc/create_time/nickname/uid/mark/type任一非法即整体回退默认组合不做部分保留。max_pages__check_max_pages约第 525-535 行中0与非正整数统一按 99999 处理。喜欢/收藏接口只返回发布日期而非操作日期程序必须拉全量再筛选此参数是唯一的量级阀门。proxy__check_proxy约第 453-502 行启动时实际请求平台页面测连超时或报错直接返回None代理静默失效在日志里找代理测试成功/失败确认。第三幕内部机制与生产化部署形态容器一行起服务与 Web API 接口模式Docker 容器。镜像有三种获取方式用仓库根目录 Dockerfile 本地构建双阶段构建python:3.12-bullseye 编译依赖后复制到 python:3.12-slim 最终镜像EXPOSE 5555、VOLUME /app/Volume或拉取官方推送镜像joeanamier/tiktok-downloader、ghcr.io/joeanamier/tiktok-downloaderdocker run --name tiktok-dl -p 5555:5555 \ -v tiktok_downloader_volume:/app/Volume -it joeanamier/tiktok-downloader docker start -i tiktok-dl能力差异容器无法访问宿主机文件系统与本地浏览器从浏览器读取 Cookie等依赖宿主环境的功能不可用README 明确说明其余功能异常需向作者反馈。Web API 接口模式。主菜单选择Web API 模式程序在0.0.0.0:5555启动 FastAPI 服务常量SERVER_HOST/SERVER_PORT定义于 static.py约第 10、13 行服务实现在 main_server.py 的APIServer.run_server约第 82-101 行。访问http://127.0.0.1:5555/docs或/redoc可查阅自动生成的交互文档鉴权机制每个接口经token_dependency约第 46-51 行读取请求头中的token交由 function.py 的is_valid_token()第 73 行校验失败返回HTTP 403。项目默认无需令牌该函数恒返回True公开部署时建议在此处设置固定令牌防恶意请求并可用/token接口测试有效性。调用示例from httpx import post data {detail_id: 0123456789, pages: 2} resp post(http://127.0.0.1:5555/douyin/comment, jsondata, headers{token: }) print(resp.json()) 生产化各一句多实例请复制整个项目文件夹隔离运行对外暴露前挂一层反向代理终结 TLS 并做限流长期运行将 uvicorn 日志重定向到文件落盘。一条完整下载链路数据流一句话串起用户输入经 link/extractor.py 的Extractor/ExtractorTikTok约第 13、166 行解析短链为完整链接interface/ 下各接口类发起分页请求extract/extractor.py 统一提取字段downloader/ 先写入临时文件夹再移动至储存文件夹storage/ 按storage_format持久化数据csv/xlsx/sqlite/mysql/text 五个实现调度中枢是 TikTokDownloader.py 的主菜单分发与run_command直达——run()约第 430 行先过免责声明再进入main_menu约第 273 行。三个核心模块与两个工程细节调度层TikTokDownloaderTikTokDownloader.py菜单项在__update_menu约第 111-136 行注册每项绑定处理方法另开守护线程periodic_update_params约第 439-447 行以COOKIE_UPDATE_INTERVAL 15 * 60秒static.py 第 16 行为周期自动刷新加密参数并回写 Cookie免去手动维护时效性字段。接口层API模板template.py统一generate_params约第 95 行/request_data约第 248 行/check_response约第 221 行三段式子类 account.py、detail.py、comment.py、live.py、search.py、hot.py 各自只关心 URL 与游标规则终端菜单的功能入口定义在 main_terminal.py 的__function约第 141 行起。下载层Downloaderdownload.pysemaphore Semaphore(MAX_WORKERS)第 45 行限制并发MAX_WORKERS 4static.py 第 2 行__update_headers_range约第 938 行支持 Range 断点续传request_file约第 584 行先落临时目录save_file约第 845 行完成后再移入目标目录避免半成品污染归档。两个值得单独读的工程设计重试与退避retry.py 的Retry.retry装饰器约第 10-23 行按max_retry上限循环重试每次失败后await wait()智能延时失败达上限才终止任务并置finished标记。智能延时机制同样用于降低整体请求频率避免打满平台限流。文件完整性校验static.py 的FILE_SIGNATURES第 29-54 行内置 jpg/png/mp4/mov/webp 等文件的头魔数与偏移量下载完成后据此校验真实类型并纠正后缀对应 README 功能列表中的文件完整性处理机制。排障速查与运维纪律现象原因解法数据获取失败、视频清晰度偏低Cookie 失效或未登录重新写入 Cookie私密账号需已关注对方的登录 Cookie文件没出现在预期目录root为非法路径已回退项目根目录查运行日志中 root 警告改为已存在目录后重启代理配置了却没生效启动时代理测连失败程序自动忽略先手动验证代理可用再确认日志出现代理测试成功批量喜欢/收藏作品很慢接口只返回发布日期需拉全量再筛选用max_pages控制请求页数缩小日期区间升级后旧作品丢失旧版本数据在_internal/Volume新版未继承按 README 更新方案一将旧版_internal/Volume复制到新版_internal多开实例行为异常项目未针对多开优化复制整个项目文件夹各开独立实例三条运维纪律终止程序或 ffmpeg 一律按Ctrl C不要直接点终端关闭按钮批量下载收藏作品模式仅支持当前登录 Cookie 对应账号暂不支持多账号本项目明确不支持付费作品下载请勿就此提出需求。DouK-Downloader 适用于个人作品归档、中小规模账号数据采集、Web API 服务化集成三类场景双平台能力完整且全部逻辑可读可改。使用前请完整阅读 README 末尾的免责声明理解并接受全部条款本项目使用必须自行遵守相关法律法规与平台规则因数据采集与下载行为产生的一切法律责任由使用者自行承担。【免费下载链接】TikTokDownloader抖音 / TikTok 平台作品下载/数据采集工具项目地址: https://gitcode.com/GitHub_Trending/ti/TikTokDownloader创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考