抖音合集批量下载完整指南:一条命令跑完去水印存档,去重与重试都配好了
【免费下载链接】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 是一个抖音批量下载工具:把作者主页或合集链接写进配置文件,一条命令就能完成去水印保存。进度条、SQLite 去重、失败重试、浏览器兜底都是自带的,跑起来后不用人盯着。
上个月我在整理一个跟了半年的合集:十几条作品,在 App 里逐条点「保存到相册」,干了将近 40 分钟,回头翻相册还混着 3 条重复。从那之后我改成了把链接写进配置文件的玩法,整个合集一条命令就能跑完,剩下的时间用来干别的事。
四步跑通:从克隆到挂机
需要 Python 3.9+,Windows / macOS / Linux 都能跑。
1. 克隆并安装依赖
git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader pip install -r requirements.txt pip install playwright && python -m playwright install chromium2. 复制并修改配置
cp config.example.yml config.yml把link换成目标主页或合集,其余字段基本都有默认值:
link: - https://www.douyin.com/collection/7341234567890123456 path: ./Downloaded/完整字段说明见 config.example.yml。
3. 获取 Cookie
python -m tools.cookie_fetcher --config config.yml弹出的浏览器里登录抖音,回终端按 Enter,Cookie 会自动写回配置。
4. 运行
python run.py -c config.yml跑的时候看进度条就行,python run.py --help可以查全部参数,-t能临时调并发数。
上图是 Douzy 桌面版(内测)的抖音下载选项页;本文讲的是命令行版,配置驱动,更适合挂着跑。
看懂核心机制:解析、去重、失败兜底
链接怎么变成按合集分好的文件夹
core/url_parser.py 从你贴的 URL 里识别链接类型并提取 mix_id,/collection/、/mix/两种写法都能解析,单条视频和图集链接也支持。拿到 id 后,core/mix_downloader.py 把合集里的作品按页拉全、全部入队。默认folderstyle: true且group_by_mode: true:先按作者建目录、再按模式分层(如mix/),每条作品一个子文件夹,下完不用改名。
重复跑同一主页,为什么只会补新增
database: true默认开启,每条下载成功都会写进本地 SQLite(默认文件dy_downloader.db),处理前先查库,已存在的直接跳过。这个增量逻辑由increase控制,默认各模式都是true;改成false则会重下并覆盖当前筛选范围内的文件,无需清库。实现见 storage/database.py。
接口抽风时怎么兜底
默认并发thread: 5,所有请求先过一个令牌桶限速器 control/rate_limiter.py:默认放行 2 次/秒,还带 0~0.5 秒随机抖动。单条作品失败会交给 control/retry_handler.py,首次失败后再试 3 次,间隔 1s、2s、5s(retry_times: 3)。如果主页分页被风控卡住,browser_fallback(默认enabled: true、headless: false)会拉起真实浏览器滚动加载,最多 240 屏(max_scrolls),验证码可以在浏览器里手动过。
踩坑实录:三个最常见的卡点
Cookie 过期,整批卡在需要登录
- 现象:跑到一半突然提示需要登录,作品列表拉不出来。
- 原因:
ttwid、msToken这类 Cookie 有效期有限,换过登录设备后更容易失效。 - 怎么办:重跑
python -m tools.cookie_fetcher --config config.yml刷新即可。database默认开着,重跑只补新增,已下载的部分不会下两遍。
并发拉到 10,进度反而更慢
- 现象:把
thread从 5 调到 10,速度没提,失败还变多了。 - 原因:限速器默认 2 次/秒,高并发只是在限速器后面排队,请求节奏更密,更容易触发风控。
- 怎么办:
thread保持默认 5,慢网络就降到 3;配合proxy换出口,挑网络空闲时段跑,比拉满并发稳。
主页只拉到一小部分作品
- 现象:合集能下全,主页几百条只出了几十条。
- 原因:接口风控限制了主页分页。
- 怎么办:保持
browser_fallback.enabled: true、headless: false,在浏览器里完成验证。README 也坦承这种兜底不保证成功,日常高频下载建议直接用 Douzy 桌面版。
进阶玩法:时间筛选、原画与评论
只下某段时间的作品:start_time/end_time用YYYY-MM-DD,包含结束当天,配合增量开关实现区间归档:
start_time: "2025-01-01" end_time: "2025-06-30" increase: post: true追原画质:默认video_quality: highest只在转码档里挑;改成original后每条作品会多一次探测(超时 10s),原片比最高转码档大就优先下原片,探测失败自动回退。
连评论一起存:每个作品会额外生成一份*_comments.json:
comments: enabled: true include_replies: true max_comments: 200适配与边界:谁该用,谁该绕开
- 适合:要完整归档某个作者主页或整个合集、需要去重、增量、时间筛选,并且习惯命令行、任务可以长时间挂着的创作者和研究者。
- 不适合:偶尔存一两条视频的人——App 内「保存到相册」更快;完全不想碰终端的用户,桌面版目前还在内测。
- 边界要提前知道:README 明确写了当前接口风控会限制 CLI 下载单个视频/合集/音乐,主页走浏览器兜底也不保证成功,选型时把这层算进去。
- 工具仅面向学习和个人数据管理,请遵守平台规则与内容版权。
配置写好、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),仅供参考