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
想把某个博主的几百条作品、或一首热门原声 BGM 完整存到本地?抖音官方不提供导出入口,手动保存又会带上水印。douyin-downloader 是一个开源的抖音批量下载工具,支持视频、图文、合集、音乐(原声)去水印下载,并内置进度展示、失败重试、SQLite 去重和浏览器兜底,适合个人学习、素材整理与数据研究场景。
提示:本项目采用 MIT 协议开源,仅建议用于个人数据管理与技术研究,请勿用于侵犯他人版权或隐私的场景。
跑通一个单条链接之后,你会更关心它能覆盖多少类型、以及批量任务怎么配得更省时间。
五分钟跑通第一次下载
从克隆到下载完成,只需要四步,全程命令行操作:
第一步,克隆仓库并安装依赖
git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader pip install -r requirements.txt第二步,准备配置文件
仓库里提供了完整的示例配置,直接复制一份即可:
cp config.example.yml config.yml第三步,获取 Cookie(推荐自动方式)
Cookie 是访问抖音接口的凭证,工具自带浏览器自动获取脚本:
python -m tools.cookie_fetcher --config config.yml运行后会弹出浏览器,登录抖音后回到终端按Enter,Cookie 会自动写回配置文件,后续无需手动复制粘贴。
第四步,开始下载
python run.py -c config.ymlconfig.yml里最小可用的配置只有两行——链接和保存目录:
link: - https://www.douyin.com/video/7341234567890123456 path: ./Downloaded/执行后终端会显示 Rich 进度条,下载完成后在Downloaded/目录下即可看到无水印原片、封面、音乐文件和元数据 JSON。
另外两条可选路径:不想装 Python 环境的可以直接用仓库附带的 Dockerfile 构建镜像;想看懂整体设计的,可以先读 PROJECT_SUMMARY.md。
单条跑通只是开始,它真正的主场是"整页主页、整个收藏夹"级别的批量任务。
从单条视频到整个收藏夹:它能覆盖的下载类型
下面这张表基本涵盖了它支持的全部链接类型,把链接贴进link列表即可,链接类型会自动识别:
| 下载对象 | 链接形式 | 说明 |
|---|---|---|
| 单个视频 | /video/{aweme_id} | 去水印,自动选最高码率 |
| 图文 / 图集 | /note/、/gallery/ | 逐张下载 |
| 合集 | /collection/、/mix/ | 整合集批量下载 |
| 单个音乐 | /music/{music_id} | 优先原声文件,缺失时回退到该音乐下首条作品 |
| 分享短链 | https://v.douyin.com/... | 自动解析后下载 |
| 作者主页 | /user/{sec_uid} | 配合mode批量下载 |
| 当前账号收藏夹 | /user/self?showTab=favorite_collection | 下载自己收藏的视频 / 收藏合集 |
| 直播间 | live.douyin.com/{room_id} | FLV/HLS 录制,下播自动保留已录数据 |
作者主页批量下载时,用mode指定要抓哪部分内容:
link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx mode: - post # 发布作品 - like # 点赞作品 - mix # 合集 - music # 使用过的音乐同时勾选多个模式时,同一个作品跨模式自动去重,不会重复下载。
除了命令行,同一套后端还推出了桌面版Douzy(内测中),为抖音、TikTok、YouTube 提供独立工作台,粘贴链接即可下载,还能同步关注列表、收藏夹并可视化跟踪任务:
类型齐全只是基础,决定它能不能长期稳定用的,是底层那几个"不容易感知、但关键时刻救场"的设计。
它凭什么比一般脚本稳:四个内置保障
1. 双重去重,断点续下不费心
程序通过SQLite 数据库 + 本地文件双重检查判断作品是否已下载,并额外维护一份追加式清单download_manifest.jsonl记录每个作品的日期、标签、文件路径。中断后重跑,已下载的会自动跳过。相关逻辑在 storage/ 目录下。
2. 限速 + 指数退避重试
默认 2 请求/秒的速率限制,失败按 1s / 2s / 5s 指数退避重试,并发数(默认 5)可通过thread调整。并发队列、限速器、重试器都集中在 control/ 模块,互不干扰。
3. 无水印优先 + 自动挑最高清
解析时自动选择无水印视频源,并基于接口返回的码率数组挑选最高码率的流,实况图同样生效——你拿到的就是平台能给的最好画质。
4. 浏览器兜底,风控时有退路
当 API 翻页被风控拦截时,可自动启动 Playwright 浏览器抓取,并支持人工过验证码,避免"只能抓到 20 条"的尴尬。此外每个文件下载后会做 Content-Length 完整性校验,不完整文件自动清理重下。
整个项目按 core/(下载引擎)、auth/(Cookie 与 token)、cli/(入口与进度展示)等模块划分,并配有完整的测试套件 tests/,源码结构清晰,方便按需修改。
基础跑稳之后,下面几个进阶开关能让批量任务省时不少。
进阶配置:让批量任务省时的 5 个开关
增量下载:只抓新作品
每周同步关注博主时,开启增量开关,只下载上次之后新发布的作品(依赖数据库记录):
increase: post: true database: true时间范围筛选
只保留某个时间段内的作品,避免把几年前的内容全部拉下来:
start_time: "2025-01-01" end_time: "2025-12-31"数量上限与目录结构
number.post: 50限制只抓最新 50 条(0 为不限);folderstyle: true时每个作品单独建目录,视频、封面、音乐、JSON 元数据放在一起,方便按作者和日期检索。
评论采集与完成通知
comments: enabled: true max_comments: 500 notifications: enabled: true providers: - type: bark url: https://api.day.app/YOUR_DEVICE_KEY前者会为每个作品额外生成评论 JSON,后者在批量任务结束时推送到手机(Bark / Telegram / Webhook 均可),长时间任务不用守着终端。
REST API 服务模式
需要集成到其他系统时,一条命令把下载器变成服务:
pip install fastapi uvicorn python run.py --serve --serve-port 8000提交POST /api/v1/download返回 job_id,再轮询状态即可,详见 server/ 下的实现。
功能多了,坑也多。下面四点是最容易翻车的地方,先看完再批量跑更稳妥。
避坑指南:新手最常踩的 4 个坑
1. 只抓到 20 条作品?
这是翻页风控的典型现象。确认配置里:
browser_fallback: enabled: true headless: false并且浏览器弹窗出现后,手动完成验证码再关闭,不要立刻关掉窗口。
2. Cookie 失效?
重新跑一遍自动获取脚本即可,不需要手动从浏览器里抠:
python -m tools.cookie_fetcher --config config.yml3. 想强制重新下载某批作品?
去重是"数据库 + 本地文件"双重判断,所以两边都要清理:删本地目录 + 删数据库记录(或反过来,只删文件保留记录也会触发重新下载)。只删一边不会生效,这是新手最常问的问题。
4. 收藏夹模式和直播录制的两个限制
collect/collectmix只能单独使用,不能与post/like/mix/music混用,且仅对当前 Cookie 对应的登录账号生效;- 直播录制属实验性功能,FLV 可直接播放,HLS 源只保存 playlist 文件,需要 ffmpeg 后处理。
更多细节可以看仓库的 README.zh-CN.md,其中还有重新下载的具体 SQL 示例和常见问题清单。
到这里,工具、配置和坑位都已就位,只差你贴进第一条链接。
现在就下载你的第一批素材
回顾一下最短路径:克隆 →pip install -r requirements.txt→ 复制 config.example.yml → 跑 Cookie 脚本 →python run.py -c config.yml,五分钟之内你就能拿到第一份无水印文件。
后续想做什么,直接往link列表里加链接:
- 短视频创作者:批量存热门 BGM 和参考视频,
mode: [music]直接拿原声 - 自媒体运营:开启
increase增量同步关注博主,配通知推送,每周自动更新素材库 - 内容研究者:用
--hot-board 30和--search "关键词"导出热搜与搜索结果 JSONL,配合评论采集做趋势分析
下载的音乐和视频请仅用于个人学习与创作,商用前记得确认授权。
【免费下载链接】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),仅供参考