10 分钟装好抖音批量下载工具:无水印视频、图集、合集、音乐全流程指南
【免费下载链接】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 跑同一批:把作者主页链接填进配置,回车,剩下的解析、下载、改名、归档全是它干的。这篇文章记录我把环境装通、跑完第一批作者主页下载的全部步骤,新手照做一遍大概 10 分钟。
一条命令装下多少内容:douyin-downloader 能力清单
先看这张表,它决定了后面配置里能填什么:
| 内容类型 | 支持的链接形式 | 说明 |
|---|---|---|
| 单个视频 / 图集 | /video/{id}、/note/{id} | 自动挑最高码率的无水印源 |
| 合集 / 音乐 | /mix/{id}、/music/{id} | 音乐优先直下原声音频 |
| 作者主页批量 | /user/{sec_uid} | 作品 / 点赞 / 合集 / 音乐四种模式 |
| 自己的收藏夹 | /user/self?showTab=favorite_collection | 需要登录 Cookie |
| 直播录制 | live.douyin.com/{房间号} | 实验特性,断流后保留已录部分 |
两个通用行为:v.douyin.com/...这类短链会先解析再下载,不用手动展开;每条作品还能顺带保存封面、背景音乐、作者头像和完整 JSON 元数据,一个作品的基本信息能一次收齐。能力清单与已知边界(比如收藏夹模式只能单独跑)都写在 README.md 里,想深挖可以看 core/ 的下载主流程。
首次启动前要准备的三样东西
环境、链接、配置,缺一不可。
1. 环境:Python 3.8+,macOS、Linux、Windows 都行。
2. 一条抖音链接:单视频或作者主页都可以。
3. 一份配置文件,clone 下来跑两条命令就够:
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,还要装 playwright 并下载 chromium 内核,这两步首次跑通单视频可以不做。
Cookie 自动获取:认证信息全部保存在本地 config.yml,不会上传任何服务器。推荐用内置工具,一条命令:
python -m tools.cookie_fetcher --config config.yml它会自动打开浏览器让你登录抖音,登录后回终端按回车,Cookie 就写进配置了。实现逻辑在 tools/cookie_fetcher.py,原理不复杂,但省掉手动抓包最麻烦。
最小可运行配置:第一次跑通批量下载
最小配置其实很短,把它写进 config.yml:
link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx # 目标作者主页 path: ./Downloaded/ mode: - post # post 作品 / like 点赞 / mix 合集 / music 音乐 thread: 5 number: post: 0 # 0 = 全部,也可以填数字限制条数运行python run.py,屏幕上会出现实时进度:第几项、每个子任务走到哪一步,一眼能看懂,类似下面这种任务状态视图:
想要"只下新增",打开增量开关:
increase: post: true程序会先看磁盘上主文件是否存在且非空,有就跳过、缺了才补。这样把任务挂进定时计划每周跑一次,内容就能持续追新,不重复占空间。临时加一条单视频链接也不用改文件,直接在命令行追加即可,-u传链接、-t传并发、-p传下载目录。
网络差、会重复、接口被限:三层兜底怎么防翻车
批量下载最怕的不是慢,而是"看似成功实则翻车"。这个项目在三处设了防:
- 网络中断导致文件残缺:失败会按 1s、2s、5s 指数退避自动重试,下载完还会用 Content-Length 校验实际文件大小,不完整的文件直接清理重下,不会留下打不开的坏文件。
- 同一个作品下两遍:SQLite 数据库相当于一份仓库台账,记录每次下载的作品 ID 与任务快照,重复提交直接跳过。注意增量判断以磁盘文件为准,数据库只是历史记录,二者分工不重叠。
- 接口分页被平台限制:API 拉不动时自动切换到浏览器模拟翻页,必要时弹窗让你手动过验证码,等于多了一条备用路线。
这三层平时看不见,但决定了你"跑一晚上"之后,拿到的是整齐的内容库,还是一堆报错和坏文件。实现分别落在 core/retry_executor.py、storage/database.py 和 core/discovery.py。
下载完的归档长什么样:目录结构、清单与扩展玩法
默认每个作品单独建一个文件夹,按「作者 / 内容类型 / 日期_标题_ID」三层组织:
Downloaded/ └── 创作者昵称/ └── post/ └── 2024-06-15_舞蹈教学_7412345678901234567/ ├── ..._7412345678901234567.mp4 # 无水印视频 ├── ..._cover.jpg # 封面 ├── ..._music.mp3 # 原声音乐 └── ..._data.json # 完整元数据文件名默认「日期_标题_ID」组合,模板里提供{id}、{title}、{author}、{date}等变量随便拼。除了文件夹,下载目录里还会有一份 JSONL 清单(每行一条记录,含标题、标签、文件路径),SQLite 里则是作品明细和任务统计,后续按作者或标题筛东西都查库就行。
还能叠加的玩法:启用transcript把视频转成文字稿;开comments抓取评论(含二级回复)存成 JSON;配置notifications在任务结束后推送 Bark / Telegram / Webhook,跑批不用盯终端;甚至用python run.py --serve起一个 REST API 服务,把下载能力接进自己的自动化流程。这些开关互不干扰,按需打开即可。
三步闭环:现在就能跑起来
- 装好 Python 3.8+ 与
requirements.txt依赖; - 用 cookie_fetcher 拿到 Cookie 写进 config.yml;
- 填一条链接,运行
python run.py。
建议先拿一条单视频链接试跑,确认流程通了再上作者主页批量。本工具仅限个人学习、研究与备份用途,请尊重创作者的劳动成果,勿用于商业目的。
【免费下载链接】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),仅供参考