news 2026/9/16 12:04:51

3 分钟搞定抖音去水印批量下载:开源工具 douyin-downloader 完整使用指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
3 分钟搞定抖音去水印批量下载:开源工具 douyin-downloader 完整使用指南

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

想把某个博主的几百条作品、或一首热门原声 BGM 完整存到本地?抖音官方不提供导出入口,手动保存又会带上水印。douyin-downloader 是一个开源的抖音批量下载工具,支持视频、图文、合集、音乐(原声)去水印下载,并内置进度展示、失败重试、SQLite 去重和浏览器兜底,适合个人学习、素材整理与数据研究场景。

提示:本项目采用 MIT 协议开源,仅建议用于个人数据管理与技术研究,请勿用于侵犯他人版权或隐私的场景。

跑通一个单条链接之后,你会更关心它能覆盖多少类型、以及批量任务怎么配得更省时间。

五分钟跑通第一次下载

从克隆到下载完成,只需要四步,全程命令行操作:

第一步,克隆仓库并安装依赖

git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader pip install -r requirements.txt

第二步,准备配置文件

仓库里提供了完整的示例配置,直接复制一份即可:

cp config.example.yml config.yml

第三步,获取 Cookie(推荐自动方式)

Cookie 是访问抖音接口的凭证,工具自带浏览器自动获取脚本:

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

运行后会弹出浏览器,登录抖音后回到终端按Enter,Cookie 会自动写回配置文件,后续无需手动复制粘贴。

第四步,开始下载

python run.py -c config.yml

config.yml里最小可用的配置只有两行——链接和保存目录:

link: - https://www.douyin.com/video/7341234567890123456 path: ./Downloaded/

执行后终端会显示 Rich 进度条,下载完成后在Downloaded/目录下即可看到无水印原片、封面、音乐文件和元数据 JSON。

另外两条可选路径:不想装 Python 环境的可以直接用仓库附带的 Dockerfile 构建镜像;想看懂整体设计的,可以先读 PROJECT_SUMMARY.md。

单条跑通只是开始,它真正的主场是"整页主页、整个收藏夹"级别的批量任务。

从单条视频到整个收藏夹:它能覆盖的下载类型

下面这张表基本涵盖了它支持的全部链接类型,把链接贴进link列表即可,链接类型会自动识别:

下载对象链接形式说明
单个视频/video/{aweme_id}去水印,自动选最高码率
图文 / 图集/note//gallery/逐张下载
合集/collection//mix/整合集批量下载
单个音乐/music/{music_id}优先原声文件,缺失时回退到该音乐下首条作品
分享短链https://v.douyin.com/...自动解析后下载
作者主页/user/{sec_uid}配合mode批量下载
当前账号收藏夹/user/self?showTab=favorite_collection下载自己收藏的视频 / 收藏合集
直播间live.douyin.com/{room_id}FLV/HLS 录制,下播自动保留已录数据

作者主页批量下载时,用mode指定要抓哪部分内容:

link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx mode: - post # 发布作品 - like # 点赞作品 - mix # 合集 - music # 使用过的音乐

同时勾选多个模式时,同一个作品跨模式自动去重,不会重复下载。

除了命令行,同一套后端还推出了桌面版Douzy(内测中),为抖音、TikTok、YouTube 提供独立工作台,粘贴链接即可下载,还能同步关注列表、收藏夹并可视化跟踪任务:

类型齐全只是基础,决定它能不能长期稳定用的,是底层那几个"不容易感知、但关键时刻救场"的设计。

它凭什么比一般脚本稳:四个内置保障

1. 双重去重,断点续下不费心

程序通过SQLite 数据库 + 本地文件双重检查判断作品是否已下载,并额外维护一份追加式清单download_manifest.jsonl记录每个作品的日期、标签、文件路径。中断后重跑,已下载的会自动跳过。相关逻辑在 storage/ 目录下。

2. 限速 + 指数退避重试

默认 2 请求/秒的速率限制,失败按 1s / 2s / 5s 指数退避重试,并发数(默认 5)可通过thread调整。并发队列、限速器、重试器都集中在 control/ 模块,互不干扰。

3. 无水印优先 + 自动挑最高清

解析时自动选择无水印视频源,并基于接口返回的码率数组挑选最高码率的流,实况图同样生效——你拿到的就是平台能给的最好画质。

4. 浏览器兜底,风控时有退路

当 API 翻页被风控拦截时,可自动启动 Playwright 浏览器抓取,并支持人工过验证码,避免"只能抓到 20 条"的尴尬。此外每个文件下载后会做 Content-Length 完整性校验,不完整文件自动清理重下。

整个项目按 core/(下载引擎)、auth/(Cookie 与 token)、cli/(入口与进度展示)等模块划分,并配有完整的测试套件 tests/,源码结构清晰,方便按需修改。

基础跑稳之后,下面几个进阶开关能让批量任务省时不少。

