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 记录下载历史,重复跑也不会把旧视频再存一遍。Windows、macOS、Linux 通用,命令行直接跑。
准备工作:三组命令装好它
环境只需要 Python 3.9+。把克隆、依赖、浏览器内核各合成一条命令跑完就行。
- 拿到代码并进入目录(克隆后你才能在本地运行它):
git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader && cd douyin-downloader- 装好全部依赖,包括抓取 Cookie 用的 Playwright 和 Chromium 内核(浏览器兜底登录依赖它):
python -m pip install -r requirements.txt && python -m pip install playwright && python -m playwright install chromium- 复制一份配置文件,后面所有调整都在
config.yml里改:
cp config.example.yml config.ymlWindows PowerShell 里没有cp,用Copy-Item config.example.yml config.yml代替。
登录与首次运行怎么验证
工具靠你的浏览器登录态工作,先用内置工具把 Cookie 拿下来:
python -m tools.cookie_fetcher --config config.yml跑完会弹出一个 Chromium 窗口,你在里面登录抖音,回到终端按 Enter,Cookie 就存进config/cookies.json了。
接下来做一次最小化验证。打开config.yml,把link换成目标博主主页链接,并确认这两项:
mode: [post] number: post: 1 # 先只下 1 条,验证通了再改大然后运行:
python run.py -c config.yml跑完你应该看到:./Downloaded/下多了一个以作者昵称命名的目录,里面有按{date}_{title}_{id}命名的.mp4(或图集文件);终端里滚动过解析、下载的进度,最后打印本轮成功/失败统计;同目录还多出一份download_manifest.jsonl清单。看到这三样,就说明环境全通了,把number.post改成0就代表不限数量、整主页都下。
按你的目标来用
- 整包保存某个主页:
mode: [post]+number.post: 0跑python run.py -c config.yml,主页作品从上到下全部落盘,文件名自带日期前缀,天然按时间排好。 - 只要某个时间段的作品:在
config.yml里写start_time: "2025-01-01"和end_time: "2025-06-30"(格式YYYY-MM-DD),区间外的作品会被过滤,结束日期当天算在内,适合做阶段性归档。 - 一次跑多个主页:
-u参数可以重复传,python run.py -u "主页链接A" -u "主页链接B",它们会追加在配置里的链接之后而不是替换,各作者各自建目录,跑完终端汇总成功和失败数量。 - 重复跑不白下:
increase.post保持true(默认),第二次跑同一链接会基于dy_downloader.db里的记录直接跳过已下载作品;redownload_missing_files: true还会把文件丢了、下了一半的补回来。想整批重下时把它设成false,不用清数据库。 - 按关键词导出:
python run.py --search "关键词" --search-max 50把搜索结果存成 JSONL 文件;python run.py --hot-board 30则导出热搜榜。 - 可选加餐:
comments.enabled打开后每个作品多生成一份*_comments.json;notifications.enabled接上 bark/telegram/webhook 后下载完成会推送提醒;live段支持直播间录制(实验功能)。这些默认全关。
💡 一个前提要提前说:平台风控会随时间收紧,部分接口可能直接拒绝。遇到主页拿不到全量时,保持browser_fallback.enabled: true和headless: false,让工具自动开浏览器滚动补抓,你在浏览器里手动过一下验证即可。
关键参数速查
影响体验最大的三个旋钮:并发-t、重试retry_times、画质video_quality。按你的网络对号入座:
| 参数 | 好网络 | 中网络 | 差网络 |
|---|---|---|---|
并发-t | 8~10 | 5(默认) | 2~3 |
重试retry_times | 2 | 3(默认) | 5 |
video_quality | original探测原片 | highest最高转码档 | 1080p或highest |
默认是thread: 5、retry_times: 3、video_quality: highest。并发可以临时写在命令行(如python run.py -c config.yml -t 2),重试和画质在config.yml里改。注意并发别盲目拉满:抖音接口有风控,请求太快更容易触发验证,慢一点反而下得全。
出了问题先查这里
- 现象:报登录失效 / 提示需要登录→ 原因:Cookie 过期 → 修复:重新跑
python -m tools.cookie_fetcher --config config.yml,浏览器里登录一遍。 - 现象:主页只拿到零星几条作品→ 原因:接口被风控限制 → 修复:确认
browser_fallback.enabled: true、headless: false,在自动打开的浏览器里手动完成验证,让浏览器兜底补抓。 - 现象:下载中途频繁失败→ 原因:并发对当前网络偏高 → 修复:降到
python run.py -c config.yml -t 2,并把retry_times调到 5。 - 现象:重跑又把旧作品下了一遍→ 原因:
increase.post被设成了false→ 修复:改回true,工具会基于dy_downloader.db自动跳过已下载内容。 - 现象:目录命名看着乱→ 原因:
filename_template用了不合意的模板 → 修复:在config.yml里改filename_template,支持{date}、{title}、{author}、{id}等变量,务必保留{id},否则重名作品会互相覆盖。
下一步就去跑
- 完整配置模板(每个字段都有中文注释):config.example.yml
- 中文使用说明:README.zh-CN.md
- 所有命令行参数:
python run.py --help随时查
把常看博主的主页链接攒进config.yml的link列表里,之后想存什么,敲一条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),仅供参考