Douzy 3步跑通抖音批量下载:增量、元数据、转写一次配齐
Douzy 3步跑通抖音批量下载:增量、元数据、转写一次配齐
【免费下载链接】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
把创作者的作品一条一条存下来,费时费力;重复下载同一批作品,又浪费流量和磁盘。Douzy(douyin-downloader)是一个开源的抖音批量下载工具:贴一个主页链接,无水印视频批量落地,元数据、评论、背景音乐一并保存,下载记录进本地 SQLite 数据库。桌面版 Douzy 与仓库内的 CLI 共用同一套后端逻辑。
痛点清单
| 用户痛点 | Douzy 对应能力 |
|---|---|
| 逐条复制链接存不完 | 一个主页链接批量扫描作品,API 受限时浏览器滚动兜底 |
| 重复下载同一批作品 | SQLite 记录下载历史,增量模式只取新增 |
| 存完视频,作者、评论信息丢了 | 作品信息存 JSON,评论另存*_comments.json |
| 文件散落难检索 | 每个作品独立文件夹,命名模板、作者目录均可配置 |
| 视频里的口播内容搜不到 | 语音转写,输出 txt 与 json |
| 长任务跑完没人知道 | Bark / Telegram / Webhook 推送成功与失败 |
| 多账号内容混在一起 | 一个账号一份配置文件,数据库与目录隔离 |
3 步跑通抖音无水印下载
要求 Python 3.9+,Windows / macOS / Linux 均可。
第 1 步,获取代码并安装依赖(Cookie 工具和浏览器兜底依赖 playwright):
git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader python -m pip install -r requirements.txt playwright python -m playwright install chromium第 2 步,生成配置并登录拿 Cookie:
cp config.example.yml config.yml python -m tools.cookie_fetcher --config config.yml会弹出浏览器窗口,扫码登录后回到终端按回车,Cookie 即写入config.yml。Windows PowerShell 下用Copy-Item config.example.yml config.yml替代cp。工具源码见 tools/cookie_fetcher.py。
第 3 步,把config.yml里的link换成目标创作者的主页地址,运行:
python run.py -c config.yml配置自带示例链接可直接跑通;默认只下载 1 条作品(number.post: 1),数量按需调整。完整配置项以 config.example.yml 为准。Douzy 桌面版操作更短:粘贴链接、检测、提交任务,进度在任务中心实时显示。
🧩 能力拆解
5 种下载模式
结论:mode决定扫描主页的哪个列表,number给每个列表限数,0 表示不限。
mode: [post, mix] number: post: 10 mix: 0技巧:post / like / mix / music / collect对应作品、喜欢、合集、音乐、收藏夹五种列表,各模式的策略实现集中在 core/user_modes/。
让下载只跑新增内容
结论:每条已下载作品都记录在dy_downloader.db,增量打开后重跑会跳过已有作品。
increase: post: true redownload_missing_files: true技巧:想重下覆盖时把increase.post改为false即可,不用清库;磁盘上的主文件缺失时会自动补齐。
元数据、评论、音频一起存
结论:视频之外可保存封面、背景音乐和元数据,评论另存独立文件。
json: true cover: true music: true comments: enabled: true include_replies: true技巧:max_comments: 0表示不限量,高评论量作品建议设上限控制文件体积。数据库与文件管理的实现见 storage/。
语音转写
结论:开启后把视频音频转成文本,便于检索和摘要。
transcript: enabled: true model: gpt-4o-mini-transcribe response_formats: [txt, json]技巧:需设置OPENAI_API_KEY环境变量(可用api_key_env改名);output_dir留空则与视频同目录。
视频画质一行切换
结论:video_quality在 API 返回的多档码率里挑,默认highest(最高转码档)。
video_quality: original技巧:original会额外探测一次上传原片,原片更大才用,探测失败自动回落;省流量可用lowest或指定720p等分辨率。
文件自动归档
结论:folderstyle为每个作品建独立文件夹,模板控制文件与目录名,作者目录三档可选。
folderstyle: true filename_template: "{date}_{title}_{id}" author_dir: nickname_uid./Downloaded/ └── 创作者A_MS4wLjABxxxx/ └── 2024-06-15_教程片段_123456789/ ├── video.mp4 ├── music.mp3 ├── cover.jpg └── info.json技巧:模板必须含{id}防止重名覆盖;author_dir切换只影响后续下载,不会迁移旧目录。
API 受限时浏览器兜底
结论:接口请求被风控时,自动改用 Playwright 浏览器滚动页面抓取列表。
browser_fallback: enabled: true headless: false技巧:保持headless: false,弹出滑块验证时手动完成即可继续。
任务结束推通知
结论:任务结束推送结果,不必挂开终端等。
notifications: enabled: true on_success: true on_failure: true providers: - type: bark # 或 telegram / webhook技巧:on_failure: true让失败也推送,第一时间发现卡住的任务。
多账号并行
结论:CLI 一份配置对应一个账号,双账号就准备两份配置。
python run.py -c config_a.yml python run.py -c config_b.yml技巧:两份配置各自指向不同的path与database_path,下载内容与历史互不干扰。Douzy 桌面版则可在左侧导航切换平台并统一管理登录状态。
📋 实战场景
竞品追踪
- 背景:运营团队盯几个对标账号的更新节奏与选题,手动收藏慢且口径不一。
- 做法:
link填多个主页,increase.post: true、json: true、comments.enabled: true,用计划任务每天跑一次。 - 收益:每次只落新增作品和当时的评论快照,数据直接进 SQLite,省去人工归档。
课程备份
- 背景:某讲师的系列课程按合集分章节发布,需要长期留存。
- 做法:mix 模式整套下载,
start_time/end_time按季度切范围,开启 transcript。 - 收益:文件按模板分章节归档,转写文本可按关键词检索,相当于一份本地课程库。
个人收藏夹
- 背景:收藏夹持续膨胀,客户端内无法整体导出。
- 做法:
mode: [collect],打开cover与music,folderstyle: true。 - 收益:收藏按作者分文件夹,封面与原声都保留,重复运行不再下载已有条目。
🔧 避坑排查
- 现象:主页作品只抓到几条或为空 → ① 确认
browser_fallback.enabled: true且headless: false;② 在弹出的浏览器窗口里手动完成验证;③ 用python -m tools.cookie_fetcher --config config.yml重取 Cookie;④ 仍为空时加-v看详细日志。 - 现象:下载反复失败 → ① 把
thread从 5 降到 2;② 检查proxy是否可用;③ 调大retry_times。 - 现象:同名作品互相覆盖、同名作者目录合并 → 检查模板是否包含
{id};作者重名时设author_dir: nickname_uid。 - 现象:磁盘告急 → 用
number.post限条数;用start_time/end_time收窄时间范围;定期清理旧内容。 - 现象:提示登录失效或数据异常 → Cookie 过期,重跑 cookie_fetcher 命令即可。
数据库文件默认为dy_downloader.db(database_path可改路径),可直接用 sqlite3 查下载历史,定位漏掉的条目。
结尾
仅用于个人学习、研究与备份,请尊重创作者权益与平台规则。下载器的价值在于长期稳定地跑下去,而不是一次能下多少。
【免费下载链接】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),仅供参考