ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

抖音合集批量下载 3 步跑起来:douyin-downloader 无水印保存完整指南

抖音合集批量下载 3 步跑起来:douyin-downloader 无水印保存完整指南

抖音合集批量下载 3 步跑起来:douyin-downloader 无水印保存完整指南

【免费下载链接】douyin-downloaderA practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support. 抖音批量下载工具,去水印,支持视频、图集、合集、音乐(原声)。项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader

douyin-downloader 是一个开源的抖音合集批量下载工具,能把整个合集的无水印视频一次性保存到本地,自动挑选无水印源并跳过已下载过的作品。对要整理教学素材、做内容归档的人来说,它省掉了逐个点开视频页手动保存的半天时间。

先把 douyin-downloader 跑起来 🚀

1. 克隆仓库并安装依赖

git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader python -m pip install -r requirements.txt python -m playwright install chromium

此时终端应显示依赖与 Chromium 内核安装完成、无报错。原理上,Cookie 获取和浏览器兜底都复用 Playwright 的 Chromium,所以最后一行不能省。

2. 获取登录 Cookie

cp config.example.yml config.yml python -m tools.cookie_fetcher --config config.yml

此时会自动弹出浏览器打开抖音登录页,登录完成后回到终端按回车,tools/cookie_fetcher.py 就把 Cookie 写回 config.yml。打开它能看到 cookies 段已填上 msToken、ttwid 等值,无需手动复制。

3. 写入链接并首次运行

link: - <你的合集链接> path: ./Downloaded/
python run.py -c config.yml

此时终端出现进度条,逐条显示合集内各作品的下载状态,文件落到 ./Downloaded/ 下。run.py 读取 config.yml,把 link 交给对应的下载器处理,一条命令跑完整套。

它都能帮你做什么

能力一句话说明
合集链接解析识别 /collection/、/mix/ 与短链接,正则提取 mix_id(合集唯一标识)
SQLite 去重下载记录写入数据库,重跑时自动跳过已下载的作品
多线程 + 重试默认 5 路并发,失败项按 retry_times 自动重试
元数据保存打开 json 开关后导出标题、发布时间、作者等信息
目录结构自动整理为「作者/mix/合集名/」,无需手动建文件夹
双通道访问API 优先取数,分页被拦截时切换浏览器兜底

这些能力组合起来,覆盖三类常见需求:把优质合集完整归档进自己的素材库;按学期或专题收集教学素材并保留发布时间;团队按统一命名规则共享下载好的内容。

同一后端的桌面端 Douzy:抖音平台可选择「作品/喜欢/合集」等批量内容类型

进阶玩法:按时间、按完整度、按画质 ⚙️

只下某个时间段的合集

start_time: "2024-01-01" end_time: "2024-06-30"

时间窗口外的作品自动跳过,只下载符合条件的部分,适合按学期收集内容(含结束日期当天)。

连同音频、封面、元数据一起留档

music: true # 原声音频 cover: true # 封面图 json: true # 作品元数据 JSON

适合需要把音频、封面、元数据一起完整保留的归档场景。

指定下载画质

video_quality: original # 尝试原片,探测失败自动回退最高转码档

抖音每个视频返回多档码率,这个选项决定选哪一档;日常用默认的 highest 更省流量。

下载卡住了先查这里 🔍

现象可能原因解决办法
中途失败、报错Cookie 过期或登录态失效重跑python -m tools.cookie_fetcher --config config.yml更新后重试
只下到很少几条、列表不全接口风控拦截了分页保持browser_fallback.enabled: true、headless: false,在弹出浏览器里手动过验证
看不到失败原因日志级别过低加-v运行:python run.py -c config.yml -v
速度慢、偶发超时网络高峰或并发过高适当调低thread,检查proxy是否填错

一条合集链接在底层怎么走 🔩

链接进来先由 core/url_parser.py 用正则匹配 /collection/ 与 /mix/ 路径提取 mix_id;v.douyin.com 这类短链会先跟随 302 重定向展开成完整地址再解析,这一步决定了后续所有请求的入口。拿到 mix_id 后,core/mix_downloader.py 先请求合集详情得到合集名与作者昵称,再按每页 20 条分页拉取完整作品列表、构建下载队列,文件按「作者/mix/合集名/」落盘,同一合集始终归入同一目录。取数以 API 为主,分页被拦截时由 browser_fallback 的浏览器兜底顶上;单条失败按 retry_times 重试,落盘后还会校验文件,付费加密流等打不开的坏档会被直接删除而不是留下坏档。是否重复下载由 storage/database.py 维护的 SQLite 记录决定,重跑不会下第二遍。

桌面端 Douzy 的链接任务页:粘贴链接后自动识别类型并提交下载

把下载交给工具

配置一次写好,下载这件事就可以交给工具稳定执行,你只需要决定保存什么。让技术服务于整理,而不是制造新的负担,是这个工具的设计出发点。

  • 首次先用 10 集以内的小合集试跑,确认目录与命名符合预期
  • 隔一段时间重跑 cookie_fetcher,保持登录态处于有效状态
  • config.yml 里存有 Cookie 与路径配置,建议随下载内容一起备份
  • 下载内容请尊重版权,仅用于个人学习、研究与归档

【免费下载链接】douyin-downloaderA practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support. 抖音批量下载工具,去水印,支持视频、图集、合集、音乐(原声)。项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进