抖音下载器:批量下载抖音视频、图集与音乐
【免费下载链接】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
抖音下载器是一款开源的抖音下载工具,去水印,支持单个作品、图集、音乐和作者主页批量下载,默认带进度展示、指数退避重试与 SQLite 去重。适合需要归档或采集抖音内容的创作者、研究者和普通用户。
它替你省掉了什么
手动录屏画质差且费力,单个作品能存但几百条作品的主页只能一条条点,重复下载同一批内容白白消耗流量,API 翻页被风控时还常常只能拿到 20 条就断掉。抖音下载器把这些琐事交给一份配置文件:它自动挑选无水印、最高码率的视频源,默认 5 线程并发下载,每次下载都记录进本地 SQLite 数据库用于去重;翻页受限时还能弹出浏览器,让你人工过掉验证码继续抓取。
3 分钟跑起来
环境要求 Python 3.8+,跨 macOS、Linux、Windows。四步完成部署:
git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader pip install -r requirements.txt cp config.example.yml config.yml推荐用自动方式获取 Cookie,它会打开浏览器,你登录抖音后回到终端按 Enter,程序自动写入配置:
python -m tools.cookie_fetcher --config config.yml然后编辑config.yml填入链接并指定模式,最小配置长这样:
link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx path: ./Downloaded/ mode: [post] number: post: 0 thread: 5 database: true运行python run.py -c config.yml即可开始。如需浏览器兜底,提前执行pip install playwright && python -m playwright install chromium。同一套后端还提供了一个处于内测期的桌面客户端 Douzy,可视化地粘贴链接、跟踪任务:
核心能力拆解
批量下载与并发控制
一份配置驱动多类链接与多种模式,并发、限速、重试都是内置行为。
link支持单个视频、单个图文、单个合集、单个音乐、作者主页,短链v.douyin.com自动解析;mode字段选择下载模式,number字段按模式限制数量,0 表示不限。- 默认 5 个并发线程、2 请求/秒的速率限制,失败按 1s/2s/5s 指数退避重试;同一作者跨模式抓取时,相同
aweme_id自动去重。
| 模式 | 抓取内容 | 典型用途 |
|---|---|---|
| post / like | 发布作品 / 点赞作品 | 主页归档、审美偏好分析 |
| mix | 合集 | 系列教程下载 |
| music | 音乐原声 | 背景音乐素材收集 |
| collect / collectmix | 当前账号收藏夹 / 收藏合集 | 个人收藏整理 |
去重与增量下载
SQLite 加本地文件双重去重,第二次跑不再浪费带宽。
database: true时,每条作品记入本地 SQLite;下载前先查数据库,再扫本地文件名里的aweme_id,两处都命中才跳过。increase开关按模式启用增量下载,只拉取新作品;start_time/end_time按日期范围过滤;下载目录下的download_manifest.jsonl是完整下载清单,方便核对。
扩展与集成
下载器不止于下载,可以直接接进你自己的工作流。
- 可按作品采集评论(可含二级回复)存为 JSON,可调用 OpenAI 接口把视频转写成 txt/json 文本,完成后经 Bark/Telegram/Webhook 推送到手机。
- 可以
--serve以 REST API 服务模式运行供其他程序调用,--hot-board、--search能把热搜榜和关键词搜索结果导出为 JSONL;仓库自带 Dockerfile 支持容器化部署。
两个真实场景
场景一:增量追更某位博主
需求:长期跟进一位教程博主,首次全量下载后,之后每次运行只想要新发布的作品。
link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx mode: [post, mix] increase: {post: true, mix: true} database: true预期结果:首次运行下载全部作品与合集,此后每次运行只拉新作品,已下载的几百条原样跳过。
场景二:整理当前账号的收藏夹
需求:当前登录账号存了不少作品和收藏合集,想一次性搬到本地归档。
link: - https://www.douyin.com/user/self?showTab=favorite_collection mode: [collect] number: collect: 0预期结果:收藏作品落入Downloaded/{作者}/collect/,每条附带视频、封面、音乐和 JSON 元数据。注意collect/collectmix仅支持当前 Cookie 对应的账号,且需单独使用。
踩坑速查
- 只抓到 20 条作品就停 → 翻页触发风控,API 不再返回新数据 →
browser_fallback.enabled: true且headless: false,浏览器弹窗后人工过验证码(需先装 playwright)。 - 下载报错、提示登录相关错误 → Cookie 过期 → 重跑
python -m tools.cookie_fetcher --config config.yml,新 Cookie 自动写回配置。 - 想重新下载某条作品却被跳过 → 数据库记录加本地文件双重去重 → 删掉对应下载目录,并清掉数据库里该
aweme_id的记录后再跑。
目录速览
- core/:下载主流程、URL 解析、API 客户端与各模式策略实现
- storage/:SQLite 数据库、文件管理与元数据写入
- auth/:Cookie 与 MS Token 管理
- control/:限速、重试与并发队列;cli/ 为命令行入口
适合谁
如果你在给自己建素材库、归档某个博主的主页,或只是想把几条抖音视频无水印存下来,抖音下载器都能用一份配置覆盖。有 Python 环境的话,克隆仓库、改三行配置就能跑起来,建议第一次先用number限制数量试跑一轮,确认目录结构和文件命名符合预期再放开全量下载。
本工具适用于个人学习、研究与个人数据管理,请只下载个人使用或已获授权的内容,尊重创作者版权。
【免费下载链接】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),仅供参考