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
想把抖音视频按原始画质存下来吗?douyin-downloader 是一款开源的抖音下载工具,能获取无水印的原始文件,支持单条视频、图集、合集、音乐以及创作者主页批量下载,并自带进度展示、失败自动重试和 SQLite 去重。
从“存一条视频”到“收一个主页”
很多人对下载工具的印象停在“存一条喜欢的视频”,而这个项目从设计目标上就是一个批量的内容采集工具。它不走 App 内分享下载的路子,而是直接请求抖音接口拿到原始视频地址,文件天然无水印,系统还会从码率档位里自动挑最高清的一档。围绕“下载”这件事,它额外包了四层能力:
- 抓取层:单视频、图文(note)、合集、音乐、短链(v.douyin.com)自动展开,直播房间也可录制
- 批量层:按 mode 整页拉取创作者主页,支持 post、like、mix、music 四种模式,另加登录账号的收藏夹
- 可靠层:指数退避重试、默认 2 请求/秒限速、Content-Length 完整性校验,残缺文件自动清理
- 管理层:SQLite 历史记录、基于磁盘的增量跳过、每个作品附带 JSON 元数据
只用它存一两条视频当然可以,但把它当“带去重的批量采集工具”来理解,后面的功能就都串起来了。
三步跑通:克隆、登录、下载
第一步:克隆项目并安装依赖
环境要求 Python 3.8 以上,Windows、macOS、Linux 均可。
git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader pip install -r requirements.txt这一步把代码拉到本地并装好第三方库;如果以后想启用浏览器兜底,再补装 playwright 并下载浏览器内核即可。
第二步:准备配置并自动登录拿 Cookie
抖音内容需要登录态才能访问。工具提供了一个脚本,扫码登录后自动把 Cookie 写回配置,不用手动去浏览器开发者工具里复制:
cp config.example.yml config.yml python -m tools.cookie_fetcher --config config.yml会弹出一个浏览器窗口,用抖音 App 扫码登录后回到终端按回车,msToken、ttwid 等字段就自动填进 config.yml 了。
第三步:跑第一次下载
把要下载的链接填进 config.yml 的 link 字段:
python run.py -c config.yml终端里会出现进度条,文件落到 Downloaded 目录。不想改配置文件也行,命令行直接传链接:python run.py -u "https://v.douyin.com/xxxxx/",短链会自动展开成真实地址。
核心功能拆解
下载类型与链接解析
link 字段几乎接受所有常见抖音地址:视频/video/、图文/note/和/gallery/、合集/collection/与/mix/、音乐/music/。直播间(live.douyin.com)可以录制为 FLV,主播下播或中断时已录的部分会保留,属于实验性功能。这些抓取逻辑都在 核心模块 里,按下载类型拆成了各自的处理类。
主页批量下载:4+2 种模式
链接是主页(/user/)时,mode 决定抓取什么:post 作品、like 喜欢、mix 合集、music 音乐,一次可以勾选多种,系统会跨模式按 aweme_id 去重。number.post: 0表示全量抓取。收藏夹模式 collect 与 collectmix 依赖登录态,只能单独使用,不能和上面四种混写。
可靠性机制
实际用起来最有感的几项:
- 重试:失败后按 1s、2s、5s 间隔退避重试,次数由 retry_times 控制(默认 3)
- 完整性:下载完比对 Content-Length,大小不够就清掉重下,不留残文件
- 限速:默认 2 请求/秒,降低触发风控的概率
- 浏览器兜底:主页翻页被风控截断(常见表现是只拿到 20 条左右)时自动拉起浏览器,可以人工过验证码,建议保持
browser_fallback.headless: false
辅助能力与桌面版
此外还有:按作品采集评论(输出*_comments.json,可含二级回复)、热搜榜与关键词搜索(结果落 JSONL)、完成后推送 Bark/Telegram/Webhook 通知、可选的视频转写(调 OpenAI 转写接口),仓库里也自带 Dockerfile 可以直接容器化部署。项目还基于同一套后端做了个桌面客户端 Douzy(目前内测中):粘贴链接后自动识别类型开始下载,任务中心里能看到每条记录的成功或失败状态,点一下就能打开对应目录。
进阶用法与关键配置
一份能用的最小配置
link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx mode: - post number: post: 50 thread: 5 path: ./Downloaded/含义:抓该创作者主页前 50 条作品,5 线程并发,存到本地 Downloaded 目录。proxy、retry_times、start_time 等字段都在同一个文件里,可参考 默认配置说明。
用命令行参数省掉改配置
python run.py -c config.yml -u "https://v.douyin.com/xxxxx/" -t 8 -p ./Downloaded-u 追加链接(可重复出现),-t 指定并发,-p 指定输出目录。偏研究的用法还有--hot-board 30和--search "关键词",分别输出热搜榜和关键词搜索结果;--serve则把程序跑成 REST API 服务,用 HTTP 提交下载任务(需要另装 fastapi 与 uvicorn)。
增量下载与时间筛选
长期跟踪某个创作者时,把 increase 设为 true,就只拉磁盘上还不存在的新作品;配合时间范围过滤:
start_time: "2025-01-01" end_time: "2025-12-31" increase: post: true这套组合把“隔周增量补一补”变成稳定工作流:第二次运行时已存在的内容直接跳过,不占带宽也不覆盖旧文件。
三个典型使用场景
- 整仓保存创作者作品:主页链接 + mode: post + number 设 0 全量抓取,每个作品自动建一个
日期_标题_aweme_id子目录,mp4、封面、原声、元数据 JSON 放在一起,后期整理几乎零成本。 - 长期增量跟踪:increase.post 开 true 再配时间筛选,定期跑一次只拿新增作品,配合完成通知推送,不用一直盯着终端。
- 内容数据研究:不落地视频文件,用 --hot-board 与 --search 输出 JSONL,再结合各作品的元数据 JSON(点赞、评论数、发布时间等),可以直接做趋势统计。
常见问题
Q:主页抓取总是停在 20 条左右?这是平台对接口翻页的风控。确认browser_fallback.enabled: true、headless: false,等自动打开的浏览器窗口里完成验证再关掉,别提前关。
Q:Cookie 失效下载不了怎么办?重新执行python -m tools.cookie_fetcher --config config.yml,扫码登录后新 Cookie 会自动写回配置文件,无需手改。
Q:重复运行会把已下载的内容再下一遍吗?不会。系统按“数据库记录 + 本地文件”双重判断,increase 为 true 时磁盘上已存在的主要媒体直接跳过;若某条作品想强制重下,需要同时删掉它对应的本地目录和数据库记录。
写在最后
从克隆到跑完第一次下载,完整流程通常不到 5 分钟。douyin-downloader 以 MIT 协议开源,免费用于个人观看、学习与合理用途即可;下载的内容请勿再传播或商用,注意不侵犯原作者的版权与他人隐私。
【免费下载链接】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),仅供参考