抖音批量下载工具实测:5 条命令跑通无水印采集,省掉半天手动活
【免费下载链接】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,抖音批量下载、无水印,支持用户主页整页抓取、图集、合集与原声。这篇带你走通完整链路:从装环境到批量采集。
它到底能替你干哪些活
先看射程,10 秒判断它是不是你要的东西:
| 场景 | 它能干什么 |
|---|---|
| 单个视频 / 图文 | /video/、/note/链接直接贴,自动挑无水印、最高码率的源 |
| 单个合集 / 原声 | 按合集或原声整组抓,原声文件缺失时回退到该音乐下首条作品 |
| 用户主页批量 | post/like/mix/music四种模式任选组合,发布、点赞、合集、原声一次端齐 |
| 直播录制 | live.douyin.com房间边播边录,主播下播已录部分照样保留 |
| 评论 / 热搜 / 关键词搜索 | 导出 JSON、JSONL 文件,留给你做二次分析 |
判断标准只有一条:凡是能复制出链接的,基本都在射程内,短链(v.douyin.com/...)还会自动解析,不用你先手动跳转。
先花 2 分钟把环境搭起来
要求 Python 3.8+,Windows / macOS / Linux 都能跑,5 条命令就位:
git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader把项目源码拉到本地。
cd douyin-downloader && pip install -r requirements.txt进项目目录,装齐全部 Python 依赖。
cp config.example.yml config.yml复制一份配置,后面所有改动都发生在这份文件上,默认值定义在 config/default_config.py。
python -m tools.cookie_fetcher --config config.yml弹出一个浏览器窗口,登录抖音后回终端按回车,Cookie 自动写进配置,全程不碰代码,实现见 tools/cookie_fetcher.py。
最后验证一下:
python run.py --version看到版本号输出就说明装好了。Cookie 偶尔会过期,遇到了重跑上面那条 cookie_fetcher 命令就行,别慌。翻页被风控卡住、需要浏览器兜底时再补装,不急:
pip install playwright && python -m playwright install chromium最小可行路径:一条命令跑通第一个任务
配置就绪后,下载单个视频就一行:
python run.py -c config.yml -u "https://www.douyin.com/video/7604129988555574538"-c:指定配置文件,缺省就是config.yml-u:追加要下载的链接,可以重复传入多条- 链接由工具自动解析,挑无水印且码率最高的视频源开下
终端里会出现 Rich 进度条和"下载统计"面板,成功、失败、跳过三个数实时刷新,下没下成一眼就知道。到这里你已经拿到了第一条无水印视频。
不想敲终端的话,桌面端的链接下载工作台是同一套引擎:粘贴链接自动识别为单个作品,点下载即开始。
主力场景:把重活交给它
真正的重活是整页采集用户主页。想归档某个博主的全部内容,配置这样写:
link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx path: ./Downloaded/ mode: - post - like number: post: 50 like: 0 thread: 5 increase: post: true逐字段说:
link:要抓的用户主页链接,可以列多个mode:抓什么,post发布作品、like点赞作品、mix合集、music用过的原声number:每个模式抓多少条,0表示不限量thread:并发数,默认 5increase:增量开关,每次运行只补新作品,依赖数据库记录
跑python run.py -c config.yml,多个任务并行时每条的进度和耗时都会滚动刷新。跑完的文件自动按"作者 → 模式 → 日期+标题"分层落盘:
Downloaded/ └── 作者名/ ├── post/ │ └── 2024-02-07_作品标题_aweme_id/ │ ├── ...mp4 │ ├── ..._cover.jpg │ ├── ..._music.mp3 │ └── ..._data.json └── like/桌面端任务中心里,每条批量下载任务的成功、失败件数与完成状态一目了然,还能直接打开目录、重试失败项。
文档一笔带过、实际很顶的两个细节:
- 跨模式自动去重:同一作品既在"发布"里又在"合集"里出现,不会下第二遍,时间和流量都省
- SQLite 双重去重:数据库记录 + 本地文件扫描双保险,换电脑、挪文件夹它也认得"这个下过了";失败按 1 秒、2 秒、5 秒节奏重试,下完还比对 Content-Length,不完整自动清理重下
去重与重试逻辑在 core/,数据库记录落在 storage/database.py。到这里,整个主页已经归档完毕。
装完之后的第一周,你会用到这些
- 热搜榜 / 关键词搜索:
python run.py --hot-board 30 -p ./Downloaded拉热搜快照,--search "关键词"找作品,结果都落 JSONL,做分析顺手 - 评论采集:
comments.enabled: true给每个作品生成*_comments.json,include_replies: true连二级回复一起拉 - 完成通知推送:
notifications.providers支持 Bark、Telegram、企业微信 webhook,人不在电脑前也知道进度 - 直播录制:丢一个
live.douyin.com房间链接,live.max_duration_seconds控制录制时长,主播下播已录内容保留 - 画质选择:
video_quality: original探测上传原片,探测失败自动退回最高转码档
命令行之外还有个桌面客户端Douzy(内测中):粘贴链接即开始、同步关注列表、可视化跟踪任务,不想敲命令的人等正式版即可。
关注列表里能看到哪些博主有新作品,支持备注、筛选,单条博主一键发起下载。
新手翻车现场:这几个坑我全替你踩了
只抓到 20 条就不动了?翻页风控。把browser_fallback.enabled: true、headless: false,浏览器弹窗出现时手动过一下验证,别急着关窗口。
Cookie 失效,下载全报错?Cookie 过期。重跑安装步骤里那条 cookie_fetcher 命令,一分钟的事。
想重新下载某个视频,却一直"跳过"?去重机制生效。先删掉本地Downloaded/下对应aweme_id的作品文件夹,再清数据库记录:
sqlite3 dy_downloader.db "DELETE FROM aweme WHERE aweme_id = 'xxx';"值不值得留在你的工具箱里
它和手动另存、在线解析站的差别就一条:去重、重试、分类、增量全包了,你只管复制链接和收素材。做竞品素材采集、博主档案沉淀、长期内容监控的人最对味,小团队和单人创作者都够用。现在花 10 分钟按上面跑一遍,第一条无水印视频落盘的那一刻,你就知道它值得留下来了。🚀
【免费下载链接】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),仅供参考