五步搭起抖音批量下载管线:视频、合集与直播回放的本地存档
【免费下载链接】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 是一个面向个人存档场景的抖音批量下载工具:把链接交给它,视频、图集、合集、音乐原声会被自动去水印后落到本地,再按作者整理成清晰的目录结构。它适合两类人——不想为单个视频反复打开网页的人,以及希望长期跟更某几位创作者内容的人。项目以 Python 命令行为主体,另有正在内测的桌面版 Douzy,界面所见即所得。
5 分钟内跑通第一次下载
最短路径只有四步,全部在终端完成:
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命令会拉起浏览器,你登录抖音后回到终端按一次回车,Cookie 便自动写进config.yml,全程不用手动复制粘贴任何东西。之后运行:
python run.py -c config.yml程序读取配置里的链接开始下载。想先试单个视频,也可以直接追加参数:
python run.py -c config.yml -u "https://www.douyin.com/video/1234567890123456789"跑通这一步,整个工具就算上手了。
内容获取:从单个链接到主页全量
工具能识别的链接形态比想象中多:
| 链接类型 | 示例路径 | 下载内容 |
|---|---|---|
| 单条视频 | /video/{id} | 去水印视频 + 封面 + 音乐 |
| 图文笔记 | /note/{id}、/gallery/{id} | 图片集 + 元数据 |
| 合集 | /collection/{id}、/mix/{id} | 合集内全部作品 |
| 音乐 | /music/{id} | 原声文件 |
| 作者主页 | /user/{sec_uid} | 按模式批量下载 |
| 直播间 | live.douyin.com/{room_id} | 直播录制 |
主页批量下载是大多数人入手的第一站,配置里只需声明链接和模式:
link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx mode: [post, like, mix, music] number: post: 50mode决定抓什么:post是发布的作品,like是点赞列表,mix是合集,music是音乐作品;number限制数量,0表示全量。同一作品在不同模式下只会下载一次,跨模式自动去重。
内容获取:直播回放的保存方式
直播是抖音里最难"留底"的内容,下播即走。工具的直播录制功能把这件事接住了:
link: - https://live.douyin.com/123456789 live: max_duration_seconds: 3600 # 录 1 小时,0 表示录到下播 idle_timeout_seconds: 30 # 空闲 30 秒判定为下播支持 FLV 与 HLS 两种源。需要留意一个细节:FLV 录完可直接播放,HLS 源默认只保存 playlist 文件,需要再用 ffmpeg 转一次。主播下播、网络空闲或 Ctrl+C 中断时,已经录下的字节都会被保留,不会白录。
内容管理:去重、增量与命名规则
下载多了之后,真正麻烦的是重复和找不到文件。工具的解决方案分四层:
| 手段 | 作用 |
|---|---|
| SQLite 记录 | 记住每个已下载作品的 ID |
| 本地文件扫描 | 即使改名换目录也能识别 |
| 跨模式去重 | 同一作品在多个模式下只下一份 |
| 完整性校验 | 对比 Content-Length,损坏文件自动重下 |
在此基础上,增量下载让"跟更"变成日常操作:
increase: post: true database: true打开后,重复运行只会拉取新发布的作品。命名规则同样可以定制,默认{date}_{title}_{id}模板已经够用,也可以在配置里把作者目录改成昵称_sec_uid,避免重名作者相互覆盖。
内容消费:任务进度、通知与桌面版
命令行里每次下载都有实时进度条,任务结束会汇总成功与失败数量。配合通知推送,长任务可以完全托管:notifications支持 Bark、Telegram 与 Webhook,任选一个渠道,下载完成或失败都会收到消息,单渠道故障不会阻塞主流程。
如果你更习惯图形界面,正在内测的桌面版 Douzy 与命令行共用同一套后端——粘贴链接检测内容、勾选下载类型、在任务中心回看每次下载的状态,右侧还能看到逐条事件日志,排查问题比看终端更直观。
进阶玩法:长期跟更与自动化
定时增量跟更
把increase打开后,配合系统的 cron(或 Windows 任务计划)每天定时跑一次python run.py -c config.yml,再加一条 Webhook 通知,你关注创作者的每次更新都会自动落到本地,全程不需要人工参与。
REST API 服务模式
工具内置了轻量服务模式,适合嵌入自己的流程:
pip install fastapi uvicorn python run.py --serve --serve-port 8000启动后POST /api/v1/download提交{"url": "..."}即可创建任务,GET /api/v1/jobs/{job_id}查询状态。做脚本、做小程序,甚至接进现有系统都够用。
视频转写
如果你需要把下载的视频转成文字稿,transcript是可选项:声明 OpenAI 的转写模型与密钥后,每个视频会额外生成.transcript.txt与.transcript.json,方便检索和归档。
几个容易卡住的点
很多人会遇到的一个问题是"为什么只能抓 20 条"。这通常不是下载器的故障,而是抖音的翻页风控。处理方式是打开browser_fallback:把enabled设为true、headless设为false,程序会在受限时自动拉起浏览器,你手动过一下验证码,别急着关窗口,翻页就会继续。
另外两处容易忽略:一是收藏夹模式collect/collectmix必须单独使用,不能和post混在一个配置里;二是想重新下载某条内容,需要同时清掉本地文件里的对应目录和数据库里的记录,只删一边都不会触发重下。至于 Cookie 失效,最快的解决办法就是重跑一次python -m tools.cookie_fetcher --config config.yml。
把下载变成一件可以托付的事
douyin-downloader 的价值不在于"能下多少种内容",而在于把下载这件事变得可重复、可管理、可追溯:去重让你不会重复占空间,增量让你不用盯着更新,通知让你把任务交给后台。对个人内容存档来说,这已经是一套完整的闭环。
想开始的话,装依赖、取 Cookie、跑起来,上面三步就够了;douyin-downloader/README.zh-CN.md和USAGE.md里还有每个配置项的详细说明,遇到问题也能按图索骥。最后提醒一句:请把下载的内容用于个人学习与数据管理,尊重创作者版权,遵守平台规则。工具帮你省下时间,也请把这份便利用在对的地方。
【免费下载链接】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),仅供参考