抖音批量下载实战: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
douyin-downloader 是一个命令行抖音批量下载工具,支持视频、图文、合集、音乐和作者主页的去水印抓取,默认带进度条、失败重试、SQLite 去重和浏览器兜底。它适合想批量保存某位创作者全部作品、或长期追更的人。你只需给一条链接和一份 YAML 配置,剩下的并发下载、按作者归档、增量补新都替你完成,省掉逐条手动保存的重复劳动。
🔹 它能帮你做什么
先看一张能力表,了解这份工具能覆盖哪些下载任务,再决定用它解决什么问题:
| 能力 | 你拿到的结果 |
|---|---|
| 单个视频 / 图文 / 合集 | 一条链接直接下,自动挑无水印、最高码率的源 |
| 作者主页批量 | post/like/mix/music四种模式并发抓取,跨模式自动去重 |
| 短链解析 | v.douyin.com等短链自动还原成真实作品地址 |
| 直播录制 | 直播间链接录成 FLV,主播下播或中断时已录部分保留 |
| 附加资源 | 封面、原声音乐、头像、JSON 元数据按需一起落盘 |
| 评论采集 | 按作品抓评论(可含二级回复),存成*_comments.json |
| 热搜 / 关键词搜索 | --hot-board/--search结果导出 JSONL,便于二次处理 |
| REST API 模式 | --serve起一个接口服务,把下载任务丢给别的系统调 |
| 完成推送 | 下载结束推 Bark / Telegram / Webhook,不用盯终端 |
它底层是模块化设计:下载走策略模式,各模式可插拔替换,核心逻辑集中在 核心下载模块,想扩展自定义抓取行为时改这里即可,不必碰主流程。
🔹 装好并跑通第一次下载
把安装、拿 Cookie、跑第一次下载合成一条流水线,按 1→2→3 走:
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 chromium跑完不报错即可。前两条是基础依赖,后两条装了 Playwright,后面自动抓 Cookie 和浏览器兜底都靠它。
2)复制配置并拿 Cookie
cp config.example.yml config.yml python -m tools.cookie_fetcher --config config.ymlCookie 提取脚本 会弹出抖音登录页,你扫码登录后回到终端按回车,Cookie 就自动写进 示例配置 的cookies段,不用手抄。
3)填一条链接,跑第一次下载
把config.yml里的link换成任意一条作品链接:
link: - https://www.douyin.com/video/7604129988555574538 path: ./Downloaded/ thread: 5 retry_times: 3python run.py -c config.yml把视频链接贴进输入框,工具识别后点「下载」即开始,桌面端与命令行共用同一套后端
终端会出现 Rich 进度条,下载完的视频落在Downloaded/作者/post/日期_标题_id/里,默认只存视频本体,封面、音乐等按下方配置开关决定。
🔹 几个真正影响体验的配置
配置项很多,但日常真正调来调去的就是下面这几个,其余保持默认即可:
| 配置 | 建议值 | 作用 |
|---|---|---|
thread | 3~8 | 并发线程数。家庭宽带从 3 起步,高速环境给到 8,拉太高容易被限流 |
retry_times | 2~3 | 单条失败自动重试次数,配合指数退避(1s/2s/5s)扛住抖动 |
increase.post | true | 增量开关。磁盘上已有主文件的视频跳过,只补新作品 |
start_time/end_time | YYYY-MM-DD | 时间过滤,只下某段区间内发布的作品 |
folderstyle | true | 每个作品建独立子目录,避免文件名撞车 |
browser_fallback.enabled | true | 分页被风控时自动开浏览器兜底,配合headless: false手动过验证 |
database | true | 开 SQLite 记录下载历史,配合 SQLite 去重模块 做去重 |
增量和去重要理解它们的分工:increase看的是磁盘上文件在不在,database记的是历史元数据。想强制重下,就把对应模式的increase设成false,它会在当前筛选范围内重下并原子覆盖。
🔹 真实使用场景
场景一:一次性搬空某创作者的作品
需求——把一位博主历史发布的所有作品存下来。
link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx mode: - post number: post: 0 # 0 = 不限量,全量抓取 thread: 8跑完你会得到Downloaded/博主昵称/post/下按日期归档的全部视频,number里同一作品跨模式不会重复下第二遍。
场景二:长期追更,只补新的
需求——每周跑一次,只要新增作品,别重下旧的。
在场景一基础上加两行:
increase: post: true关注列表里能筛出有新作品的创作者,标注新增条数后直接触发下载,增量逻辑与命令行一致
再跑一次python run.py -c config.yml,已经躺在本地的视频被跳过,只有新发的会下载。
场景三:只下某时间段的作品
需求——整理 2024 全年精选,不要更早的。
start_time: "2024-01-01" end_time: "2024-12-31"过滤只在link对应的主页抓取范围里生效,跑完你手里就是 2024 年内发布的那批作品,适合做年度素材库。
任务中心汇总每条任务的成功/失败条数,失败项可直接重试,也能一键打开输出目录
🔹 遇到 XX 怎么办
Cookie 过期、报认证失败→ 重跑
python -m tools.cookie_fetcher --config config.yml重新扫码即可。Cookie 有效期大约 1~2 周,过期属正常。只拿到 20 条左右就停→ 这是分页触发了风控。确认
browser_fallback.enabled: true且headless: false,浏览器弹出时手动把验证走完,别急着关窗口。明明下过却想强制重下→ 删掉本地对应目录(目录名含
aweme_id),或把该模式increase设成false。注意只删数据库不删文件是不会触发的,程序靠扫本地文件名识别已下内容。
🔹 收尾提醒
- Cookie 大约 1~2 周失效,过期就重跑 Cookie 脚本,别硬扛认证错误。
- 线程数给 3~8 之间,家庭宽带 3 起步,别贪多触发限流;网络不稳就把
retry_times提到 3。 - 长期追更把
increase和database一起开着,既增量补新又不重复占空间。
本项目仅用于技术研究、学习与个人数据管理,请遵守相关法律法规与平台规则,尊重内容创作者的版权。
【免费下载链接】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),仅供参考