抖音批量下载:从主页作品到BGM全量存档的实操手册
【免费下载链接】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 去重加磁盘增量检查,已下载的作品不会重复抓取。
手动保存一个创作者的几十条作品,要反复打开页面、等待加载、逐个重命名,耗时且容易漏。文件命名混乱后,想找某条具体内容基本靠翻。
🎯 能拿到什么:抖音作品批量下载的资源清单
- 单个视频:
/video/{aweme_id}或 v.douyin.com 短链,默认挑无水印源 - 图集:
/note/、/gallery/链接,图片逐张保存 - 合集:
/collection/、/mix/链接,整批抓取 - 音乐原声:
/music/链接,优先直取音频,失败回退到关联作品 - 主页作品:
/user/{sec_uid}链接,按 post / like / mix / music 模式抓取 - 收藏夹内容:登录 Cookie 下抓 collect(收藏夹)与 collectmix(收藏合集)
- 直播录制:live.douyin.com 链接,FLV/HLS,中断保留已录部分(实验特性)
- 评论:每个作品生成
*_comments.json,可选二级回复 - 附带资源:封面、音乐 mp3、头像、元数据 json,均可单独开关
- 热搜与搜索:
--hot-board、--search输出 JSONL 文件 - 转写:可选,调用 OpenAI Transcriptions API 生成 txt/json 文稿
🚀 从零到跑通:十分钟配好抖音下载工具
安装抖音下载工具依赖
克隆仓库装好 Python 依赖;浏览器兜底和自动抓 Cookie 还需要 Playwright 与 Chromium。
git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader pip install -r requirements.txt pip install playwright && python -m playwright install chromium生成抖音下载配置文件
仓库自带的 config.example.yml 是完整模板,复制一份后只改你要的字段。
cp config.example.yml config.yml下面是最小可运行配置:一个主页链接、输出目录、抓取模式。Cookie 由下一步自动回填,不用手写。
link: - https://www.douyin.com/user/YOUR_SEC_UID path: ./Downloaded/ mode: - post thread: 5三步拿到抖音 Cookie
工具会弹出一个浏览器窗口,你在窗口里登录抖音,回终端按 Enter,Cookie 自动写回 config.yml。
python -m tools.cookie_fetcher --config config.yml启动抖音批量下载任务
用配置文件直接跑;也可以用-u临时追加任意链接,-t指定线程,-p指定输出目录。
python run.py -c config.yml单条视频临时下载,不改配置文件:
python run.py -c config.yml -u "https://www.douyin.com/video/7604129988555574538" -t 8 -p ./Downloaded跑完后文件落在Downloaded/作者名/post/2024-02-07_标题_aweme_id/下,目录名带日期和作品 ID,方便回溯。
🧩 三个工作流:按角色用抖音批量下载
如果你是短视频创作者:竞品素材归档
- 把 3~5 个竞品主页链接全部填进
link,一次跑完 mode: [post]配number.post: 50,只抓近期 50 条- 打开
cover与json,封面和元数据一起存,方便做分析 - 文件自动按
Downloaded/作者名/post/归类,直接进剪辑分析流程
如果你是运营:关注列表定期存档
- 桌面端登录账号后,在账号内容页同步关注与收藏列表
- 关注列表里标记有新作品的创作者,点「下载」直接开跑
- 命令行定时任务把
link指向各账号,increase.post: true只抓增量 notifications配 Bark 或 Telegram,成功失败都推送到手机
如果你是个人用户:离线收藏库
mode: [like, mix],把点赞和收藏的合集内容拉下来- 打开
music与cover,原声和封面一并保存 - 保持
folderstyle: true,文件按作者和模式自动分文件夹 - 每周跑一次,增量开关保证只下载新内容
⚙️ 按需调参:抖音批量下载配置速查表
| 参数 | 作用 | 推荐值 |
|---|---|---|
thread | 并发下载线程数 | 5 |
database | SQLite 记录开关,配合本地文件做去重 | true |
increase.post | 增量下载:磁盘已有主文件则跳过 | true |
start_time/end_time | 时间过滤,格式YYYY-MM-DD | 留空或填实际日期 |
video/music/cover/json | 资源类型开关,控制附带产物 | 按需,默认仅 video |
browser_fallback.enabled | API 翻页受限时开浏览器兜底,支持手动过验证 | true |
notifications.enabled | 完成后 Bark / Telegram / Webhook 推送 | true |
一般场景 3~5 个线程就够,继续加线程反而更容易触发风控。如果每次只能抓到 20 条左右,优先检查browser_fallback是否开启、浏览器弹窗里的验证有没有做完。
🏗️ 底层怎么跑:抖音下载工具架构速览
douyin-downloader/ ├── run.py # 入口:解析 CLI 参数、加载配置 ├── core/ # 下载引擎:url_parser、api_client、各下载器 ├── control/ # 队列管理、速率限制、重试处理 ├── storage/ # SQLite 数据库与文件管理 ├── auth/ # Cookie 与 ms_token 管理 ├── cli/ # 命令行流程与进度显示 ├── config/ # 配置加载与默认值 └── tools/ # cookie_fetcher 等辅助工具- 重试:失败按指数退避重试(1s/2s/5s),
retry_times默认 3 次 - 去重:SQLite 记录加本地文件双检查,同一
aweme_id不会下两次 - 增量:
increase.*只查磁盘主文件,存在即跳过、缺失才重下 - 完整性:Content-Length 校验文件大小,不完整文件自动清理
⚖️ 命令行 vs 桌面端:选抖音下载客户端
| 维度 | 命令行版 | 桌面版(Douzy,Beta) |
|---|---|---|
| 安装难度 | 需 Python 环境与依赖 | 下载构建包即可运行 |
| 配置灵活度 | 高,yaml 全字段加 CLI 参数 | 中 |
| 界面形态 | 终端进度条 | 图形界面 |
| 批量能力 | 支持,多链接写进配置 | 支持,多链接队列 |
| 进度显示 | Rich 进度条 | 任务中心状态卡片 |
| 关注同步 | 不支持 | 支持 |
| 适合人群 | 开发者、脚本与定时任务 | 普通用户 |
普通用户用桌面版 Douzy,粘贴链接即可开始,还能同步关注列表。开发者与定时任务用命令行版,所有字段可控且方便接脚本。两者共用同一套下载引擎与去重数据库,下载产物互相兼容。
🛠️ 卡住了?抖音下载排错速查
只抓到约 20 条就停了
原因:API 翻页被风控,浏览器兜底没开或验证没做完。
- 配置里设
browser_fallback.enabled: true、browser_fallback.headless: false - 重跑
python run.py -c config.yml,弹窗出现后手动完成验证 - 等页面滚动完再关窗口,不要提前关闭
Cookie 过期下载失败
原因:ttwid、msToken 有有效期,过期后接口返回登录校验。
- 重跑
python -m tools.cookie_fetcher --config config.yml重新登录抓取 - 若提示 Playwright 缺失,先执行
pip install playwright && python -m playwright install chromium
转写文件没有生成
原因:transcript 开关未开,或下载的是图集(只有视频会转写)。
- 确认
transcript.enabled: true,且response_formats含txt - 确认
OPENAI_API_KEY已 export,重跑下载任务
进度输出太吵
原因:progress.quiet_logs被设成了 false。
- 在 config.yml 里设
progress.quiet_logs: true - 调试时临时加
-v或--show-warnings查看完整日志
收尾:启动命令与反馈入口
python run.py -c config.yml -u "https://www.douyin.com/user/YOUR_SEC_UID" -t 5仓库即上手章节里的 clone 源,兼容问题与功能请求走仓库的 Issues 入口提交。
遇到平台接口变更或风控问题,把 config.yml 与报错日志一起提 Issue,通常 24 小时内回复。
【免费下载链接】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),仅供参考