如何用 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 是一个免费开源的抖音批量下载工具:给它一个链接加一份 YAML 配置,就能得到归档到本地的无水印下载结果——视频、封面、原声,并内置重试、SQLite 去重和浏览器兜底。想长期存档自己或他人抖音内容的个人用户,正适合用它做"配一次、长期跑"的下载管线。开始之前先说清现状,下面的分流表会直接把你导向对应小节。
先坦白风控现状:2026 年 8~9 月起,抖音 Argus 门禁拦截了 CLI 的大部分直连下载接口,单个视频/图文、合集、音乐、点赞/收藏类请求都会返回 403。以 2026-09-14 的实测为准,直播间、热搜榜、关键词搜索、评论列表与用户资料仍可直连;主页作品翻页只剩浏览器兜底一条路,是否生效尚未经该门禁实测,以 README.zh-CN.md 为准。桌面版 Douzy 通过内置登录窗口代发请求,不受影响。所以:以单条下载为主的用户,优先看桌面版;要录直播、导热搜数据、或长期抓主页的,继续看 CLI。
先看分流表,找到你需求对应的小节
这张表回答"我现在想干的事该看哪一节、结果落在哪里"。
| 你的需求 | 看哪一节 | 结果落在 |
|---|---|---|
| 只存几条视频 / 图文 / 合集 | 跑通单条作品的下载 | Downloaded/作者名/下的无水印文件 |
| 长期归档某个博主主页 | 把博主主页变成本地档案库 | Downloaded/作者名/post/ |
| 录制一整场直播 | 把整场直播存成 FLV 文件 | Downloaded/作者名/live/ |
| 只要数据、不要文件 | 把环境装好(冒烟测试命令) | Downloaded/hot_board/、Downloaded/search/的 JSONL |
如果你只是想存几条内容,装好环境、跑通单条就够了;要做长期存档,主页那一节的去重和增量才是重点。
把环境和登录态一次装好
这一节解决"从一台干净的机器到第一次运行成功"。环境要求只有 Python 3.8+,macOS / Linux / Windows 都支持。
先克隆代码并装依赖,装完终端无红色报错即就绪:
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最后一行多装了浏览器内核,是浏览器兜底和自动抓 Cookie 用的,别省。登录态是跑通前的关键:抖音大量内容只对登录用户开放,Cookie 没配好,请求基本都会失败。项目自带抓取脚本,不需要手动复制任何字符串:
python -m tools.cookie_fetcher --config config.yml浏览器会弹出,扫码登录抖音,回到终端按 Enter,Cookie 自动写进配置文件。如果弹出后卡住,先确认python -m playwright install chromium是否执行成功。
装好后用热搜导出做一次冒烟测试——这个接口目前可直连,是确认网络和 Cookie 都正常的好办法:
python run.py --hot-board 30 -p ./Downloaded成功标志:Downloaded/hot_board/下出现一个带时间戳命名的 JSONL 文件,内容就是热搜词条。想按关键词搜作品的话,python run.py --search "猫咪" --search-max 100 -p ./Downloaded也能跑,结果落在Downloaded/search/,可直接用 pandas 或 jq 处理。
跑通单条作品的下载
这一节解决"一条视频、图文、合集或音乐,如何一次落到本地"。先把带注释的模板 config.example.yml 拷成config.yml(每个字段都有中文注释),然后只改link:
link: - https://www.douyin.com/video/7604123456789012345 path: ./Downloaded/运行python run.py -c config.yml。成功标志:终端出现完成统计,Downloaded/下多出以作者名命名的目录,里面是无水印 mp4。命令行参数可以临时覆盖配置,比如python run.py -c config.yml -u "链接" -t 8,-u追加链接、-t调并发,不用改文件。
但要直说:自 2026-09-14 起,单视频/图文的直连接口已被风控拦截,这条路径在 CLI 里大概率失败。这一节留给你了解配置方式——风控策略一旦松动,它是最先恢复的路径;当前以单条下载为主,建议直接用桌面版 Douzy。
把博主主页变成本地档案库
这一节解决"如何把一个博主的主页抓全,并且重跑不产生重复文件"。这是抖音批量下载里最重、也最值钱的用法:
link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx mode: - post number: post: 50 # 只抓 50 条作品,0 = 不限 increase: post: true # 重跑时跳过已下载的作品 database: true # 去重依赖数据库记录跑完后该博主的作品会按作者名/post/归档。重跑判断是"数据库记录 + 本地文件"双重检查:只删文件会触发重下,只删库记录则跳过,两者都清才会从零来。想重下某一条,删掉对应文件夹再用 sqlite3 删掉库中记录,命令见 README.zh-CN.md 的"重新下载"一节。
注意:post、like、mix、music四种模式可以混写,跨模式按 aweme_id 自动去重;collect/collectmix(自己账号的收藏)必须单独使用,不能和前面四种混写,且相关接口 2026-08 起已被风控拦截,收藏类内容目前更适合用桌面版处理。
翻页被风控截断是这个场景最常见的坑:保持browser_fallback.enabled: true、headless: false,浏览器弹窗出现后手动过一遍验证码,别急着关窗口;也可以用start_time/end_time按YYYY-MM-DD分段抓取,绕过单次翻页上限。
把整场直播存成 FLV 文件
这一节解决"不开录屏软件,如何把一整场直播留下来"。直播接口(webcast)在可直连名单里,但官方标注 experimental,极端场景可能有兼容问题,重要场次建议同时人工备份一份。直播间链接直接填进link:
link: - https://live.douyin.com/123456789 live: max_duration_seconds: 3600 # 0 = 录到主播下播录制的 FLV 存在Downloaded/作者名/live/下,附带一份*_room.json房间元数据快照。录满时长、主播下播或你手动 Ctrl+C 时,已录下的字节都会保留,.tmp文件自动提升为正式文件,不会白跑。
行为对照:改哪个字段会发生什么
这张表只列你真的会去动的项,其余保持默认即可。
| 改动的字段 | 会发生什么 | 什么时候调 |
|---|---|---|
number.post等 | 每种模式的数量上限,0= 不限 | 测试阶段设 1~5,跑通后放开到 0 |
database+increase | 重跑自动跳过已下载内容 | 长期存档保持开启,这是去重双保险 |
thread | 并发下载数 | 从 5 起步,稳定后再提到 8 |
retry_times | 失败重试次数,按 1s/2s/5s 退避 | 给 3,配合限速应对网络抖动 |
video_quality | 默认取最高转码档;original额外探测原画 | 追求最高画质且能接受每条多一次探测请求 |
start_time/end_time | 按发布时间过滤,YYYY-MM-DD | 翻页被风控截断时用来分段抓 |
browser_fallback.headless | false时弹窗可手动过验证码 | 主页翻页被截断时必开 |
下载还有 Content-Length 完整性校验,半截文件会自动清理重试,这点不用操心。
出问题先查这张表
这张表收的是 4 类高频故障,按现象对号入座。
| 现象 | 可能原因 | 处理办法 |
|---|---|---|
| 单视频/图文请求 403,提示 Blocked by Argus | 风控门禁切断 CLI 直连(2026-09-14 起) | 不是配置问题,以 README 为准;单条下载改用桌面版 Douzy |
| 主页只抓到 20 条左右 | 翻页触发风控 | browser_fallback保持开启、headless: false,弹窗里手动过验证码;或用start_time/end_time分段 |
| 突然大面积失败 | Cookie 过期 | 重跑python -m tools.cookie_fetcher --config config.yml更新登录态 |
| 硬盘堆出重复文件 | 没开去重和增量 | database: true+increase: true,重跑即按本地文件跳过 |
| 进度输出很吵 | 日志未静默 | progress.quiet_logs: true;排查时临时加-v或--show-warnings |
桌面版 Douzy 基于同一套后端,目前处于内测期。它用内置登录窗口代发请求,上面第一行的风控拦截对它不适用:粘贴链接即可开始,支持关注同步、收藏夹同步与任务中心。任务中心可以直接重试失败项并打开输出目录,长任务跑完后收尾很省事:
"收藏与喜欢"界面可同步当前账号的收藏合集并整批下载,正是 CLI 收藏接口被拦截期间的替代方案:
开始前的五个省心事
- 先用单条链接或热搜导出验证 Cookie 和网络,再上主页批量;测试阶段把
number.post设成 1~5,跑通后再放开到 0。 database和increase保持常开;删了文件就预期会重下,这不是 bug。- 并发从 5 起步,网络稳定再提到 8。一上来拉满容易触发风控,反而比慢一点更慢。
- 登录态失效是常态,把它当成定期维护项而不是故障:大面积失败时重跑一次 cookie_fetcher 即可。
- 不同任务分配置(
config_test.yml、config_daily.yml),别共用一份;长任务加上notifications推 Bark / Telegram / Webhook,跑完手机就能收到。
本项目仅供技术学习与个人数据管理使用,请合法合规使用,尊重内容版权与创作者权益。
【免费下载链接】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),仅供参考