news 2026/9/16 20:54:10

去水印批量下载:douyin-downloader 从配好到跑通的实操笔记

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
去水印批量下载: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 是命令行抖音去水印批量下载工具,视频、图集、合集、音乐原声都能整页拉走,适合内容创作者和竞品分析师。它自动挑无水印源、按作者分目录、用 SQLite 防重复。过去逐条点开抠水印的事,现在一条命令出原片。

为什么不用手动搞了

把旧做法和工具的做法放一起看,差别一下就清楚了:

你原来要做的douyin-downloader 帮你做的
逐条点开、单独下载,再手动抠掉水印自动选无水印源,多条并发一起拉
下过第二遍,重复文件占硬盘SQLite 历史 + 磁盘双查重,跳过已有
下到一半断了就从头再来失败按 1s/2s/5s 指数退避自动重试
文件堆一个文件夹,找不到作者/模式/日期自动建子目录

一句话:省掉的是"点、抠、判重、归档"这几件纯体力活,你只负责给链接。

五分钟跑通:环境、认证到首次下载

📌第 1 步:装环境和依赖

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

要求 Python 3.8+,macOS / Linux / Windows 都行。跑完最后一行没有红字报错,就说明依赖装好了。

📌第 2 步:拿 Cookie(新手最容易卡的一步)

Cookie 是访问抖音接口的登录凭证,没有它分页和去水印都受限。先装浏览器组件(供自动抓取用):

pip install playwright python -m playwright install chromium

自动获取(推荐新手):复制一份配置,再跑抓取脚本:

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

它会弹出一个浏览器窗口,你在里面登录抖音,回到终端按回车,Cookie 就自动写进config.yml了。

手动配置(适合能自己抠 Cookie 的老手):打开config.yml最下面的cookies段,把ttwidodin_ttpassport_csrf_token等字段填上,来源是浏览器登录抖音后从开发者工具复制出来的同名 Cookie。

📌第 3 步:首次下载

配置里link填一条视频或主页地址,然后:

python run.py -c config.yml

执行后你会看到终端滚出并发进度条,Downloaded/下按作者名分好文件夹。如果你更习惯图形界面,项目自带桌面端 Douzy(与命令行共享同一套后端),粘个链接就能一键开始:

完整工作流:把一位博主的 20 条作品存下来

选一个真实场景走一遍——把某位创作者最近的 20 条作品整批存下来。

1. 编辑config.yml,只留这几行就够:

link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx mode: - post # 只下作者自己发的作品 number: post: 20 # 20 = 最近 20 条;0 = 全量

2. 运行

python run.py -c config.yml

3. 预期结果:20 条作品并发拉取,每条一个子目录,目录里是...mp4视频本体,加上可选的封面、音乐、JSON 元数据。文件落在Downloaded/作者名/post/日期_标题_id/

4. 再看一次任务状态(桌面端任务中心会列出每个任务的成败和数量统计,还能一键打开输出目录):

5. 增量再跑:博主又更新了新作品时,把increase.post设为true再跑一次,磁盘里已有的作品会被跳过,只补新增的。整个过程你只改了数字、跑了两条命令。

进阶玩法:增量定时、自定义命名与 API 服务

如果你需要每天凌晨自动拉新:配合系统定时任务 + 增量开关,不用盯着它跑。

# crontab -e 里加一行:每天 2 点增量拉取 0 2 * * * cd /path/to/douyin-downloader && python run.py -c config.yml

配置里保留increase.post: true,本地已存在的主文件会被自动跳过,只补新作品。

如果你想自己定文件怎么放:命名模板支持一组变量,目录层级也能按年月排:

filename_template: "{author}_{date}_{title}_{id}" folder_template: "{year}/{month}/{author}" author_dir: nickname_uid # 昵称_唯一ID,避免重名博主被合并

模板里必须带{id},否则重名会互相覆盖。完整变量列表和取值见 config.example.yml。

如果你想把它变成服务被别的程序调用:装两个可选依赖,起一个本地 REST 接口:

