抖音下载工具douyin-downloader:批量抓取、直播回放与增量去重的一站式方案
抖音下载工具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 是不少人给出的答案:一条命令就能保存单条视频、图文、合集与音乐,也能批量抓取作者主页,甚至录制直播回放,默认还带进度展示、失败重试、SQLite 去重和浏览器兜底。它把"保存抖音内容"这件事,从手工一个个点开下载,收敛成一份配置文件的功夫。
先看它能做什么
概括起来,douyin-downloader 负责三件事:把抖音上可见的内容抓到本地、给内容配上完整的元数据档案、再替你想好去重和整理。以下清单覆盖了它的核心能力:
| 能力 | 说明 |
|---|---|
| 单条内容下载 | 支持/video/视频、/note//gallery/图文、/collection/合集、/music/音乐链接 |
| 主页批量下载 | post(发布)、like(点赞)、mix(合集)、music(音乐)四种模式,数量可设上限 |
| 直播回放录制 | FLV / HLS 双格式,主播下播或中断时自动保留已录字节 |
| 评论采集 | 按作品抓取评论,可选二级回复,输出*_comments.json |
| 增量与去重 | 数据库记录 + 本地文件双重检查,只下载新增内容 |
| 画质与去水印 | 优先无水印视频源,并依据码率数组自动挑选最高清版本 |
| 浏览器兜底 | 翻页被风控时拉起浏览器,支持人工完成验证码后继续 |
| 附加产物 | 封面、原声音乐、作者头像、JSON 元数据随作品一并落盘 |
场景一:发现宝藏创作者,想把主页完整搬回本地
刷到一个每期视频都值得二刷的博主,最稳妥的做法不是手动点开每一条,而是让工具直接读取他的主页。把用户主页链接填进配置,指定模式与数量,剩下的交给并发队列。
link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx path: ./Downloaded/ mode: - post - like number: post: 50 like: 20mode里的四种模式可以任意组合,同一个作品在不同模式下不会重复下载;number设为 0 表示全量抓取。短链(v.douyin.com、v.iesdouyin.com乃至无协议头的裸链接)也会被自动解析,从分享卡片复制的链接可以直接使用。
下载完成后,每个作品都会生成独立的档案目录,命名默认遵循"日期_标题_ID"规则:
Downloaded/ └── 作者名/ ├── post/ │ └── 2024-02-07_作品标题_aweme_id/ │ ├── 视频.mp4 │ ├── 封面_cover.jpg │ ├── 原声_music.mp3 │ ├── 元数据_data.json │ └── 评论_comments.json ├── like/ ├── mix/ └── music/场景二:直播刚结束,回放怎么留住
知识分享、课程连麦这类直播通常没有官方回放,错过就是错过。douyin-downloader 的直播录制功能面向这个需求:把直播间链接放进配置,它会持续拉取直播流,直到主播下播、网络空闲或手动中断。
link: - https://live.douyin.com/123456789 live: max_duration_seconds: 3600 # 0 表示录到主播下播 chunk_size: 65536 idle_timeout_seconds: 30录制的 FLV 文件保存在Downloaded/作者名/live/目录下,同时生成一份*_room.json直播间元数据快照。中断时,已录制的字节会被保留,临时文件自动提升为正式文件,不必担心前功尽弃。
场景三:做账号运营或内容调研,需要评论与榜单数据
如果你运营账号、分析竞品,或者单纯想深入理解某条爆款为什么火,评论区就是最现成的素材。开启评论采集后,每个作品旁会多出一个 JSON 文件,记录全部评论内容,便于后续做文本分析或舆情整理。
comments: enabled: true include_replies: false # 改为 true 会额外拉取二级回复,请求量随之增加 max_comments: 0 # 0 表示不限量 page_size: 20命令行层面还提供了两个数据出口:热搜榜快照与关键词搜索,结果统一落为 JSONL 文件,适合接进自己的分析流程。
# 导出抖音热搜榜前 30 条 python run.py --hot-board 30 -p ./Downloaded # 按关键词搜索作品,最多 100 条 python run.py --search "猫咪" --search-max 100 -p ./Downloaded进阶定制:增量下载、命名规则与完成通知
第一次全量抓取之后,日常维护的重点变成"只下新的"。把increase打开并依赖数据库记录,每次运行会跳过已下载的作品,既不重复占用磁盘,也省下大量请求。
increase: post: true like: true database: true想按自己的习惯管理文件,命名模板提供了{id} {title} {author} {date} {year} {month} {day} {time} {timestamp} {type} {mode}等变量,作者目录层也支持三种风格:仅昵称(直观但重名会合并)、仅 sec_uid(稳定但不可读)、昵称加 ID(推荐重度用户)。
filename_template: "{date}_{title}_{id}" author_dir: "nickname_uid" start_time: "2024-01-01" # 时间过滤,只下载区间内的作品 end_time: "2024-12-31"批量任务结束后想第一时间知道结果?可以配置 Bark、Telegram 或 Webhook 通知,成功与失败分别触发,推送失败也不会阻塞主流程。
notifications: enabled: true on_success: true on_failure: true providers: - type: bark url: https://api.day.app/YOUR_DEVICE_KEY扩展玩法:API 服务、桌面客户端与 Docker
命令行之外还有三条进阶路径。其一,以 REST API 服务模式运行,把下载能力暴露成 HTTP 接口,方便集成到自己的系统或自动化流程中:
pip install fastapi uvicorn python run.py --serve --serve-port 8000接口包含POST /api/v1/download提交下载任务、GET /api/v1/jobs/{job_id}查询进度、GET /api/v1/jobs列出最近任务、GET /api/v1/health健康检查。其二,有图形界面偏好的用户可以使用桌面版 Douzy——它基于同一套后端,粘贴链接即可开始下载,还支持同步关注列表、在任务中心逐条跟踪状态,目前处于内测阶段。
其三,Docker 部署适合服务器环境,构建镜像后挂载配置与下载目录即可运行:
docker build -t douyin-downloader . docker run -v $(pwd)/config.yml:/app/config.yml -v $(pwd)/Downloaded:/app/Downloaded douyin-downloader此外,如果下载的是视频,还可以开启转写功能,调用 OpenAI Transcriptions API 自动生成字幕文本与 JSON 结果,适合做课程笔记或内容检索。
避坑清单:常见的误判与边界条件
| 现象 | 常见原因 | 建议做法 |
|---|---|---|
| 只能抓到 20 条作品 | 翻页被风控拦截 | 确认browser_fallback.enabled: true且headless: false,弹窗出现后手动完成验证码再等待 |
| 提示登录态失效 | Cookie 过期 | 重跑python -m tools.cookie_fetcher --config config.yml,登录后回终端按 Enter 自动写入 |
| 收藏夹模式没有输出 | collect/collectmix 仅支持当前登录账号,且必须单独使用 | 单独建一份只含收藏夹链接的配置,不要与 post 等模式混用 |
| 直播只保存了 playlist 文件 | 该直播间走 HLS 源 | FLV 可直接播放;HLS 需要用 ffmpeg 对列表文件做后处理 |
| 增量下载没有生效 | increase 只覆盖 post/like/mix/music | 核对模式是否在支持范围内,并确保database: true |
| 想重新下载某条作品 | 去重机制判定已存在 | 删除对应本地文件与数据库中的记录,再重新运行 |
从第一条视频开始
回到开头的那个夜晚:与其让精彩内容消失在平台的公开流里,不如在它还在的时候,花十分钟完成一次配置。把仓库克隆下来,安装依赖,运行 cookie 获取命令完成登录,然后把你手头的链接填进config.yml:
git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader pip install -r requirements.txt cp config.example.yml config.yml python -m tools.cookie_fetcher --config config.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),仅供参考
