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 记录 |
手动下载在"偶尔存一条"的场景下够用,但一旦涉及两位数以上的作品,痛点会立刻放大:文件名千奇百怪、作者混在一起、重复内容反复占用空间。工具的价值不在于替代你的判断,而在于把"下载、命名、归类、去重"这套重复劳动打包成一条命令。
项目本体放在仓库根目录下,核心源码在core/目录,包含下载器工厂、URL 解析、各类型下载器与重试执行器;storage/负责数据库与文件管理;utils/naming.py处理命名模板。想看实现细节,直接从这些目录入手即可。
二、四步完成第一次下载:最小可行演示
拿到项目的路径只有两条:git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader之后pip install -r requirements.txt。装完依赖,往下走四步。
第一步:准备登录态。抖音接口需要 Cookie,手动复制粘贴既麻烦又容易漏字段。项目自带的tools/cookie_fetcher.py会拉起浏览器让你完成登录,然后自动把 Cookie 写入配置:
python tools/cookie_fetcher.py --config config.yml第二步:复制配置模板。根目录的config.example.yml是完整的参数说明,建议复制一份再改:
cp config.example.yml config.yml第三步:填入链接。打开config.yml,把link下的占位链接换成你真正想保存的内容地址,视频页、用户主页、直播页都支持:
link: - https://www.douyin.com/video/7412345678901234567 path: ./Downloaded/ mode: - post第四步:运行。一条命令开始下载:
python run.py -c config.yml第一次跑通后,你会看到类似下面的结果——进度、耗时、成功与失败数量一目了然:
下载完成后,内容按作者与类型自动分好文件夹,每一条作品还附带 JSON 元数据(作者、发布时间、标题等),方便日后检索:
三、按目标找玩法:你要的是哪一种结果
工具的功能很多,与其逐个记忆,不如从"我想得到什么"出发,反过来找对应的配置。
想完整备份一位创作者的主页
这是最常用的场景。抖音的创作主页一般包含四种内容:发布的作品、点赞过的内容、合集、音乐(原声)。在配置里把这些模式全开,并指定每类的数量上限:
link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx mode: - post - like - mix - music number: post: 50 like: 20 mix: 10 music: 20配合increase增量开关和database: true,第二次运行只会补齐新增作品,不会把整个主页重新拉一遍。author_dir支持nickname、sec_uid、nickname_uid三种作者目录命名方式,重度用户建议选nickname_uid,既直观又不会因作者改名而分裂目录。
想留住一场直播
直播是抖音最难保存的内容类型——播完基本就没了。把直播间的链接放进link,开启live配置段即可:
live: max_duration_seconds: 0 # 0 = 一直录到主播下播 idle_timeout_seconds: 30max_duration_seconds设为 0 表示录到主播下播,也可指定具体秒数只录一段时间。录制时会先探测直播流地址与清晰度选项,主播中途下播也会保留已录数据:
想收集某位博主的背景音乐
把链接指向用户主页,mode里带上music,number里给出music的条数,原声作品会被单独归入音乐目录,适合给视频剪辑攒素材库。
想分析评论区反馈
打开comments开关,每个作品会额外生成一份*_comments.json,包含评论正文、作者等信息:
comments: enabled: true include_replies: false max_comments: 0 # 0 = 不限制数量 page_size: 20这层数据对做内容运营或用户调研的人比较有用,普通用户保持关闭即可。
四、参数速查表:常用配置项一览
不需要背,收藏本文,用到时回来查:
| 配置项 | 作用 | 常用取值 |
|---|---|---|
link | 待下载链接列表,支持视频/主页/直播间/短链 | 数组形式 |
mode/number | 下载模式与各模式数量上限 | post / like / mix / music |
thread | 并发线程数,影响下载速度 | 5 ~ 10 |
retry_times | 单条失败重试次数 | 3 |
increase | 各模式的增量下载开关 | true / false |
database | SQLite 去重与历史记录 | true |
filename_template | 文件命名模板,必须包含{id} | {date}_{title}_{id} |
folder_template | 作品子目录命名 | {date}_{title}_{id} |
start_time/end_time | 只下载时间范围内的作品 | "2024-01-01" |
proxy | HTTP 代理,网络受限时使用 | http://127.0.0.1:7890 |
browser_fallback | 接口被限时用浏览器兜底抓取 | enabled: true |
一个容易忽略的细节:filename_template里至少要保留{id},否则标题相同(例如两期节目同名)会互相覆盖。
五、三条锦上添花的扩展命令
除了常规下载,CLI 还内置了几个独立子命令,适合特定场景。
拉热搜榜。导出抖音当前热搜前 30 条到本地 JSONL 文件,做选题或追热点时有用:
python run.py --hot-board 30关键词搜索。按关键词搜索作品并导出结果,想摸底某个话题的内容量时可以试试:
python run.py --search "猫咪" --search-max 100REST API 服务。装好可选依赖后,可以把下载器变成 HTTP 服务,供其他系统调用:
pip install fastapi uvicorn python run.py --serve --serve-port 8000批量下载过程中,终端会实时显示每个作品的进度条与耗时,长任务挂着看也不慌:
六、避坑指南:几个新手容易踩的坑
一次只能拿到 20 条作品?这是抖音接口的翻页限制,不是 bug。确保browser_fallback.enabled: true,程序会在接口受限时切换到浏览器模式继续抓取;如果弹出验证码,手动完成一次即可。
Cookie 失效、下载报登录错误?重新跑一遍python tools/cookie_fetcher.py --config config.yml,工具会重开浏览器让你登录,完事后自动更新配置。
下载内容重复?打开increase增量开关并保持database: true,SQLite 会记录已下载作品的 ID,重复内容直接跳过。
想要的通知没收到?notifications支持 bark、telegram、webhook 三类渠道,配置好 provider 后,成功与失败都会推送摘要。
七、如果命令行让你头疼:试试桌面版
命令行工具适合自动化与批量操作,但如果你更习惯图形界面,项目还配套了一款桌面版应用 Douzy,它复用同一套后端,界面上的核心入口是下载、批量下载、任务中心与作品档案四个模块。粘贴链接即可开始,任务状态、今日成功/失败数量都有可视化展示:
关注列表同步、文件命名规则设置、下载历史档案也都做了可视化处理,对不熟悉终端操作的用户友好很多。命令行与桌面版共用底层逻辑,切换成本很低。
八、写在最后:从一条视频开始
回到开头那个问题。工具能解决的,是"内容还在的时候,把它留下来"这件事。它不能替你决定存什么、删什么,但可以保证:你想留的,一定能留成结构清晰、命名规范、可随时翻阅的本地文件。
建议的入门路径很简单:先存一条视频,跑通流程;再试着备份一位创作者的主页;然后按需开启增量、评论或直播录制。完整参数说明可以随时回看根目录的config.example.yml与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),仅供参考