进阶配置:让批量任务省时的 5 个开关

增量下载:只抓新作品

每周同步关注博主时,开启增量开关,只下载上次之后新发布的作品(依赖数据库记录):

increase: post: true database: true

时间范围筛选

只保留某个时间段内的作品,避免把几年前的内容全部拉下来:

start_time: "2025-01-01" end_time: "2025-12-31"

数量上限与目录结构

number.post: 50限制只抓最新 50 条(0 为不限);folderstyle: true时每个作品单独建目录,视频、封面、音乐、JSON 元数据放在一起,方便按作者和日期检索。

评论采集与完成通知

comments: enabled: true max_comments: 500 notifications: enabled: true providers: - type: bark url: https://api.day.app/YOUR_DEVICE_KEY

前者会为每个作品额外生成评论 JSON,后者在批量任务结束时推送到手机(Bark / Telegram / Webhook 均可),长时间任务不用守着终端。

REST API 服务模式

需要集成到其他系统时,一条命令把下载器变成服务:

pip install fastapi uvicorn python run.py --serve --serve-port 8000

提交POST /api/v1/download返回 job_id,再轮询状态即可,详见 server/ 下的实现。

功能多了,坑也多。下面四点是最容易翻车的地方,先看完再批量跑更稳妥。

避坑指南:新手最常踩的 4 个坑

1. 只抓到 20 条作品?

这是翻页风控的典型现象。确认配置里:

browser_fallback: enabled: true headless: false

并且浏览器弹窗出现后,手动完成验证码再关闭,不要立刻关掉窗口。

2. Cookie 失效?

重新跑一遍自动获取脚本即可,不需要手动从浏览器里抠:

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

3. 想强制重新下载某批作品?

去重是"数据库 + 本地文件"双重判断,所以两边都要清理:删本地目录 + 删数据库记录(或反过来,只删文件保留记录也会触发重新下载)。只删一边不会生效,这是新手最常问的问题。

4. 收藏夹模式和直播录制的两个限制

  • collect/collectmix只能单独使用,不能与post/like/mix/music混用,且仅对当前 Cookie 对应的登录账号生效;
  • 直播录制属实验性功能,FLV 可直接播放,HLS 源只保存 playlist 文件,需要 ffmpeg 后处理。

更多细节可以看仓库的 README.zh-CN.md,其中还有重新下载的具体 SQL 示例和常见问题清单。

到这里,工具、配置和坑位都已就位,只差你贴进第一条链接。

现在就下载你的第一批素材

回顾一下最短路径:克隆 →pip install -r requirements.txt→ 复制 config.example.yml → 跑 Cookie 脚本 →python run.py -c config.yml,五分钟之内你就能拿到第一份无水印文件。

后续想做什么,直接往link列表里加链接:

  • 短视频创作者:批量存热门 BGM 和参考视频,mode: [music]直接拿原声
  • 自媒体运营:开启increase增量同步关注博主,配通知推送,每周自动更新素材库
  • 内容研究者:用--hot-board 30--search "关键词"导出热搜与搜索结果 JSONL,配合评论采集做趋势分析

下载的音乐和视频请仅用于个人学习与创作,商用前记得确认授权。

【免费下载链接】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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/16 12:04:50

考研失利转行上位机开发:C#学习路线、简历面试与避坑指南

考研成绩出来那几天,很多人都在想“完了,我这条路是不是走死了”。但我想跟你说个真实案例,我认识一个25届普通二本的同学,自动化专业,考研报了某双一流,初试差了十几分,调剂也没戏。消沉了大概…

作者头像 李华
网站建设 2026/9/16 12:02:38

优秀拆分的算法设计与二进制应用

1. 问题解析与算法设计1.1 优秀拆分的数学本质优秀拆分的核心要求是将正整数n表示为若干个互不相同的2的正整数次幂之和。从数学角度看,这实际上考察的是二进制表示法的变形应用。我们知道,任何正整数都可以唯一表示为2的幂次和(即二进制表示…

作者头像 李华
网站建设 2026/9/16 12:02:30

从数据标注到模型对齐:AI训练师的职业转型指南

1. 职业转型背景与核心价值在人工智能行业快速发展的当下,数据训练师的角色正在经历显著转变。五年前,我刚开始接触这个领域时,大部分同行的工作内容还停留在基础数据标注层面——给图片打标签、对文本分类、标注语音片段。但随着大模型时代的…

作者头像 李华
网站建设 2026/9/16 12:02:05

SpringBoot乐器论坛系统:音视频与乐谱处理技术实践

## 1. 项目概述与核心价值去年帮本地音乐学院搭建在线乐器交流平台时,我深刻体会到传统论坛系统在乐器垂直领域的适配困境。这个基于SpringBoot的乐器论坛系统,正是针对乐器爱好者、学习者、教师三大群体的深度定制解决方案。与通用论坛相比,…

作者头像 李华