抖音合集批量下载:无水印完整流程,从0到跑通
【免费下载链接】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
上次下载一个 40 个视频的合集,我手动点「保存」点了 40 遍,最后 6 个是重复的——文件夹里堆满了 001.mp4、002.mp4。搜「抖音合集怎么批量保存」的人大多都在这么干。真相是:把合集链接写进配置文件,douyin-downloader 一条命令就能完成整个合集的无水印批量下载,人都不用守在电脑前。
跟着跑通第一个下载
一共 4 步(Python 3.9+):
- 克隆并安装依赖:
git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader pip install -r requirements.txt cp config.example.yml config.yml- 编辑
config.yml,把合集链接填进link:
link: - https://www.douyin.com/collection/7341234567890123456 path: ./Downloaded/- 获取 Cookie(需要 Playwright):先执行
pip install playwright和python -m playwright install chromium,再运行:
python -m tools.cookie_fetcher --config config.yml浏览器里登录抖音,回终端按回车,Cookie 自动写回配置。
- 开跑:
python run.py -c config.yml进度条自己会走完,挂到跑完即可。
工具定位
douyin-downloader 是一个 Python 命令行下载器,覆盖单条视频、图集、合集、音乐(原声)和作者主页的批量下载,默认选无水印源并自动挑最高码率(video_quality: highest)。它和「浏览器右键另存」的差异落在具体机制上:配置驱动、可以挂着跑完不用人管——并发、重试、日期筛选、增量开关全部写在config.yml里,是一次可重复、可续跑的过程,而不是一次性手动动作;还自带进度条、SQLite 去重和浏览器兜底。
幕后机制
链接怎么变成文件夹结构
/collection/、/mix/链接或v.douyin.com短链都能直接贴,core/url_parser.py 负责从各种 URL 格式里提取出 mix_id;接着 core/mix_downloader.py 拉取合集详情和作者昵称,把合集里的作品全部入队逐条下载。每个合集独占<作者>/mix/<合集名>/目录,默认folderstyle: true下每条视频再单独一个文件夹。下完不用改文件名,按作者和合集名已经分好类。
同一条为什么不会下两遍
开启database: true(默认)后,每次下载成功都写入本地 SQLite,处理每条作品前先查is_downloaded(aweme_id)(见 storage/database.py)。同一个合集或作者主页重复跑,已存在的直接跳过,只补新增内容;作者主页的增量归档走同一套逻辑,用increase控制跳过或覆盖。
接口抽风时谁在兜底
默认并发 5,control/rate_limiter.py 是个令牌桶限速器(默认 2 次/秒),控制请求节奏;单条失败由 control/retry_handler.py 按 1s、2s、5s 退避重试,默认 3 次。主页分页被限制时,browser_fallback自动启动真实浏览器滚动加载,验证码弹出来手动过就行,任务不会死在那。
高频坑
Cookie 过期,整批卡在需要登录原因:ttwid、msToken这些 Cookie 有效期有限,换过登录设备后更容易失效。 解法:重跑python -m tools.cookie_fetcher --config config.yml刷新;database: true保证已下载的部分不会重复跑。
并发拉满,反而更慢原因:限速默认 2 次/秒,把thread调到 10,请求还是在限速器后面排队,同时更容易触发风控。 解法:thread设 3 左右,放在网络空闲时段跑。
跑到一半部分视频失败原因:接口偶发抽风,或主页分页被限制。 解法:retry_times: 3(默认值)自动带退避重试;保持browser_fallback.enabled: true,被卡时工具自己切浏览器继续,不用手动补。
进阶玩法
时间筛选 + 增量,只下某段时间的内容,已有的不重复下:
start_time: "2024-01-01" end_time: "2024-06-30" increase: mix: true多合集批量,link列表放多个合集或作者主页,配合database: true,跨链接的重复视频也只会下一次:
link: - https://www.douyin.com/collection/7341234567890123456 - https://www.douyin.com/user/MS4wLjABAAAAxxxxxxxx慢网络降并发,thread: 3加默认限速,比高并发被风控更稳,其余配置不用动。
适合谁,不适合谁
- 适合:需要完整归档某个作者主页或整个合集、要求去重、增量和时间筛选的创作者、研究者和存档党。
- 不适合:只是偶尔存一两条视频的人——App 内「保存到相册」更快;以及完全不想碰终端的用户,它是命令行优先的。
配置写好,Cookie 隔段时间刷一次,剩下交给它跑——那 40 次「保存」,再也不会手点了。
【免费下载链接】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),仅供参考