三步跑通抖音批量下载: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),仅供参考