抖音合集批量下载 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),仅供参考