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,它就开始批量下载:几分钟后作品的无水印视频、封面与原声全部落在本地文件夹。全程只需要 2 条命令加 1 份配置文件,视频源自动优先选择无水印版本,再按码率阶梯挑出最高清晰度。
功能速览:类型覆盖与稳定性设计
类型覆盖面广:单个视频、图文、合集、音乐(原声)都能下载,v.douyin.com短链会自动解析;主页批量下载支持 post/like/mix/music 四种模式,跨模式按 aweme_id 去重,同一作品不会重复落盘。
稳定性靠机制兜底:默认 5 线程并发、每秒 2 个请求限速、失败按 1s/2s/5s 指数退避重试;SQLite 与本地文件双重去重,Content-Length 对不上的不完整文件会自动清理并重下;主页翻页被风控卡住时可切换浏览器兜底,人工完成验证后继续采集。
下载之外还有配套动作:按作品采集评论(可含二级回复)、录制直播(主播下播时已录字节保留)、热搜榜与关键词搜索导出 JSONL、--serve起 REST API 服务、完成后推 Bark/Telegram 通知。桌面版 Douzy 还能同步当前账号的关注、收藏夹与喜欢列表。
最小可运行路径
环境与安装
要求 Python 3.8+,macOS/Linux/Windows 均可。克隆仓库并装依赖,3 行命令:
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两条命令。
首次运行
cp config.example.yml config.yml python -m tools.cookie_fetcher --config config.yml python run.py -c config.ymlcookie_fetcher 会打开浏览器登录页,登录抖音后回终端按 Enter,Cookie 即写入 config.yml。在link里填一条作品或主页链接、mode设为[post],run.py 直接开始下载。命令行还能用-u追加链接、-t改并发、-p指定输出目录,不必每次改文件。
配置文件参数速查
| 参数 | 默认值 | 作用 |
|---|---|---|
mode | [post] | post/like/mix/music;collect/collectmix 仅限当前登录账号且必须单独使用 |
number.post | 0 | 各模式数量上限,0 为不限 |
video/music/cover/json | video 开 | 附带资源开关,默认只存视频本体 |
video_quality | highest | original/highest/lowest,或指定 1440p~360p |
thread/retry_times/rate_limit | 5 / 3 / 2 | 并发数、重试次数、每秒请求数 |
start_time/end_time | 空 | YYYY-MM-DD 时间过滤 |
increase.post | true | 增量下载,只抓新作品 |
database/database_path | true / dy_downloader.db | SQLite 去重与下载历史 |
browser_fallback.enabled | true | 翻页受限时启用浏览器兜底 |
三组典型组合:
- 只要视频:保持
video: true,music/cover/json 全关,number.post: 50,产物只有 50 个 mp4。 - 全量存档:打开 music/cover/json,
video_quality: original探原片,再开comments.enabled: true:
music: true cover: true video_quality: original- 低负载增量:
thread: 2加start_time,配合increase.post: true,每次运行只拉新增作品。
完整默认值见 config/ 目录,Cookie 与 msToken 管理在 auth/。
CLI 与桌面版对比与选型
| 维度 | CLI 命令行 | Douzy 桌面版 |
|---|---|---|
| 入口 | config.yml + 命令行参数 | 粘贴链接点下载 |
| 界面 | 终端 Rich 进度条,可静默日志 | 可视任务中心、多链接队列、本地作品档案 |
| 抖音风控影响 | 2026-08 起单视频/图文、合集、音乐、点赞与收藏接口被门禁拦截,主页作品依赖浏览器兜底 | 内置登录窗口代发请求,不受该门禁影响 |
| 附加能力 | --serveREST 服务、--hot-board热搜、--search搜索、Dockerfile | 抖音/TikTok/YouTube 三平台工作台、账号内容同步 |
| 状态 | 稳定可用 | 内测中 |
选型一句话:跑在终端里、批量主页存档、热搜导出、REST 调度的场景,CLI 足够;要下单个视频或合集,想图形化看任务状态并重试失败项,用 Douzy。
踩坑与排错
主页作品只能抓到 20 条?
- 典型的翻页风控,确认
browser_fallback.enabled: true且headless: false。 - 先装好 playwright 与 chromium,浏览器弹窗出现后手动过验证,别急着关窗口。
- 浏览器兜底目前只对 post 模式完整验证,like/mix/music 仍主要靠 API 正常分页。
Cookie 失效或提示登录态异常?
- 重跑
python -m tools.cookie_fetcher --config config.yml重新获取。 - 运行前确认浏览器已登录抖音账号。
- 检查 config.yml 里 msToken、ttwid、odin_tt 等字段是否完整非空。
已下载的作品为什么不会重新下载?
- 程序按「数据库记录 + 本地文件」双重判断,两边都干净才会重下。
- 删掉含 aweme_id 的作品目录,再从
aweme表删除对应记录。 - 只删本地文件就会触发重下;只删数据库记录则不会。
接口返回 403,日志出现 Blocked by ArgusSecurityPlugin?
- 这是抖音 2026-08 起的门禁,签名只能由网页内 SDK 生成,CLI 直连带不上。
- 受影响的是单视频/图文、合集、音乐、点赞与收藏类接口,主页作品翻页同样被拒。
- 主页作品可开浏览器兜底试一试,其余类型建议切到 Douzy 用内置登录窗口代发。
进阶方向
--serve把下载变成 REST 服务,POST 链接即返回 job_id;配合increase增量与 notifications 推送,可以搭成定时抓取新作品的订阅任务。评论、热搜、搜索结果都以 JSONL 落盘,方便接入自己的分析流程;开启 transcript 后,视频下载完还会生成 txt/json 转写稿。
克隆仓库,2 条命令跑通第一次抖音批量下载。本工具仅供个人学习研究,请遵守平台规则使用。
【免费下载链接】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),仅供参考