抖音视频下载器:单条视频到整个主页,无水印批量下载完整指南
【免费下载链接】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
想长期保存某个博主的作品,本地却没有无水印的副本,App 内只能存带水印的版本,网上的下载站又要会员。douyin-downloader 是一款免费开源的抖音视频下载器,装在自己电脑上本地运行,单条视频、图文笔记、主页批量、合集、原声都支持,并优先取无水印源。
项目速览
- Python 命令行工具,MIT 协议开源免费:视频、图文、合集、音乐(原声)、直播录制,以及主页/喜欢/收藏夹批量下载
- 适合不想写代码的人:改一份 YAML 配置,跑一条命令;同后端还有内测中的桌面客户端 Douzy,粘贴链接点按钮即可
- 获取方式:克隆仓库、装依赖,前提只有 Python 3.8+ 和一个扫码写进配置的抖音 Cookie
- 适合:个人归档、学习研究、追更备份;不适合:商用与大规模抓取,接口有平台风控限制
第一次跑通
四个步骤,前两步只需复制命令。
克隆仓库并安装依赖
git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader pip install -r requirements.txt代码落到本地,运行依赖装齐。想要浏览器兜底或自动取 Cookie 的话再补一条:
pip install playwright python -m playwright install chromium这一步产出:可用的运行环境。成功标志:pip 进度条走完,没有红色报错行。
复制一份现成配置
cp config.example.yml config.yml这一步产出:自己的配置文件config.yml。后面所有改动都发生在它身上,原始模板不受影响。
扫码把 Cookie 写进配置
python -m tools.cookie_fetcher --config config.yml终端会弹出浏览器窗口,扫码登录抖音后回到终端按 Enter,程序自动把 Cookie 写入config.yml。成功标志:终端提示写入完成,配置里cookies段不再是YOUR_xxx占位符。
贴一条链接,下载第一条视频
打开config.yml,把任意一条抖音链接(短链也可以)写进link:
link: - https://v.douyin.com/xxx path: ./Downloaded/然后执行:
python run.py -c config.yml成功标志:终端出现进度条并跑完,Downloaded/作者名/下出现无水印 mp4 与元数据文件,整条流程就验证完毕 ✅。也可以不改文件直接追加链接:python run.py -c config.yml -u "https://v.douyin.com/xxx"。
不喜欢命令行的话,同后端还有内测中的桌面客户端 Douzy,粘贴链接点按钮即可下载:
核心参数速查
| 参数/字段 | 作用 | 推荐值 |
|---|---|---|
link | 要下载的链接列表,视频/主页/合集/短链均可 | 按需填写,可多条 |
path | 保存目录 | ./Downloaded/ |
mode | 主页链接时的下载模式 | post,可加like/mix/music |
number.post | 主页作品数量上限 | 0表示不限 |
increase.post | 是否只下新增作品 | 追更场景true |
thread | 并发下载数 | 5 |
retry_times | 单条失败重试次数 | 3 |
database | SQLite 去重与历史开关 | true |
进阶任务
以下任务彼此独立,按你的场景挑着用。
批量下载某博主主页,之后只补新增
适合把一位博主的作品完整存档、以后定期追更的场景。主页链接写进link,同时打开增量:
link: - https://www.douyin.com/user/MS4wLjABAAAAxxx mode: - post number: post: 0 # 0 表示全量 increase: post: true # 再次运行时只取新增 database: true # 增量去重依赖数据库记录效果验证:第二次运行同一配置,已下载的作品被逐条跳过,只有新发布的落到磁盘,文件按“作者 → 类型 → 日期”归档。
合集一次整存
适合长系列被拆成多期、集中在合集页的情况,不必逐条复制链接:
link: - https://www.douyin.com/collection/xxx number: mix: 0 # 合集下作品全收效果验证:合集内全部作品按顺序出现在Downloaded/作者名/mix/下。
按时间范围截取,或只留原声
适合只要某段时间的作品,或只想要背景音乐的场景。时间过滤用两个日期字段:
start_time: "2025-01-01" # 只看该日期之后发布的 end_time: "2025-06-30"如果只要原声,把音乐页链接直接写进link(https://www.douyin.com/music/xxx),优先下原声文件,缺失时回退到该音乐下的首条作品。效果验证:music/目录里出现 mp3。
关掉不需要的附带资源
不想下载的东西直接关开关,省磁盘也快:
music: false # 不下载背景音乐 cover: false # 不下载封面 json: true # 保留元数据 JSON,方便归档检索效果验证:作品文件夹里只剩视频本体和_data.json。
避坑指南
- 现象:主页只能抓到 20 条左右就停止 → 原因:翻页接口被风控限制 → 解法:确认
browser_fallback.enabled: true且headless: false,弹窗里手动完成验证后再关窗口 - 现象:提示 Cookie 失效或抓不到任何作品 → 原因:抖音登录态有时效 → 解法:重跑
python -m tools.cookie_fetcher --config config.yml刷新 - 现象:个别作品反复失败 → 原因:作品已删除或设为私密,属正常现象;若是临时限流 → 解法:
retry_times: 3会自动指数退避重试 - 现象:下载明显变慢或超时 → 原因:网络波动或被限流 → 解法:在配置里给
proxy填代理,例如http://127.0.0.1:7890 - 现象:终端日志刷屏、进度条跳动 → 原因:调试日志没关 → 解法:保持
progress.quiet_logs: true,排查问题时再加-v
延伸与合规
- README.zh-CN.md:完整功能列表、典型场景与常见问题
- config.example.yml:全部配置字段示例,含逐项注释
- core/:下载主逻辑源码目录(API 客户端、各类型下载器)
- auth/:Cookie 与登录态管理源码
本工具仅用于个人学习、备份与研究,请尊重创作者版权,不要二次传播或商用。现在就可以把你第一条想保存的链接写进config.yml,跑完python run.py -c config.yml验证效果。
【免费下载链接】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),仅供参考