一次把收藏搬回家: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 的工具,说明里写着"视频、图集、合集、音乐、直播回放、主页批量下载",几乎覆盖了我全部需求。
第一次跑通:从克隆到第一个视频落地
安装比想象中简单。克隆仓库、装依赖,两条命令:
git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader pip install -r requirements.txt唯一多一步的是身份认证。抖音接口需要登录态,工具提供了自动获取方式,运行后会自动打开浏览器,你手动登录一次,回到终端按回车,Cookie 就写好了:
python tools/cookie_fetcher.py --config config.yml然后是第一条下载命令。我把想收藏的单个视频链接直接传进去:
python run.py -c config.yml -u "https://www.douyin.com/video/7234567890123456789"终端里出现了进度条,逐项显示"解析链接、创建下载器、执行下载",最后落到本地的是一个不带水印、自动挑了最高画质的 mp4 文件,旁边的 JSON 里还带着标题、作者、发布时间这些元数据。
把"一条"变成"一批":主页批量下载的关键配置
单个视频没问题后,我开始处理真正的大头——那位摄影博主的主页。批量下载抖音视频的技巧其实就在配置文件里:link指向主页地址,mode决定抓哪几类内容,number控制各类型数量。
link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx path: ./我的收藏/ mode: - post # 发布的作品 - like # 点赞过的作品 - mix # 合集 number: post: 60 like: 20运行后,下载器会按作者建目录,内部再按类型分文件夹,作品、合集、音乐各归各位,不会混在一起。我加了thread: 5让并发下载,几十条作品十几分钟就全部落地,最后终端会汇总一行统计:总作品数、成功数、失败数、跳过数。
直播回放保存方法:一次差点错过直播的教训
真正让我觉得这个工具值得的,是直播回放保存方法。上周主播临时加了一场新机上手直播,我全程在外,只来得及把直播间链接复制下来。
回来一试,直接把live.douyin.com的链接填进link就能录:
live: max_duration_seconds: 0 # 0 = 一直录到主播下播 chunk_size: 65536 idle_timeout_seconds: 30程序会先解析出直播间的清晰度选项,再生成 FLV 下载链接。整场直播录了一个多小时,主播下播后工具自动保留已录数据,没有因为断流丢片段。
对追更技术分享、公开课这类内容的人来说,这条功能等于给直播上了保险——错过直播不再意味着错过内容。
下载到一半踩的坑:Cookie 失效、翻页限制和重复下载
批量下载进行到第三天,问题陆续冒出来,这里把对策一并记下。
Cookie 失效。抖音登录态有时效,某天运行命令,进度条走到一半报"登录态失效"。好在工具检测到后会自动重新打开浏览器让你登录,更新完 Cookie 自动重试,不用手动改任何配置。如果环境不支持自动弹窗,重跑一次python tools/cookie_fetcher.py即可。
翻页限制。主页作品超过 20 条时,API 分页可能被卡住。配置里的browser_fallback就是干这个的——API 翻不动时自动启动浏览器继续滚动抓取,必要时可以人工过一下验证码。我的 60 条作品里有 40 多条是靠它补齐的。
重复下载。增量更新最容易踩的坑是重复。工具内置 SQLite 去重(database: true),同一个作品二次运行会直接跳过;配合增量配置,后续只需抓新增内容:
increase: post: true like: true文件名也会按模板生成,我用的{date}_{title}_{id}让每个文件都带日期和唯一标识,配合按作者建目录的规则,时间久了也不会乱。
锦上添花:通知、评论采集和 API 服务
稳定跑通后,我又翻配置发现了几个顺手的功能。下载完成后可以推送到 Bark 或 Telegram,长任务挂在后台,手机收个通知就知道跑完了。需要分析视频评论区反馈时,可以开评论采集,每个作品会额外生成一份*_comments.json。
命令行也藏着两个小工具:--hot-board 30拉取抖音热搜榜,--search "关键词"按关键词搜索并导出 JSONL,做内容选题参考很方便。想集成到自己的系统里,还能以 REST API 服务模式运行:
python run.py --serve --serve-port 8000对不习惯命令行的朋友,项目还有一个同后端的桌面版 Douzy,粘贴链接、同步关注列表、实时看下载进度都在图形界面里完成,内测阶段可以留意 Releases 页面。
半年用下来的一点心得
现在我的本地库已经攒了几百条作品和十几场直播回放,全部按作者和类型分好了目录。这个工具解决的是"内容随手就能存下来"这件事——单个视频、整页作品、合集、音乐、直播回放,一条链接丢进去,剩下的交给它。
它适合这些人:想离线反复看视频的学习型用户;要系统整理某个作者全部作品的收藏爱好者;以及需要定期备份直播内容的人。上手门槛不高,配置最复杂的地方也就是一个 YAML 文件。
想深入了解的,可以看仓库里的USAGE.md使用说明、config.example.yml配置注释,核心逻辑在core/目录,下载器的工厂、直播录制、评论采集这些模块都按职责分好了文件,读起来不算难。内容下载下来还是建议用于个人学习收藏,别拿去二次传播。工具只是把手,怎么用,在自己。
【免费下载链接】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),仅供参考