三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

把抖音视频批量搬进本地:我的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 批量下载、自动去重、井井有条归档"的全过程,包含一份可以直接照抄的抖音下载工具配置教程。


一、一次"作品下架"教会我的事

先说个真事。上个月,我一直很喜欢的书法博主突然删除了两年前的几期视频,理由是"版权原因"。那些视频我刷过好几遍,当时觉得"反正在线能看,没必要存",结果想回看时连个影子都找不到。

这件事让我意识到一个残酷的事实:你在抖音上刷到的内容,从来都不属于你。创作者随时可能删帖、下架,平台也可能调整规则,而手动的保存方式几乎没有一种靠谱的——

保存方式真实体验
手机录屏画质缩水、带屏幕水印、还要盯着屏幕手动录,费时费眼
浏览器插件大多只能存单个视频,遇到底层接口变更就失灵
在线下载网站有水印残留、限制下载次数,还得反复粘贴链接
手动改名归档下载几十个文件后名字全乱,想找某个视频像大海捞针

我需要的不是"偶尔存一个视频"的小工具,而是一个能把视频、封面、原声音乐一起打包,按作者自动分目录,并且下次下载自动跳过重复内容的完整方案。

兜兜转转,我找到了开源的douyin-downloader

二、先认识它的"工具箱"

在动手之前,我花十分钟把它 README 里的能力清单扫了一遍,发现这个抖音批量下载工具远比想象中能打:

  • 去水印下载:自动挑选无水印视频源,优先最高码率版本,画质不缩水;
  • 多类型支持:单个视频、图文、合集、音乐都能下,还支持作者主页的 post(作品)/ like(点赞)/ mix(合集)/ music(音乐)四种批量模式;
  • 多资源打包:每个作品除了视频本体,还会保存封面图、背景音乐、作者头像和完整 JSON 元数据;
  • 断点续传与重试:下载中断后自动接续,失败按 1s、2s、5s 指数退避重试;
  • SQLite 智能去重:数据库 + 本地文件双重检查,同一个视频不会下第二遍;
  • 直播录制与评论采集:能录 FLV 直播流,也能按作品抓取评论(含二级回复)输出 JSON;
  • 热搜榜与关键词搜索:一条命令导出当天热搜,或按关键词把搜索结果落盘;
  • 浏览器兜底:翻页被风控时自动拉起浏览器,可人工过验证码。

一句话总结:这不止是个下载器,更像一个帮你把抖音内容"搬回家"的搬运工。

三、从零到第一次下载:一份能照抄的配置教程

第 1 步:准备环境并拉取项目

需要一台装了 Python 3.8+ 的电脑(Windows / macOS / Linux 都行),然后在终端里执行:

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

💡 如果你在国内,装依赖遇到网络超时可以加-i https://pypi.tuna.tsinghua.edu.cn/simple这类镜像源加速。

第 2 步:搞定 Cookie(抖音访问的"通行证")

抖音要求携带有效 Cookie 才能正常访问内容,这一步绕不开,但有两种安全做法:

方式一:自动获取(推荐)

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

运行后会自动打开浏览器,你用抖音扫码登录,回到终端按一下回车,程序就会把 Cookie 加密写进配置,全程不用手动复制。

方式二:手动粘贴

从浏览器开发者工具里复制整串 Cookie,粘贴到配置文件的cookies字段即可。配置文件里cookies: auto、整串字符串、键值对三种写法任选其一。

🔒 放心,Cookie 只保存在你自己电脑的本地配置文件里,不会上传到任何服务器。

第 3 步:写一份最小配置

先复制示例配置:

cp config.example.yml config.yml

然后改造成这样——这是我最常用的"最小可用配置",新手可以直接照抄:

link: - https://www.douyin.com/video/7604129988555574538 path: ./Downloaded/ music: true # 顺带下载原声音乐 cover: true # 顺带下载封面 json: true # 保存作品元数据JSON thread: 5 # 并发数 database: true # 开启SQLite去重

第 4 步:跑起来看效果

python run.py -c config.yml

终端会出现漂亮的进度条,逐条显示解析、排队、下载、校验的状态。跑通之后,下载目录Downloaded/里就会多出结构清晰的文件夹。

图:桌面版的主界面长这样,粘贴链接即可开始——命令行版则用run.py完成同样的事

四、批量下载实战:把整个作者主页搬回家

验证单个视频没问题后,我开始尝试真正想做的事:整页批量下载

姿势一:批量下载作者全部作品

把配置里的link换成作者主页地址,再加上下载模式与数量限制:

link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx mode: - post number: post: 50 # 下载最近50个作品,写0表示不限量全下

运行后工具会逐页翻列表、逐条下载,配合thread: 5的并发,一晚上把那位书法博主现存的所有作品都收了回来。

姿势二:把点赞过的内容也捞回来

很多人的"收藏夹"其实散落在自己的点赞列表里。把mode换成like,就能把作者点赞过的作品一并下载:

mode: - like number: like: 0 # 0 = 全量

更省心的是,postlikemixmusic可以写在一起同时跑,而同一个视频在不同模式间会自动去重,不会重复占用磁盘。

一个小技巧:时间过滤

如果你只需要某个时间段的内容,比如只想要上个月发的,在配置里加上:

start_time: "2026-07-01" end_time: "2026-07-31"

工具就只会下载这一个月内的作品,既省时间又省空间。

