从 10 小时手工搬运到一条命令: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 的抖音批量下载任务后,你手里不再是散落的 mp4,而是一个整理好的素材库:Downloaded/目录按「作者 / 模式 / 作品」分层,每个作品自带无水印视频、封面、背景音乐和一份 JSON 元数据(点赞数、评论数、发布时间、话题标签),根目录还有一行一条的download_manifest.jsonl清单,方便后续用脚本检索。它就是为「不想再手动一个个存」的人做的开源工具:运营做竞品监控、研究团队采样本、学生建素材库,都能用它把重复劳动挪出去。
Downloaded/ ├── download_manifest.jsonl # 下载清单,一行一条记录 └── 作者名/ └── post/ └── 2024-02-07_作品标题_aweme_id/ ├── ..._aweme_id.mp4 # 无水印视频 ├── ..._cover.jpg # 封面 ├── ..._music.mp3 # 背景音乐 └── ..._data.json # 元数据先算一笔账:手工存 50 条,和让工具跑 50 条
| 对比项 | 手动逐条保存 | douyin-downloader 跑一次 |
|---|---|---|
| 时间(50 条作品) | 约 1.5 小时(开页、另存、改名) | 约 10 分钟,取决于网速与并发 |
| 人力 | 全程盯着屏幕 | 发起后可离开,结束后看汇总 |
| 产物 | 一堆「视频001」命名的 mp4 | 无水印视频 + 封面 + 音乐 + 元数据 + 清单 |
| 重复运行 | 全量重下 | 增量:只补新作品 |
说透一句话:它把「人肉搬运工」换成「定时任务」,你只负责给链接和定规则。
十分钟内装好环境并配出第一份任务
第一步:克隆仓库并安装依赖
工具是 Python 写的,运行前要把依赖装进当前环境:
git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader pip install -r requirements.txt如果你打算用浏览器兜底(翻页受限时自动切到真实浏览器滚动采集)或自动获取 Cookie,再补一句pip install playwright和python -m playwright install chromium。
第二步:拿到 Cookie 通行证
Cookie 是浏览凭据,相当于平台确认「你是已登录状态」的通行证,没有它接口不吐数据。项目给了三条路:配置里写cookies: auto让工具自动开浏览器引导登录(推荐,省心且不易填错);或者从浏览器开发者工具整串复制粘贴进配置;再或者按msToken、ttwid等键值对逐字段填写。也可以单独跑一次python -m tools.cookie_fetcher --config config.yml,登录后回车,凭据自动写回配置。
第三步:写一份最小配置
配置文件是告诉工具「下哪个链接、下多少、用多快」的唯一入口。新建config.yml:
link: - https://www.douyin.com/user/目标博主ID # 主页链接 path: ./Downloaded/ mode: - post # 下载该博主发布的全部作品 number: post: 50 # 最多 50 条,0 表示不限 thread: 5 # 并发数 retry_times: 3 # 单条失败重试次数 cookies: auto # 自动获取并刷新 Cookie第四步:执行并观察进度
python run.py -c config.yml命令行会实时刷新每个任务的进度条,跑完自动汇总成功 / 失败 / 跳过数量。看到结尾统计数字,第一次抖音批量下载就跑通了。
看懂能力边界:哪些抖音链接喂得进去
| 输入形态 | 用途 |
|---|---|
/video/视频ID | 单条短视频,无水印优先 |
/note/图文ID | 图文笔记 |
/collection/或/mix/合集ID | 整个合集 |
/music/音乐ID | 使用该原声的所有作品 |
/user/主页ID | 主页批量下载,mode可选post/like/mix/music |
v.douyin.com短链 | 自动解析后按类型下载 |
live.douyin.com/直播间 | 直播实时录制(FLV/HLS) |
collect/collectmix模式 | 当前登录账号的收藏夹内容,须单独使用,不能与其他模式混用 |
链接解析与下载器的装配逻辑在 core/ 里按类型自动匹配,你不需要手动指定下载器。识别不了的链接会明确报错并终止该任务,不会闷头跑空——这是它和「半吊子脚本」最大的差别:边界清晰。
直播也能录
把live.douyin.com/房间号写进link,再配live段(如max_duration_seconds: 3600表示最长录 1 小时,0则录到主播下播),FLV 文件落在Downloaded/{作者}/live/下并附直播间元数据快照;下播或中断时已录的字节都会保留,不用人守着。
不想敲命令?还有图形化工作台
仓库附带桌面客户端 Douzy,共享同一套后端:粘贴抖音链接即可发起下载,任务中心里能看进度、重试失败项、一键打开目录。
用好三个进阶开关:增量、命名、限速
🔁增量同步:每天只追新帖适合谁:跑定时任务、做长期素材库或账号监控的人——博主更了 3 条,你不想把已有 100 条全重下一遍。 怎么配:开启数据库并给对应模式打开增量开关:
database: true # 用 SQLite 记录下载历史 increase: post: true # 只下载新增作品收益:每下一条作品,它的aweme_id、作者、时间、路径就写进 storage/database.py 管理的数据库,再结合本地文件名双重去重;定时任务凌晨跑,旧的绝不动,带宽和磁盘都省下来。要强制重下某条,删掉本地文件即可(数据库有记录但文件缺失时视为需重新下载)。
🏷️命名模板与时间窗口:让文件按你的规则落地适合谁:重度归档用户、做年度盘点或时间段研究的人。 怎么配:filename_template支持{date}{title}{id}{author}{like_count}等变量组合,比如filename_template: "{like_count}赞_{date}_{title}_{id}"(模板必须含{id}防重名);folderstyle: true让每个作品独立子文件夹;author_dir: nickname_uid让作者目录既直观又不重名;start_time: "2024-01-01"配end_time则只圈定时间段内的作品。 收益:日期取的是作品发布时间而非下载时间,隔半年备份,归档仍按时间线排列;配合number的数量上限,能精确圈定样本范围而不是全量拉取。
🎚️并发、重试与限速:给任务配一个安全节奏适合谁:批量大、网络波动多、容易被限频卡住的人。 怎么配:三个配置项直接控制节奏——thread(并发数,默认 5)、retry_times(默认 3 次,按 1s / 2s / 5s 指数退避)、rate_limit(请求频率,默认每秒 2 个请求,且带随机抖动)。 收益:网络一般时thread保持 5 左右最稳,盲目拉高并发反而更容易触发风控;被限速时优先降rate_limit而不是降并发。队列、限速、重试三个组件都在control/目录下,行为可预期。
起飞前检查单:常见翻车与对策
- 🍪现象:接口返回未登录或风控提示。原因:Cookie 失效。对策:可交互环境下工具会检测登录态并自动开浏览器重新登录后重试;服务器定时任务这类非交互环境,手动重跑一次
python -m tools.cookie_fetcher即可。 - 📉现象:主页只能抓到 20 条左右。原因:接口翻页被风控截断。对策:确认
browser_fallback.enabled: true,它会切到浏览器模式滚动采集作品 ID 再补全详情;headless: false时弹窗出现,手动完成验证再关。 - ⏱️现象:个别作品下载失败。原因:作品被删、设为私密或网络中断。对策:工具默认跳过失败项跑完其余任务,日志里留有原因;加
--verbose可看完整输出定位。 - 📅现象:文件名日期不是今天。原因:命名优先取作品发布时间,字段缺失时才回退到当天日期并写日志告警,属预期行为而非 bug。
- 🚦边界:本项目定位是个人学习、研究分析与内部资料整理,不适合商业性分发或侵权再传播。请保留默认的限速与并发上限,不要自行去掉限速逻辑去冲接口;下载内容注意标注来源,遵守平台内容协议。
今天就能动手的四步
- 克隆仓库装好依赖,用
cookies: auto走通一次自动登录; - 拿一个你关注博主的主页链接,跑通上面那份最小配置;
- 加上
increase增量开关和start_time/end_time时间窗口,让任务只取你要的; - 交给系统定时任务,每天早上起来看汇总。
四步之后你会发现,开头那个「按作者分好层、每条作品带全套元数据」的目录结构,已经替你把整理工作做完了——剩下的时间,留给真正需要动脑的部分。
【免费下载链接】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),仅供参考