如何快速完成抖音主页去水印批量下载:douyin-downloader 完整实操指南
你想把某位科普博主的系列教程存成离线笔记,可逐条右键另存下来的是带水印、乱序的本地文件。douyin-downloader 是一款开源的抖音批量下载工具:主页作品一次抓完,去水印、有进度条、自动重试,还带 SQLite 下载记录,可以放心挂着跑。
价值速览
- 一位 200 多条作品的主页,从手动另存 3 小时以上,压成一条命令、睡一觉的时长;
- 配置全程只有 3 步:克隆、扫码登录、运行,不用改任何代码;
- 文件按"作者名 / post / 发布日期_标题_编号"自动归档,一作品一目录,重名不互相覆盖,另附
download_manifest.jsonl清单可随时回查。
上手路径 🧭
三步跑通第一次全量备份
环境要求 Python 3.9+。先克隆仓库并装依赖,最后一步会下载 Playwright 用的 chromium 浏览器:
git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader
cd douyin-downloader
python -m pip install -r requirements.txt
python -m pip install playwright
python -m playwright install chromium
接着复制示例配置并扫码登录,Cookie 会自动写回配置文件:
cp config.example.yml config.yml
python -m tools.cookie_fetcher --config config.yml
浏览器弹出后完成抖音登录,回到终端按 Enter。Windows PowerShell 用户用 Copy-Item config.example.yml config.yml 代替 cp 即可。
把 config.yml 里的 link 换成目标博主的主页地址,然后运行主入口:
python run.py -c config.yml
预期会看到:启动横幅后依次推进"解析链接 → 创建下载器 → 执行下载"的步骤,每个作品有进度条,结尾打印 === Overall Summary === 的成功 / 失败 / 跳过汇总,并逐条列出被跳过的原因。
注意:单个视频、图文、合集、音乐等链接类型目前被平台风控拦截,主页作品才是最稳的主路径;浏览器兜底能救回部分场景,但不保证成功。
小贴士:-u 只是追加链接、不会覆盖配置里的链接;v.douyin.com 短链会自动解析后再下载。
跑完全量之后,你通常还会想:"旧的不重复下,只补新发的。"
把全量改成增量:改三个字段
config.example.yml 里动几个字段,"一次性备份"就变成"每周增量":
number: {post: 0}
start_time: "2026-09-01"
end_time: "2026-09-30"
video_quality: original
number.post:数量上限,0表示不限;start_time/end_time:日期范围(YYYY-MM-DD),包含结束日期当天;video_quality:original会先探测上传原片,失败自动回退到最高转码档;increase.post默认true,已下载过的作品直接跳过,只补新发的。
小贴士:想强制重下,把 increase.post 改成 false 就行,不需要清空 dy_downloader.db。
不想碰命令行的话,同一项目还有两条更省事的路。
两个备选入口:Douzy 桌面版与 REST API
Douzy 是桌面版(Windows / macOS):贴链接即下,任务中心看进度,作品档案随时回查;选项面板里可以勾选作品、喜欢、合集、音乐,并给每个模式设数量上限。
程序化入口也不缺:装好 pip install fastapi uvicorn 后,运行 python run.py --serve --serve-port 9100 就能起 REST 服务(实现在 server/app.py)。POST /api/v1/download 提交一个 URL 拿到 job_id,GET /api/v1/jobs/{job_id} 查询进度,适合接进自己的自动化流程。
注意:Douzy 的部分批量与高级功能需要激活;CLI 则只支持抖音一家。
那么,这两条入口到底怎么选?
两种入口怎么选 ⚖️
- Python CLI 版:只覆盖抖音;配置文件加命令行驱动,可写脚本、可进定时任务,带日期筛选、增量跳过、重试与下载历史;
- Douzy 桌面版:覆盖抖音、TikTok、YouTube、Telegram、X 五个平台;贴链接即下、进度可视化、本地档案可浏览。
默认推荐:只处理抖音、要进定时任务或脚本,选 CLI;日常随手用、还要下其他平台,选 Douzy。
别人的用法
- 做素材库的运营阿张:先给一位科普博主做一次 200 多条作品的全量备份,之后每周改一下
start_time做增量;他再从download_manifest.jsonl里提取标题和标签,建了一张可检索的素材表,选题撞车和漏存从此消失。 - 备考的研究生小林:
number.post: 20只抓最近 20 条,video_quality: original拿原片,跑完存进笔记本硬盘,课间直接复习。
常见卡壳点 ❓
Cookie 失效了怎么办? 重新跑一次 python -m tools.cookie_fetcher --config config.yml,扫码即可;交互式环境下 CLI 检测到登录态失效还会自动弹浏览器重新登录并继续。
主页只抓到少量作品? 保持 browser_fallback.enabled: true 和 headless: false,在弹出的浏览器里自行完成验证;风控严格时仍可能受限。
下载的文件在哪? 在 path 指向的目录下,按 作者名/post/发布日期_标题_编号/ 组织,同目录还有 download_manifest.jsonl 清单,默认另存 dy_downloader.db 历史记录库。
换下载目录要重配吗? 改配置里的 path 字段,或直接用 -p 参数临时覆盖,两者互不影响。
想看详细日志呢? 运行命令加 -v:python run.py -c config.yml -v。
再往前一步 🔧
- 定时增量:crontab 加一行
15 4 * * * cd /path/to/douyin-downloader && python run.py -c config.yml,每天凌晨 4 点 15 自动补新,增量开关默认就是开的; - 热榜与关键词搜索:
python run.py --hot-board 50或python run.py --search "关键词" --search-max 30,结果都以 JSONL 存进下载目录,适合做选题素材; - 完成通知:在配置的
notifications.providers里写 bark / telegram / webhook,任务跑完自动推送,不用盯着终端; - 直播录制:属于实验功能,HLS 源只保存播放列表、不是可直接播放的视频,先了解再开。
边界与底线
本项目定位是学习与个人数据管理,请尊重创作者版权,不商用、不二次分发。Cookie 与下载文件只留在本地,不上传任何第三方。请遵守平台服务条款。平台接口会不定期变化,部分下载路径可能受影响,受限时可先读 README.zh-CN.md 的限制说明找替代路径。
三条短命令加一次扫码,你就有了一个能挂着跑的抖音离线库。这个工具替你省下的,是时间,而不是素材。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考