五、下载多了怎么办:去重、增量与目录管理

批量下载最怕的就是"重复"和"混乱",而 douyin-downloader 恰好把这两件事都处理好了。

增量下载:只补新货

配合database: true,可以开启增量模式:

increase: post: true database: true

以后每次下载同一个作者,工具会自动对比数据库记录,只下载新增的作品。我每周跑一次,把新视频补进素材库,整个过程几乎全自动。

目录归档:每个作品一个独立小房间

默认开启的folderstyle会按"作者 → 作品"两级组织文件,每个作品一个文件夹:

Downloaded/ └── 书法up主/ └── post/ └── 2026-07-15_兰亭序临摹教程_7401234567890/ ├── 视频.mp4 ├── 封面.jpg ├── 原声.mp3 └── 元数据.json

如果嫌默认命名不够直观,桌面版的设置页可以配置命名模板,比如{date}_{title}_{id},15 个变量自由组合,想怎么排就怎么排。

图:下载过的作品都会进"作品档案",随时能按作者、标题、时间筛选查看

图:命名模板可视化配置,变量说明一目了然

想重新下载怎么办?

工具用"数据库记录 + 本地文件"双重去重。想重下某个作品,先删掉对应本地文件夹,再从数据库里删掉这条记录即可:

sqlite3 dy_downloader.db "DELETE FROM aweme WHERE aweme_id = 'xxx';"

想全部重来,就清空Downloaded/目录并删掉dy_downloader.db

六、进阶玩法:直播、评论、热搜与搜索

批量下载只是基本功,这工具还有几招花活:

🎥 直播录制:给直播链接配个时长上限,挂机就能把整场直播录成 FLV 文件,主播下播或中途断网,已录的部分都会保留:

link: - https://live.douyin.com/123456789 live: max_duration_seconds: 3600 # 0 表示录到主播下播

💬 评论采集:打开comments.enabled,按作品抓取评论,支持二级回复,输出结构化的*_comments.json,做内容分析和舆情整理很顺手。

🔥 热搜榜快照

python run.py --hot-board 30 -p ./Downloaded

一条命令把当天前 30 条热搜导出成 JSONL 文件,适合每天定时记录榜单变化。

🔍 关键词搜索

python run.py --search "兰亭序" --search-max 100 -p ./Downloaded

按关键词把搜索结果落盘,找素材时特别好用。

七、把下载接入你的工作流

当你开始依赖它,会发现它还能和日常工具链打通:

  • 完成通知推送:配置 Bark、Telegram 或 Webhook,下载完成/失败时自动推送消息到手机,批量挂机时不用盯着屏幕;
  • 视频语音转写:开启transcript,调用 OpenAI 语音接口把视频转成文字稿,生成xxx.transcript.txtxxx.transcript.json,做笔记、查资料非常方便;
  • REST API 服务模式python run.py --serve --serve-port 8000即可启动服务,通过/api/v1/download提交任务、/api/v1/jobs/{id}查询状态,方便接入自己的自动化脚本。

图:任务中心把所有下载任务的进度、状态、历史集中展示,管理起来很直观

八、不想敲命令?试试桌面版 Douzy

命令行版功能全面,但如果你和我一样偶尔想"点一点就下载",项目还附带了基于同一套后端的桌面版客户端Douzy

图:桌面版可以同步关注列表,勾选博主直接发起批量下载

它的亮点很符合普通用户的习惯:

  • 粘贴链接 → 检测 → 选内容类型 → 开始下载,全程图形化;
  • 同步你的抖音关注列表,想看哪个博主点一下就行;
  • 实时进度界面逐任务显示事件流,下载状态一目了然。

图:下载进行中的实时进度面板,队列、事件、进度条都清清楚楚

怎么选?我的建议是:想快速上手、可视化操作选桌面版;要批量自动化、跑服务器、做脚本集成,命令行版更顺手。

九、新手排错急救包

实操中我踩过的坑,都整理在这里了,遇到问题按图索骥:

症状原因与解法
报 403 / 未登录Cookie 过期,重新跑python -m tools.cookie_fetcher --config config.yml刷新,建议每周更新一次
作者主页只能抓到 20 条翻页被风控,确保browser_fallback.enabled: true,弹窗出现后手动过验证,别急着关窗口
下载中断、速度慢检查网络,把thread从 5 调到 8 试提速;依赖断点续传兜底,中断后重跑即可接续
想重下某个作品却总被跳过先删本地文件,再删数据库里对应aweme_id的记录,两边一起清才生效
进度条刷屏默认progress.quiet_logs: true已静默,调试时再用-v打开详细日志

十、写在最后:下载之外的事

工具是开源的,免费且持续维护,但请记住两件事:

  1. 下载的内容请用于个人学习、研究或备份,不要二次分发或商用,尊重创作者的劳动;
  2. Cookie 是敏感信息,只在本地保管,别随手贴到公开的地方。

我的建议是从一个小目标开始:今晚下载一个你喜欢的视频,验证环境没问题;明天下载一个作者的主页,体验批量下载的畅快;再往后,配合增量下载和通知推送,把"备份抖音内容"变成每周一次的自动化习惯。

与其等作品下架了再后悔,不如现在动手,让收藏真正属于自己。🚀


文中涉及的配置文件示例:config.example.yml · 使用说明文档:USAGE.md · 项目完整文档位于 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

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

← 返回列表