ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

三步跑通抖音批量下载:douyin-downloader 让主页作品一次下完

三步跑通抖音批量下载:douyin-downloader 让主页作品一次下完

三步跑通抖音批量下载: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是一个 Python 写的抖音批量下载工具:无水印保存视频、图集、合集与音乐(原声),自带进度显示、失败重试、SQLite 去重和浏览器兜底。你只需贴一个主页链接,作品列表就能整个搬进本地文件夹。

三步跑通首次下载

第一步:装环境

工具只依赖 Python 3.9+(Windows / macOS / Linux 均可)加一个 Chromium,全部走 pip:

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

建议先用虚拟环境隔离依赖。装完 Chromium 是为了 Cookie 登录和浏览器兜底功能,不是可选项。

第二步:登录拿到 Cookie

把示例配置复制成本地配置,再用内置的登录工具完成一次扫码:

cp config.example.yml config.yml python -m tools.cookie_fetcher --config config.yml

浏览器弹出后按正常方式登录,回终端按 Enter,Cookie 就写进配置文件了。Windows PowerShell 下把复制命令换成Copy-Item config.example.yml config.yml即可。

第三步:跑通第一条命令

编辑config.yml,把link换成目标博主主页地址,然后执行:

python run.py -c config.yml

几个常用参数:

参数用途
-c, --config指定配置文件,默认config.yml
-u, --url追加链接(不替换配置里的,可重复使用)
-p, --path覆盖保存目录
-t, --thread覆盖并发线程数
-v, --verbose打开详细日志

进度条、每条的耗时、最终的成功/失败/跳过统计,都在终端实时显示;跑完还有总体汇总。

同一套下载后端也有 Douzy 桌面版(见 README.zh-CN.md),支持抖音、TikTok、YouTube、Telegram、X,日常点击式下载可以优先考虑它;本文聚焦命令行版。

功能拆解

贴短链也行:链接类型怎么识别

麻烦:抖音分享出来的链接五花八门——短链、主页、合集、直播,手工分类容易出错。原理:URLParser把输入自动归为 7 类:单条视频、图集、博主主页、合集、音乐、直播、直播回放(见 core/url_parser.py);v.douyin.com这类短链会先还原成完整 URL 再匹配 ID。用法:把 APP 里复制的原始短链直接丢进link列表,不需要任何前处理。

下过就不重下:增量去重靠 SQLite

麻烦:重复跑同一个主页,几百个视频又下了一遍。原理:默认开启database: true,下载历史写进dy_downloader.db(默认路径);increase控制各模式行为——post: true跳过已下载作品,改成false则强制重下并原子覆盖当前筛选范围内的文件,无需手动清库。用法:默认配置下直接反复运行即可;number.post控制下载条数,0表示不限。

快不快和稳不稳分开调:并发与限流

麻烦:线程开多了容易触发风控,开少了又慢。原理:队列里每个任务要过一层速率限制器,请求默认 2 次/秒,下载失败按retry_times自动重试(见 control/)。用法:-t 3压低线程、rate_limit放宽到 5 左右,两者一起调比单拉线程数更稳。

只下某段时间的作品:日期筛选

start_time/end_time按YYYY-MM-DD圈定范围,结束日当天包含在内。按时间段收集素材时,这一项配合number上限很实用。

调优进阶:参数怎么设更稳

完整配置见 config.example.yml,以下是最常动的一档:

参数作用建议值
thread并发下载线程数默认5;网络一般先降到 3
retry_times单任务失败重试次数默认3,保持即可
rate_limit每秒最大请求数默认2,频繁风控就再压到 1
video_quality视频画质默认highest(最高转码档);original尝试原片、失败自动回退
number.post主页作品下载上限0不限;首次建议设小值试跑
start_time/end_time日期范围筛选按素材时间窗填写,含结束日当天
path保存目录默认./Downloaded/
redownload_missing_files磁盘文件缺失时是否补下默认true,保持即可
proxy出站代理默认空;需要时填http://host:port

避坑排错:高频问题逐个说清

现象常见原因处理方式
跑着跑着报登录失效Cookie 过期重跑python -m tools.cookie_fetcher --config config.yml重新登录
单条视频 / 合集链接提示被风控抖音接口风控,与 Cookie 无关,反复重试无效主页作品可保留browser_fallback.enabled: true走浏览器兜底并在弹窗中手动完成验证;仍不行就换 Douzy 桌面版(详见 README.zh-CN.md 的"命令行版现状")
提示文件缺失上次下载未完成或文件被移动redownload_missing_files默认true会自动补下;设false则依赖数据库记录跳过
想看下载细节控制台默认静默日志(progress.quiet_logs: true)加-v看 INFO 级日志,或--show-warnings看警告

写在最后

适合三类人:要整页搬走博主作品的创作者、按时间段收集素材的讲师、想给自己建本地视频档案的普通用户——一次配置,重复运行只补增量。先拿一个账号小批量试跑,确认目录结构和画质符合预期,再放开number上限。想继续深挖配置细节,直接翻 config.example.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),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进