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 是一个 Python 开源的抖音批量下载工具,可以无水印下载视频、图文、合集与音乐,并支持作者主页批量归档。它自带进度展示、失败重试和数据库去重,适合需要批量留存内容的创作者与研究者。
先看效果:如何批量下载抖音作者主页的最新作品
假设你要把某个作者主页最近 50 条发布作品归档下来,跑完后的最终效果是:
Downloaded目录下出现该作者的文件夹,作品按发布日期排在post/子目录里,每条作品一个独立子文件夹,里面的 mp4 就是无水印源文件(默认只保存视频本体,封面、音乐、头像开关默认关闭)。- 子文件夹命名形如
2024-02-07_作品标题_aweme_id,按日期前缀方便回溯。 - 顶层生成
download_manifest.jsonl下载清单;database: true时历史同时记入dy_downloader.db,下次运行自动跳过重复项。
倒推看只有 3 步:
- 把作者主页链接(
/user/{sec_uid}形式)写入配置的link,或直接用-u传入,并指定mode: [post]、number: {post: 50}。 - 准备一份有效 Cookie,否则分页与详情接口很容易被限制。
- 运行
python run.py -c config.yml,程序自动翻页、按数量截断,以默认并发 5 下载;单条失败按 1s、2s、5s 退避重试,最多 3 次。
上图是桌面版 Douzy(内测中)的任务中心截图(演示数据):每个任务的总数、成功与失败数直接可见,失败的项可以单独重试。
首次安装步骤:三步装好并跑通第一次下载
第一步,准备环境。需要 Python 3.8+,macOS、Linux、Windows 均可:
git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader pip install -r requirements.txt第二步,初始化配置和 Cookie。复制示例配置,然后用内置的 Cookie 工具登录保存:
cp config.example.yml config.yml python -m tools.cookie_fetcher --config config.yml该工具位于 tools/cookie_fetcher.py,依赖 playwright,需先执行pip install playwright和python -m playwright install chromium。你可以按提示在弹出的浏览器里登录抖音网页版,回到终端按 Enter,认证信息会自动写回 config.yml,整个过程不到 1 分钟。
第三步,跑通第一次下载:
python run.py -u "https://www.douyin.com/video/7604129988555574538" -p ./Downloaded-u传下载链接,-p指定输出目录。这条链接是 README 中的示例视频,完成后到./Downloaded里就能看到 mp4。
核心能力速查表
| 能力 | 怎么用 | 在哪里配置 |
|---|---|---|
| 单视频 / 图文 / 合集 / 音乐 | 粘贴一条链接 | config.yml 的 link |
| 作者主页批量下载 | 主页链接加模式 | config.yml 的 mode |
| 时间与数量筛选 | 日期范围加上限 | start_time 与 number |
| 增量下载 | 只补新作品 | config.yml 的 increase |
| 评论采集 | 每作品输出 JSON | config.yml 的 comments |
| 浏览器兜底 | 人工过验证 | config.yml 的 browser_fallback |
主页下载有 post、like、mix、music 四种模式,你可以在mode里同时写多个(如post加like),一次抓取不同类型内容,同一作品跨模式自动去重;模式实现是策略模式,代码在 core/user_modes/。你也可以用--search "关键词"搜索作品、用--hot-board N导出热搜榜快照,结果都以 JSONL 落盘;下载完成后可配置 notifications 推 Bark、Telegram 或 Webhook 提醒。
同一套后端的桌面版(内测中):粘贴视频、主页或合集链接即可开始下载,截图使用演示数据。
常用配置项说明:mode、number、thread、video_quality
config.yml 里最常改的是下面这几项:
mode: [post, like] number: post: 50 thread: 3 video_quality: original- mode / number:mode 决定抓取的内容类型,number 给每个模式设上限,0 表示不限。改完会发生什么:本次任务只下载所列类型的作品,且每个模式不超过对应数量。
- thread:默认 5。改完会发生什么:并发下载数变化,网络差时调低到 3 可减少超时;请求速率另受
rate_limit(默认 2 请求/秒)约束。 - video_quality:默认
highest在转码档里挑最高档。改成original会发生什么:程序会探测上传原片,若比最高转码档大就下原片,每条作品多一次 10 秒超时的探测请求。 - start_time / end_time:格式
YYYY-MM-DD。改完会发生什么:只下载该发布区间内的作品,配合increase可以定时只补新内容。
常见问题解决:5 个避坑清单
| 症状 | 原因 | 一句话解法 |
|---|---|---|
| 只能抓到 20 条作品 | API 分页触发风控 | 保持browser_fallback.enabled: true、headless: false,弹窗出现后手动完成验证 |
| Cookie 失效、下载失败 | Cookie 过期 | 重跑python -m tools.cookie_fetcher --config config.yml重新登录 |
| 重跑任务不重新下载 | 数据库加本地文件双重去重 | 删掉本地作品文件夹及dy_downloader.db中对应记录后再跑 |
| 进度条刷屏、日志混乱 | 日志未静默 | 设progress.quiet_logs: true(默认开启,调试时才加-v) |
| 录好的 HLS 直播无法播放 | HLS 源只保存了 playlist 文件 | 录制结束后用 ffmpeg 把 playlist 合成为完整文件 |
浏览器兜底默认最多滚动 240 轮(max_scrolls: 240),验证窗口出现时不要急着关闭,等它把作品列表滚动完。
适用边界:这套批量下载工具适合谁、不适合谁
适合你,如果:
- 你需要批量归档某作者的发布、点赞、合集或音乐内容,并且会周期性重复执行;
- 你希望文件按作者和发布日期自动分目录,重复下载自动跳过;
- 你还想顺手导出评论、热搜榜、关键词搜索等原始数据。
不适合你,如果:
- 你想下载私密、好友可见或付费内容——工具基于公开接口和你的 Cookie,README 明确要求合法合规使用;
- 你想绕开风控高频抓取海量数据——默认 2 请求/秒的限速会让它明显变慢,并可能触发风控;
- 你只想存单个视频——手动长按保存可能比安装环境更快。
一句话总结:准备好 Cookie,把链接写进 config.yml,运行python run.py -c config.yml,剩下的去重、重试与增量跳过由程序处理。完整参数表在 README.zh-CN.md 里,模块层面的设计说明见 PROJECT_SUMMARY.md。
【免费下载链接】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),仅供参考