抖音批量下载指南:一个主页链接把全部作品无水印存到本地
【免费下载链接】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
想把抖音作品存下来,App 里只能一条条存,存出来还带水印;想归档一整个创作者的主页,手动根本没法做。douyin-downloader是一个开源命令行工具:贴入单条视频链接、甚至作者主页链接,就能批量下载抖音无水印视频,封面和原声也可以一并带走。它用数据库加本地文件双重去重,重复运行不会重复占空间。
开始之前
- 它能做:单条视频、图文、合集、音乐无水印下载;作者主页的作品(post)、喜欢(like)、合集(mix)、音乐(music)批量下载;增量下载、发布时间过滤、并发与失败重试。
- 它不能做:没有图形界面,全程在终端里操作(桌面版 Douzy 还在内测);不支持多账号并行下载;私密账号在登录态之外的内容拿不到。
- 前提条件:Python 3.8 以上;一组有效的抖音登录 Cookie;打算用浏览器兜底(翻页被限流时自动开浏览器)的话,需要先装好 Playwright。
- 明确局限:增量跳过判断依据是"磁盘上主文件是否已存在",删掉本地文件下次就会重新下载;更多场景与限制见中文 README。
先让它跑起来
- 克隆仓库并安装依赖,网络正常的话几分钟能装完:
git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader pip install -r requirements.txt- 拿到登录态。新手最容易卡在这一步,用仓库自带的抓取器最稳:
pip install playwright && python -m playwright install chromium python -m tools.cookie_fetcher --config config.yml弹出的浏览器里登录抖音,回终端按 Enter,Cookie 会自动写进配置。Cookie 过期别手改单个字段,整个重跑一次就行。
- 复制 config.example.yml 为
config.yml,只留这几个字段就能跑:
link: - https://www.douyin.com/user/xxxxx path: ./Downloaded/ mode: - post- 跑第一次下载,用
-u直接传单条视频链接可以不依赖配置文件:
python run.py -c config.yml -u "https://www.douyin.com/video/7604129988555574538" -t 5首次运行保持默认并发 5 就好,失败条目多就把它降到 2 到 3。结束后看Downloaded/作者名/post/目录,文件按"日期_标题_ID"归档,视频、封面、音乐各归其位。
按目标进阶用
归档一个博主的主页
目标是把某创作者的全部作品连同封面、原声备份到本地。把number.post: 0(0 表示不限量),同时打开music: true和cover: true,元数据再开json: true。跑完对照终端输出的条数与主页可见作品数,文件在Downloaded/作者名/post/下按作品分文件夹,逐条都能核对。
按时间范围导出
目标只取某个时间段发布的作品。写入start_time: "2026-08-01"和end_time: "2026-08-24",格式是 YYYY-MM-DD,留空即不过滤。验证很简单:扫一眼文件夹名里的日期,应该全部落在区间内。导出大博主时用这个参数,还能顺手控制磁盘占用。
每日增量备份
目标是不用盯着重跑,只补新作品。increase.post: true是默认值,主文件已存在于磁盘的作品会被直接跳过,删掉文件则会重新拉取。工具本身不带定时任务,挂一个 crontab 每天跑一次,或者需要时手动重跑都可以。第二次运行应该秒级结束,绝大多数条目显示跳过——去重记录在dy_downloader.db里,不用担心重复存储。
如果你的归档对象是登录账号自己的收藏夹,可以把mode换成collect,链接指向个人主页的收藏页签;这个模式只对 Cookie 对应的账号生效,且必须单独使用,不能和 post、like 等混在一起。
不好使的时候
| 现象 | 高概率原因 | 处理办法 |
|---|---|---|
| 大面积失败,提示需要登录 | Cookie 过期或缺失 | 重跑python -m tools.cookie_fetcher --config config.yml整体刷新 |
| 抓了 20 条左右就停 | API 分页触发限流 | 确认browser_fallback.enabled: true、headless: false,在弹出的浏览器里手动过验证码 |
| 失败多、进度慢 | 并发与请求频率偏高 | retry_times提到 5,thread降到 2 到 3,去重机制保证补跑不重复下载 |
| 同标题作品互相覆盖 | 自定义命名模板丢了{id} | filename_template里务必保留{id}变量 |
| 下载到一半磁盘告急 | 全量抓取没设上限 | 加start_time/end_time,或把number.post设小 |
主功能之外的价值
打开json: true后,每个作品会额外落一份元数据 JSON,作者、标题、发布时间都在里面,导入表格或笔记软件就能做内容盘点。下载历史同样记在 SQLite 的dy_downloader.db里,"我到底存过哪些东西"随时可查。内容库攒到一定规模后,浏览本地封面和元数据做回顾,比翻信息流快得多。
请只把下载能力用于个人学习、研究和备份,尊重创作者的版权,下载的内容不要用于商业分发或侵权场景。
【免费下载链接】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),仅供参考