抖音视频存了又忘?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 不太一样,它的核心设计目标是"下了就能用、用了就能找":
- 按作品维度建目录,文件名带发布日期和标题,一眼看清来源
- SQLite 数据库 + 本地文件双重去重,重复内容自动跳过
- 支持增量下载,只拉新作品,不重复劳动
- 断线自动重试,下载不完整的文件会被清理后重下
翻译成人话就是:你负责丢链接,它负责把东西整理得明明白白。
上手第一关:四步把运行环境搭起来
整个流程只需要四步,全程不需要任何编程基础:
第一步,拿到代码并装依赖:
git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader/douyin-downloader pip install -r requirements.txt第二步,生成自己的配置文件:
cp config.example.yml config.yml第三步,获取登录凭证。这一步最省心,程序会自动打开浏览器让你扫码登录,登录完回到终端按一下回车,Cookie 就自动写进配置了:
python -m tools.cookie_fetcher --config config.yml第四步,先跑通一条最简单的链接。把 config.yml 里的 link 改成任意一条抖音视频地址,然后运行:
python run.py -c config.yml看到终端里出现进度条,第一个视频已经稳稳落盘,说明环境全部打通了。
链接丢给它:短链、图文、合集都能自动识别
douyin-downloader 的 URL 解析做得相当"宽容",你不需要费劲去猜地址属于哪种类型:
- 视频链接
/video/{id}、图文/note/{id}直接可下 - 分享出来的短链
https://v.douyin.com/...会自动解析成真实地址再下载 - 合集链接
/collection/{id}或/mix/{id}整合集拉取 - 音乐链接
/music/{id}优先抓原声文件,抓不到就回退到该音乐下的作品
命令行临时追加链接也很方便,不污染配置文件:
python run.py -c config.yml -u "https://www.douyin.com/video/7604129988555574538" -t 8 -p ./Downloaded这里-t 8表示 8 个线程并发,-p指定保存目录。下载时视频、封面、音乐、头像会各归其位,最终每个作品一个文件夹,日期、标题、ID 清清楚楚。
从"存一条"升级到"存一个主页":五种模式怎么选
批量下载是它真正的重头戏。在 config.yml 里填上作者主页地址,再通过mode选择抓取范围:
link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx mode: - post # 作者发布的所有作品 - like # 作者点赞过的内容 - mix # 作者创建的合集 - music # 作者用过的音乐 - collect # 当前登录账号的收藏夹(需单独使用)模式之间还可以叠加,比如post和like同时开,程序会跨模式自动去重——同一个作品不会因为出现在两个模式里就被下两遍。数量上可以用number控制,0 表示全量:
number: post: 50想限制只抓某段时间发布的内容,加两个字段就行:
start_time: "2024-01-01" end_time: "2024-12-31"下载完成后,目录会按作者、再按模式组织,长期使用也不会乱:
批量不等于无脑:增量、去重与兜底机制怎么配合
批量下载最大的痛点不是"下不动",而是"下重了""下漏了"。针对这两件事,douyin-downloader 各有一套机制:
增量下载。开启后,程序会通过数据库记录比对,跳过所有已下载的作品,只处理新发布的:
increase: post: true database: true双重去重。程序同时检查 SQLite 记录和本地文件名里的作品 ID,只删数据库不删文件、或只删文件不删数据库,都不会造成误判,这一点做得比很多同类工具严谨。
翻页兜底。批量抓取时如果 API 分页被风控、只拿到 20 条,程序会启动浏览器兜底模式,弹出页面时你手动过一下验证码,它就能继续往下翻:
browser_fallback: enabled: true headless: false max_scrolls: 240完整性校验。每个文件下载后都会比对 Content-Length,长度对不上的自动清理并重新下载,避免出现"看着下载成功、实际打不开"的半截文件。
这套组合拳下来,即使遇到网络波动,也能保证最终落盘的每一份文件都是完整可用的。
进阶玩法:热搜、评论、直播与完成通知
当基础下载玩熟之后,这几个功能能让它从"下载工具"升级成"内容采集器":
抓热搜榜。想看看今天抖音都在聊什么,一条命令导出热榜快照:
python run.py --hot-board 30 -p ./Downloaded关键词搜索。按关键词把相关作品信息拉成 JSONL 数据,适合做内容调研:
python run.py --search "猫咪" --search-max 100 -p ./Downloaded采集评论。在配置里打开comments.enabled,每个作品会额外生成一份*_comments.json,还能选择是否抓取二级回复,做舆情分析很方便。
录制直播回放。把直播间链接填进配置,FLV 格式边下边存,主播下播或者网络中断时,已录制的部分会自动保留:
link: - https://live.douyin.com/123456789 live: max_duration_seconds: 3600完成通知。下载完自动推送到 Bark、Telegram 或企业微信 Webhook,人在外面也能知道任务跑完了。
如果只是偶尔用用、不想碰命令行,同仓库里还附带了一个桌面版客户端 Douzy:粘贴链接、选择模式、点下载,进度和任务状态都可视化展示。
卡住了别慌:四个高频问题的自查顺序
只能抓到 20 条作品?确认browser_fallback.enabled是 true,且headless为 false。浏览器弹出来后手动完成验证,别急着关窗口。
提示登录失效?重跑一次 Cookie 获取命令即可:
python -m tools.cookie_fetcher --config config.yml进度条刷屏看不清?默认的progress.quiet_logs: true会在下载阶段静默日志,调试时才需要临时加-v参数打开详细输出。
想重新下载某个作品?先删掉对应本地目录,再清掉数据库里这条记录,两个动作都要做,程序才会认为它是"新"的。
写在最后:工具的边界,也是使用者的边界
把抖音内容搬到本地,本质上是给自己建一个可控的私人资料库——不依赖平台搜索、不怕内容被删、随时可以离线翻看。用得好的话,学习笔记、创作素材、兴趣收藏都能受益。
不过也请记住几点:它面向的是个人学习与研究用途,不要拿去做商业分发;批量抓取时注意节奏,尊重平台规则;涉及他人隐私的内容,下载和传播都要谨慎。工具本身不复杂,复杂的是怎么善用它——希望这篇文章能帮你把它真正用起来。
【免费下载链接】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),仅供参考