抖音批量下载工具 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 就是一个开源免费的命令行工具:贴一条主页链接,它就能把该作者的全部作品去水印批量抓下来,按作者和日期自动归档,重复内容还会自动跳过。实测下来,从装环境到跑通第一条下载,最快不超过十分钟。
一、能力全景:30 秒看懂它能干什么
先给你一张功能地图,确认它管不管你想干的那件事:
| 功能 | 适用场景 | 价值 |
|---|---|---|
| 单条视频 / 图文 / 合集下载 | 只想要某一条内容 | 自动挑无水印高清源,封面、音乐、元数据一并存下 |
| 作者主页批量下载 | 抓取某博主的全部作品、点赞、合集、音乐 | 一条命令替代几十次手动操作,支持跨模式去重 |
| 收藏夹批量下载 | 备份自己账号的收藏内容 | collect/collectmix模式一键拉取 |
| 短链自动解析 | 拿到的是v.douyin.com分享短链 | 不用手动还原真实地址 |
| 直播录制 | 固定场次的直播不想错过 | 主播下播或中断时,已录部分自动保留 |
| 评论采集 | 做用户反馈分析 | 按作品输出评论 JSON,可带二级回复 |
| 热搜榜 / 关键词搜索 | 选题调研、热点追踪 | 两条命令导出 JSONL,免手工翻页 |
| 去重与增量 | 长期定期同步关注作者 | 数据库 + 本地文件双重校验,老内容自动跳过 |
如果你不想敲命令行,它还有一个基于同一后端的桌面版 Douzy,粘贴链接就能开始下载,下面是它的抖音链接下载工作台:
二、5 分钟完成安装配置,跑通第一条下载
第 1 步:装环境
需要 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",再补一个浏览器内核:
pip install playwright python -m playwright install chromium验证方法:python run.py --version,能输出版本号就 OK。
第 2 步:准备 Cookie
抖音网页得先认得"你是谁"才肯给数据,Cookie 就相当于一张临时身份证。工具给了自动获取的方式,跑下面这条命令,浏览器弹出后扫码登录,回到终端按回车,Cookie 会自动写进配置文件:
cp config.example.yml config.yml python -m tools.cookie_fetcher --config config.yml验证方法:打开config.yml,确认cookies字段里ttwid、odin_tt等已有值。手动方式也留了口子——登录抖音网页版后从浏览器开发者工具复制整段 Cookie 粘进去即可。
第 3 步:下载第一条视频
配置里只需要动link字段:
link: - https://www.douyin.com/video/7604129988555574538 path: ./Downloaded/然后运行:
python run.py -c config.yml验证方法:Downloaded/下出现按"作者 / 日期_标题_作品ID"命名的子目录,里面有 mp4 文件;终端结尾会打印下载统计。嫌改配置麻烦的话,也可以临时用参数覆盖:python run.py -c config.yml -u "视频链接" -t 8 -p ./Downloaded,其中-u追加链接、-t并发数、-p保存目录。
三、批量下载:主页链接 + mode,关键参数对照表
单条只是热身,主页批量抓取才是主力用法。把作者主页链接贴进link,再用mode声明要抓的内容类型:
link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx mode: - post # 作者发布的作品 - mix # 作者的合集 number: post: 0 # 0 表示全量,不限量mode可以写多个,一次运行把几类内容都带回本地,同一个作品 ID 跨模式不会重复下载:
| 想要的内容 | mode 写法 | 数量控制 |
|---|---|---|
| 作者发布的作品 | post | number.post,0 为不限 |
| 作者点赞过的作品 | like | number.like |
| 作者整理的合集 | mix | number.mix |
| 作者用过的音乐 | music | number.music |
| 自己账号的收藏夹 | collect | number.collect(需登录 Cookie,且必须单独使用) |
| 自己账号的收藏合集 | collectmix | number.collectmix(同上) |
下载完成后目录会自动分层,结构大致如下:
Downloaded/ ├── download_manifest.jsonl └── 作者名/ ├── post/ │ └── 2024-02-07_作品标题_作品ID/ │ ├── 视频.mp4 │ ├── ..._cover.jpg # 开启封面下载时 │ └── ..._data.json # 开启元数据时 ├── like/ ├── mix/ └── music/每个作品独立一个子目录,文件名里带作品 ID,后面找素材、查重都非常方便。桌面版里"收藏与喜欢"页面也能对收藏合集做整集下载:
四、进阶场景:直播、评论、热搜按频率排序
直播录制(实验性功能)。把直播间链接填进link,配上时长上限即可挂机录制:
link: - https://live.douyin.com/123456789 live: max_duration_seconds: 3600 # 0 = 一直录到主播下播 idle_timeout_seconds: 30 # 空闲多久视为结束录制文件落在Downloaded/{作者}/live/下并附带直播间元数据 JSON。重点是:主播下播、网络断掉或你手动 Ctrl+C,已经录到的部分会自动从临时文件转正,不会丢。
评论采集。在配置里打开comments.enabled: true,每下载一个作品就会在旁边生成{日期}_{标题}_{作品ID}_comments.json;把include_replies设为true还能带上二级回复(请求量会多一些),max_comments可给每个作品设评论上限。做用户研究时,这类数据直接就能进文本分析流程。
热搜榜与关键词搜索。两条命令就能把榜单或搜索结果落成 JSONL 文件,存到Downloaded/hot_board/和Downloaded/search/下,做选题调研省掉大量手工翻页:
python run.py --hot-board 20 python run.py --search "关键词" --search-max 100账号内容同步。如果你用桌面版,"关注"页面可以把关注的博主列表同步下来,筛选有新作品的博主直接从列表下载:
五、长期使用心得:五个最常调的参数
用上一段时间后,你会发现决定体验的就是下面这几个参数,建议收藏这张表:
| 参数 | 默认值 | 建议设置 | 作用 |
|---|---|---|---|
thread | 5 | 家用网络 5~8 | 同时下载的任务数,开太高容易被限流 |
rate_limit | 2 请求/秒 | 保持默认 | 控制 API 请求频率,降低触发风控概率 |
increase.post等 | true | 定期同步设 true | 增量模式:本地已有主文件就跳过,只下新内容 |
filename_template | {date}_{title}_{id} | 按素材管理习惯改写 | 支持 date/author/title/id 等变量拼装命名 |
browser_fallback.enabled | true | 保持 true,headless设 false | 翻页被风控时自动切浏览器模式,可人工过验证码 |
补充两点原理:去重靠"数据库记录 + 本地文件名里的作品 ID"双重校验,所以删文件但没删数据库记录会触发重下,只删数据库不删文件则不会;video_quality除了默认的最高转码档,还可以设original去探测上传原片,代价是每条作品多一次探测请求。
六、排障速查表
| 症状 | 原因 | 解决 |
|---|---|---|
| 只能抓到约 20 条就停了 | 翻页触发了风控 | 确认browser_fallback.enabled: true且headless: false,在弹出的浏览器里手动完成验证,别急着关窗 |
| 突然大量下载失败 | 多半是 Cookie 过期 | 重跑python -m tools.cookie_fetcher --config config.yml重新获取 |
| 下载速度明显变慢 | 并发开太高被限流,或网络本身差 | 调低thread;必要时给proxy配置代理 |
| 想强制重下某条作品 | 去重机制拦截了它 | 删掉本地对应子目录,再用 sqlite3 从aweme表删除该作品 ID 的记录 |
| 进度输出刷屏 | 日志级别太高 | 保持progress.quiet_logs: true,需要调试时临时加--show-warnings |
收尾:把重复劳动交给程序
回到开头那个场景:整页作品手动保存的日子,现在可以翻篇了。按下面四步走,半小时内你能拿到第一批无水印素材:
- 克隆仓库、装依赖,跑通
python run.py --version; - 用
python -m tools.cookie_fetcher --config config.yml配好 Cookie; - 复制
config.example.yml为config.yml,填一条视频链接,跑通首次下载; - 换成作者主页链接加
mode: post,体验批量下载,之后按需打开增量模式做定期同步。
最后一句提醒:请只在合法合规的范围内使用本工具,尊重内容版权和平台规则,把它用于个人数据管理与技术研究。
【免费下载链接】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),仅供参考