📌 项目地址:jiji262/douyin-downloader | ⭐ 11,302 颗星 | 🔧 Python | 📜 未标注
一个很实际的问题
抖音客户端不提供任何导出入口。收藏夹里的视频,作者删了就没了;创作者想备份自己几年攒下的作品,也没有官方办法。
jiji262/douyin-downloader 解决的就是这个问题。Python 写的,11302 个 Star,中文文档齐全(README.zh-CN.md)。
能下什么
按 URL 模式划分,README 列得很具体:
- 单条视频:
/video/{aweme_id} - 图集:
/note/{note_id}和/gallery/{note_id} - 合集:
/collection/{mix_id}和/mix/{mix_id} - 音乐:
/music/{music_id},优先取直接音频,取不到时回退到首个相关作品 - 短链:
v.douyin.com的分享链接直接粘贴就能解析 - 主页批量:
/user/{sec_uid},mode 支持 post(作品)、like(点赞)、mix、music 四种 - 登录后的收藏夹:
/user/self?showTab=favorite_collection,支持 collect 和 collectmix 两种模式
批量下载的核心就是主页链接加 mode 参数的组合。具体安装和参数说明看仓库中文文档,这里不搬运。
比“能下”更重要的事:下得对不对
这类工具的分化点不在功能列表,而在工程细节。我翻了一下,这个项目在几个环节做了处理:
无水印优先。 自动选无水印视频源,省掉下载后二次处理的步骤。
最高画质。 从 video.bit_rate 码率阶梯里自动挑最高码率,实况照片(live-photo)走同样逻辑。
SQLite 去重。 批量下载时已下载的内容不会重复拉取。跑一个几千条视频的主页,中断后重跑,这一项能省大量流量。
重试 + 完整性校验。 失败自动重试,下载完校验文件完整性,避免半截文件混进归档。
浏览器回退。 接口方式失败时自动切换到浏览器方式继续,多一条退路。
两个容易被忽略的功能
直播录制。 live.douyin.com/{room_id},支持 FLV/HLS 流。断流时保留已录制的部分数据——直播推流随时可能中断,保留半场比直接报错务实得多。
评论抓取。 每个作品的评论(可选包含回复)存成 *_comments.json。做内容分析或想留存评论区互动的人会需要。
桌面版 Douzy:三平台打包
同一个后端之上还做了个桌面应用,叫 Douzy,覆盖三个平台:
- 抖音:视频、图集、主页、合集下载,还能同步关注列表、收藏夹、合集和点赞内容
- TikTok:公共视频、图文、主页,无需登录
- YouTube:视频、Shorts、频道、播放列表,可配置只下视频、MP3 或字幕
桌面版有多链接队列、任务状态跟踪、失败重试、本地下载归档和筛选。目前是封闭测试,构建从 Releases 页面拿。
用之前想清楚的几件事
接口风险。 项目依赖抖音的非公开接口,接口一变功能就可能临时失效。用之前去 issue 区确认当前可用状态。
账号安全。 收藏夹和点赞下载需要自己账号的 cookie,把登录态交给一个第三方工具,值不值自己权衡。
磁盘空间。 直播录制和主页批量,文件量都不小。
版权。 备份自己内容没问题,下载他人作品二次传播,边界自己把握。
同类工具不少,但把单条下载、主页批量、合集、音乐、直播录制、评论抓取、去重机制装进一套流程,还附赠三平台桌面版的,我只见到这一个。