pip install fastapi uvicorn python run.py --serve --serve-port 8000 curl -X POST http://127.0.0.1:8000/api/v1/download -d '{"url": "https://www.douyin.com/video/xxx"}'

提交后返回job_id,再GET /api/v1/jobs/{job_id}查进度和结果。

踩坑速查:高频问题一句话解法

⚠️只拉到约 20 条就停了原因:触发了分页风控,接口不再往后翻页。 解法:browser_fallback.enabled: trueheadless: false,会弹出浏览器让你手动过一次验证,别关早了。

Cookie 过期、请求被拒、下不动原因:登录凭证失效。 解法:重跑python -m tools.cookie_fetcher --config config.yml,重新登录一次。

想强制重新下载某一条,却跳过了原因:工具用"数据库记录 + 本地文件"双查重,只删一处不够。 解法:删掉含该aweme_id的本地文件夹,再用sqlite3dy_downloader.db删对应记录。

进度刷屏、日志吵原因:日志静默没打开。 解法:配置里progress.quiet_logs: true;需要排查时临时加--show-warnings-v

想要原画,拿到的却偏糊原因:默认video_quality: highest只挑最高转码档,不是上传原片。 解法:改video_quality: original去探测原片(每条多一次探测请求,失败会退回转码档)。

谁最适合用 + 收尾

它最对路的三类人:追素材的自媒体创作者、攒课程案例的教育工作者、盯竞品内容的分析师——共同点都是"要存得多、要存得齐、不想重复劳动"。项目基于 MIT 协议开源,可自由使用、修改和分发。觉得哪里不顺用,欢迎去提 issue 或直接提个 PR。

【免费下载链接】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 20:52:04

SQL报错注入实战详解:CTFHUB场景下UpdateXML、ExtractValue与Floor三种手法

CTF圈的兄弟应该都对SQL注入不陌生,在CTFHUB技能树里,报错注入算是基础里很有代表性的一类题型。它不像联合查询那样需要看着回显位置拼字段数,也不像盲注那样一个个字符去猜,而是在页面报错信息里直接“看到”数据库吐出来的数据…

作者头像 李华
网站建设 2026/9/16 20:51:52

V4L2与高通KMD深度剖析:Camera驱动架构与调试实战

做Camera驱动的兄弟应该都有同感:不管你是做手机平台的BSP,还是做车载、安防的Camera方案,只要SoC选了高通平台,几乎绕不开两个名字——V4L2和高通KMD。V4L2是Linux内核里视频设备驱动的标准框架,高通KMD则是高通Camer…

作者头像 李华
网站建设 2026/9/16 20:51:04

OptiScaler 指南:老显卡也能换超分技术

OptiScaler 指南:老显卡也能换超分技术 【免费下载链接】OptiScaler OptiScaler bridges upscaling/frame gen across GPUs. Supports DLSS2/XeSS/FSR2 inputs, replaces native upscalers, enables FSR-FG/XeFG on non-FG titles. Supports Nukem mod for DLSSG-to-FSR3 FG. …

作者头像 李华
网站建设 2026/9/16 20:49:46

Ubuntu黑屏卡tty1?显示管理器故障诊断与修复指南

1. 这不是系统崩溃,而是图形显示服务“掉线”了——先搞清本质再动手Ubuntu启动后卡在黑底白字的tty1界面,很多人第一反应是“系统坏了”“装错了”“驱动炸了”,急着重装系统。其实绝大多数情况下,这根本不是系统损坏&#xff0c…

作者头像 李华
网站建设 2026/9/16 20:47:00

Win10下SolidWorks 2016工程图属性链接失效原因与修复指南

1. 项目概述:为什么在Win10环境下操作SW2016工程图与零件属性的链接,会成为工程师每天必踩的“隐形坑”SolidWorks 2016在Windows 10系统上运行,表面看是兼容的,但实际工作中——尤其是涉及工程图与零件模型属性自动关联的环节——…

作者头像 李华