抖音批量下载工具 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 是一个抖音批量下载工具:粘贴链接后自动识别内容类型,批量下载无水印的视频、图集、合集与音乐,并用 SQLite 记录和进度条防止重复、漏下。全程只需一个 YAML 配置文件加一条命令。
🧭 项目速览
douyin-downloader 是一个 Python 命令行工具:读取 YAML 配置,把链接解析成"视频 / 图文 / 合集 / 音乐 / 主页 / 直播"等类型,再派发给对应下载器并发执行。它解决两件事——批量抓全(API 翻页受限时自动切换浏览器兜底,可人工过验证码)和不重复劳动(SQLite 数据库 + 本地文件双重去重,已下过的作品自动跳过)。
| 能力分组 | 支持范围 |
|---|---|
| 内容类型 | 单个视频、单个图文(/note、/gallery)、单个合集、单个音乐(原声)、用户主页、直播录制(FLV/HLS) |
| 主页模式 | post作品、like点赞、mix合集、music音乐,多模式可叠加且跨模式自动去重 |
| 收藏夹 | collect/collectmix:下载当前登录账号的收藏作品与收藏合集(需单独使用) |
| 工程质量 | 默认 5 线程并发、指数退避重试、2 请求/秒限速、Content-Length 完整性校验、Rich 进度条、Docker 部署 |
| 附加功能 | 短链自动解析、评论采集(JSON)、热搜榜/关键词搜索、完成后推送(Bark/Telegram/Webhook)、可选视频转写、时间范围过滤 |
🚀 跑起来
1. 环境准备
需要 Python 3.8+,macOS / Linux / Windows 均可:
git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader pip install -r requirements.txt如需浏览器兜底或自动获取 Cookie,再装 Playwright:pip install playwright后执行python -m playwright install chromium。
2. 登录获取 Cookie
python -m tools.cookie_fetcher --config config.yml会打开浏览器,扫码登录抖音后回到终端按 Enter,Cookie 自动写入配置,无需手动复制。
3. 首次运行
参考 README 中的最小可用配置 写一个config.yml:填link、mode、number、path,然后:
python run.py -c config.yml命令行还可临时追加参数,如python run.py -c config.yml -u "视频链接" -t 8(临时指定链接和线程数),完整参数见 cli/main.py。
📋 典型任务
| 任务 | 一句说明 | 最小配置 / 命令 |
|---|---|---|
| 下载单个视频 | 支持/video/、短链v.douyin.com | link: ["https://www.douyin.com/video/..."] |
| 批量下载博主作品 | number.post: 0表示全量,先试 10 条更稳 | link: [主页链接]+mode: [post]+number: {post: 10} |
| 增量追新作品 | 只下数据库里没记录过的新作品,适合定期跑 | increase: {post: true}+database: true |
| 下载收藏合集 | 仅限当前 Cookie 登录账号,且不能与其他模式混用 | link: ["https://www.douyin.com/user/self?showTab=favorite_collection"]+mode: [collectmix] |
| 关键词搜索导出 | 不落盘媒体,结果存 JSONL 供筛选 | python run.py --search "关键词" --search-max 100 |
| 录制直播 | max_duration_seconds: 0录到下播,中断也保留已录字节 | link: ["https://live.douyin.com/房间号"] |
下载产物默认按Downloaded/作者名/post/发布日期_标题_aweme_id/组织,视频旁可附封面、原声、JSON 元数据,并追加一份download_manifest.jsonl清单。
⚙️ 参数调优
常调的几个参数速查(均为config.yml顶层键,默认值来自 config/default_config.py):
| 参数 | 推荐值 | 原因 |
|---|---|---|
thread | 5(网络好可试 8) | 默认 5 线程;过高容易触发限流,批量任务优先稳 |
retry_times | 3 | 指数退避重试(1s/2s/5s),覆盖临时网络抖动 |
video_quality | highest | 自动挑最高转码档;要原片改original,代价是每条作品多一次探测请求 |
rate_limit | 2 | 每秒请求上限,批量主页下载时不建议超过 2–3 |
start_time/end_time | YYYY-MM-DD | 只下载指定时间段内的作品,适合整理年度内容 |
🛠️ 排错速查
| 现象 | 大概率原因 | 处理 |
|---|---|---|
| 主页只抓到 20 条就停 | API 翻页触发风控 | 确认browser_fallback.enabled: true、headless: false,浏览器弹出后手动过验证,别急着关窗口 |
| 提示未登录 / 401 | Cookie 失效(一般 1–2 周过期) | 重跑python -m tools.cookie_fetcher --config config.yml,程序也会自动弹登录重试一次 |
| 删了文件却没重新下载 | 数据库里仍有记录(双重去重) | 删本地文件会自动触发重下;只想重下单个作品时再删对应数据库行 |
| 进度条重复刷屏 | 进度阶段日志未静默 | 保持progress.quiet_logs: true;调试时临时加-v查看 info 日志 |
| 个别作品一直失败 | 内容已删除 / 隐私 / 付费或 DRM 加密(如放映厅影视) | 查dy_downloader.db与清单文件定位;DRM 内容属能力限制,无法下载 |
🔌 进阶与集成
核心入口在 core/downloader_factory.py:URLParser.parse()解析链接类型后,DownloaderFactory.create()把video / user / gallery / collection / music / live派发给对应下载器;主页的多种下载模式则采用策略模式放在 core/user_modes/,由UserModeRegistry自动发现。
最简扩展思路:想支持一种新链接类型,只需写一个继承BaseDownloader的下载器,并在DownloaderFactory.create()里加一个分支即可;想给主页加一种新的抓取模式,则在core/user_modes/新建策略类实现base_strategy.py的接口,注册后即可在mode里选用。此外项目提供 REST API 服务模式(python run.py --serve --serve-port 8000,接口见 server/app.py),可直接嵌入自己的自动化流程:提交 URL 拿job_id,轮询任务状态即可。
✅ 上手清单
- 首次使用先跑
cookie_fetcher登录,别跳过鉴权 - 保持
database: true,让 SQLite + 本地文件双重去重生效 - 批量任务先把
number.post设成 10 验证流程,再改 0 全量 - 只追新内容时打开
increase.post: true,定期重跑同一配置 - 重新下载前先清理对应本地文件和数据库记录,二者缺一不可
写在最后
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
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考