抖音无水印下载工具 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
从"手动存图式"收藏,到挂机式批量归档
想象一下这个场景:你盯上某位创作者已经半年了,他每周稳定更新,你早就想把他全部内容存到本地硬盘。于是你打开他的主页,点进每条作品、截图保存封面、再想办法把视频抠出来——干到第 20 条的时候,手酸了,进度条还停在 15%。
其实这件事完全可以交给程序。开源项目douyin-downloader就是一个命令行优先的抖音无水印下载工具:直接对接抖音接口抓取原始视频文件,跳过水印版本,按码率自动挑最高画质;一个作者主页链接进去,作品、合集、音乐、点赞列表可以批量拉出来,配合 SQLite 去重,断点之后接着跑也不会重复下载。
Douzy 桌面端:勾选「作品 / 喜欢 / 音乐」等批量任务类型后一键提交(CLI 用户可跳过桌面端,全部流程用终端完成)
先说清楚它替你省下的三笔账
- 画质不再打折:抖音接口会为每条视频返回
bit_rate多档码率,工具默认挑最高转码档;设置video_quality: original还会探测上传原片,比最高转码档大就直接下原片。 - 一个链接顶一百次粘贴:
mode支持post / like / mix / music / collect / collectmix六种模式自由组合,一个主页 URL 就能成批拉取,number里填0即全量。 - 重复劳动归零:开启
database后每条作品记入dy_downloader.db,再叠加increase增量开关,已下载过的内容直接跳过,中断重跑只补缺的那部分。
简单说:以前"收藏一个主页"是按小时计的工程,现在是一条命令的事。
能力拆解:按你的任务目标对号入座
不按功能清单罗列,直接按"你想干什么"分组,每组对应 config.example.yml 里真实存在的开关。
目标一:只存一条作品(最轻量的用法)
- 粘贴即下:
v.douyin.com/...短链、作品页、图文笔记链接都能直接解析,见 core/url_parser.py。 - 画质可选:
video_quality支持highest(默认)、original、lowest和1080p、720p等指定分辨率,匹配不到自动降级到最接近档位。 - 附带产物按需开:默认只存视频本体;
cover、music、avatar、json四个开关各自控制封面、原声、头像、元数据。
目标二:批量整理一个作者(主力用法)
- 多模式组合:
mode: [post, like, mix, music],各模式数量上限在number里单独设。 - 时间圈选:
start_time/end_time按YYYY-MM-DD圈定区间,只收这段时间的内容(结束日期含当天)。 - 目录自动分层:
folderstyle: true时按「作者 → 模式 → 日期_标题」建目录;命名可用filename_template自定义,变量见 utils/naming.py。 - 增量跟踪:
increase各项置true时跳过已下载项,适合长期盯一个高频更新的账号。
目标三:把下载能力变成数据源(进阶玩法)
- 评论采集:
comments.enabled: true后每个作品额外生成*_comments.json,include_replies决定是否带二级回复。 - 热榜与搜索:
python run.py --hot-board 30拉热搜榜前 30 条,python run.py --search "关键词" --search-max 50按关键词搜作品,结果都以 JSONL 落盘。 - 直播录制:
link指向live.douyin.com或/follow/live/链接时进入录制,live.max_duration_seconds: 0表示录到主播下播。 - 语音转写:
transcript.enabled: true后调用转写 API(默认gpt-4o-mini-transcribe)把视频语音转成txt/json文本,需要自备OPENAI_API_KEY。
实战:安装 → 配置 → 跑通第一次下载
整个路径四步,全部命令可以直接复制。
第 1 步:拉代码、装依赖
要求Python 3.9+(Windows / macOS / Linux 均可):
git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader pip install -r requirements.txt浏览器兜底(翻页验证时用)需要 Playwright,一并装上:
pip install playwright python -m playwright install chromium第 2 步:复制配置,填好链接
cp config.example.yml config.yml打开config.yml,把link换成目标作者的主页地址,其余按下面的最小集改:
link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx path: ./Downloaded/ mode: - post number: post: 0 # 0 = 全量;填 50 就只下 50 条 thread: 5 # 并发下载线程数 video_quality: highest database: true # SQLite 去重,默认开启 increase: post: true # 跳过已下载内容不想整段写的话,也可以只改config.example.yml里默认的post单模式——默认配置本身就能直接跑。
第 3 步:扫码获取登录态
抖音接口需要登录 Cookie。项目自带扫码工具,会拉起浏览器:
python -m tools.cookie_fetcher --config config.yml在弹出的浏览器里完成抖音登录,回到终端回车,Cookie 会自动写回config.yml的cookies字段(见 tools/cookie_fetcher.py)。
第 4 步:执行下载
python run.py -c config.yml终端里有进度条、成功/跳过/失败计数;中途Ctrl+C中断也没关系,已入库的作品下次自动跳过。想看详细日志加-v:
python run.py -c config.yml -v跑完去Downloaded/里验收,结构大致长这样:
Downloaded/ └── 作者昵称/ └── post/ └── 2026-02-07_作品标题_73xxxx/ ├── 73xxxx.mp4 # 无水印视频 ├── cover.jpg # 开启 cover 后生成 └── 73xxxx.json # 开启 json 后生成你的使用场景,对应哪种姿势
只存一两条:别碰配置,临时链接直接走命令行追加参数,不落盘任何配置改动:
python run.py -u "https://v.douyin.com/xxxx" -p ./Downloaded/长期追更:把
mode扩成post + mix + music全开,increase全部保持true,再配一个计划任务定期执行python run.py -c config.yml,每次只补新增内容。挂机的话开启notifications,providers支持bark/telegram/webhook三种推送(配置样例见 config.example.yml 的注释块)。接入自动化:
--serve一键启动 REST API 模式,先装依赖:pip install fastapi uvicorn python run.py --serve --serve-port 8000服务实现见 server/app.py,下载能力即可被你自己的脚本或小程序调用;想研究签名细节可以看 utils/xbogus.py 和 utils/abogus.py。
高频问题速查
Q1:Cookie 失效了,报错提示要登录?
重新跑一次扫码命令即可,登录态会覆盖写回配置:
python -m tools.cookie_fetcher --config config.ymlQ2:作品只抓到前二十几条就停了?
这是翻页触发了平台验证的常见表现。保持browser_fallback开着并切到可见窗口,验证出现时手动在浏览器里完成,别急着关:
browser_fallback: enabled: true headless: false max_scrolls: 240Q3:想强制重下某条作品,但一直显示"跳过"?
跳过来自双重去重:数据库记录 + 本地文件检查。把increase.post临时改为false(强制重下并原子覆盖当前筛选范围),或删掉对应文件后配合redownload_missing_files: true让它补下。
Q4:下载慢,怎么调?
先看thread(默认 5 并发,普通机器降到 3 反而更稳),再看rate_limit(默认每秒 2 个请求的限速),网络高峰期可以在proxy里填代理错峰。三者都在 config.example.yml 中,改完即生效。
现在就可以跑起来
把config.example.yml复制一份、扫一次码、执行python run.py -c config.yml,你离"整个主页一键归档"就这三条命令的事。最后照例提醒一句:请只下载自己有权限访问或用于个人合理使用的内容,尊重创作者版权与平台规则,本工具不适用于商业传播。
【免费下载链接】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),仅供参考