抖音批量下载工具 douyin-downloader 完整指南:10 分钟下完无水印视频并一键归档
【免费下载链接】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 就是一款开源的抖音批量下载工具:无水印视频、图文、合集、音乐原声、直播录制,你只需给它一个链接加一份配置文件,去重和重试它自己兜底。下面按顺序走一遍,从装环境到跑通第一条下载。
一、环境准备:一键安装步骤
先确认你装了 Python 3.8 及以上(macOS、Linux、Windows 都行),然后拉代码、装依赖:
git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader pip install -r requirements.txt装完跑一条命令验证环境就绪:
python run.py --version能打印出版本号(2.0.0)就说明依赖没问题,可以继续了。
二、先搞定 Cookie:这一步决定下载成不成立
🍪 抖音的大部分内容只对登录用户开放,Cookie 没配好,接口请求会大面积报登录失效,后面所有步骤都白搭。项目给了三条路,按推荐程度排:
- 自动获取(推荐):先装浏览器组件,再运行获取脚本,它会弹出一个真实浏览器:
pip install playwright python -m playwright install chromium python -m tools.cookie_fetcher --config config.yml你在弹出的浏览器里扫码登录抖音,回终端按 Enter,Cookie 会自动写回config.yml,全程不用复制粘贴。
- 手动粘贴:从浏览器开发者工具的 Cookie 里拷出
ttwid、odin_tt、passport_csrf_token等键值,填进配置文件底部的cookies字段。config.example.yml 里有现成的字段占位,照着填即可。 - 运行中自动重登:下载过程中如果检测到登录态失效,程序会主动弹浏览器让你重新登录一次并自动重试,不用手动中断。
提前打个预防针:Cookie 会过期。哪天突然大面积失败,第一反应是重跑一遍获取流程更新登录态,别急着怀疑网络或代码。
三、第一次跑通:最小配置与成功标志
把模板配置复制一份:
cp config.example.yml config.yml打开config.yml,只改两处:link里放一条作品链接,cookies填好登录态。最小可运行配置长这样:
link: - https://www.douyin.com/video/7604129988555574538 path: ./Downloaded/ mode: - post number: post: 1 thread: 5 retry_times: 3然后启动:
python run.py -c config.yml跑完看这里确认是否成功:
- 终端最后会出现一张
Download Summary表格,列出「成功 / 失败 / 跳过」三类计数,成功数 ≥1 就算通了; Downloaded/目录下能找到对应的 mp4 文件。
两条都满足,第一条无水印视频就到手了。
四、配置全景:必填、常用、进阶三层看
配置模板 的字段看着多,其实按重要性分三层,别一上来全读。
必填层:link(链接列表)、path(保存目录)、cookies(登录态),三者齐了就能跑。
常用层:控制"下什么、下多少、什么画质":
| 配置项 | 作用 | 说明 |
|---|---|---|
mode | 抓取模式 | post作品 /like喜欢 /mix合集 /music音乐,主页下载时生效 |
number | 各模式数量上限 | 0表示全量,如post: 50 |
video/music/cover | 是否下视频本体、原声、封面 | 默认只存视频,其余按需开 |
json | 保存元数据 | 留档备查 |
start_time/end_time | 日期过滤 | 格式YYYY-MM-DD |
video_quality | 画质选择 | highest默认最高转码档,original会探测原片 |
thread | 并发数 | 默认 5 |
retry_times | 单条失败重试次数 | 默认 3 |
进阶层只展开两个最关键的:
database: true(默认开):每条下载记录写进 SQLite(dy_downloader.db),下次运行自动跳过已下载内容,配合本地文件双重去重。browser_fallback:主页翻页被风控卡住时自动拉起浏览器兜底,弹窗后手动过一下验证码即可继续,只删headless保持false就能人工接管。
更多参数语义可以直接翻 config.example.yml,每个字段都有注释。
五、场景实战:从单条到批量备份
单条作品练手
拿不准 Cookie 和网络是否正常时,先丢一条视频链接进去试(见第三节),验证通过再上批量。
整站备份一个创作者
最常用的场景:一个主页链接、多模式、数量上限一设,剩下交给程序:
link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx mode: - post - mix number: post: 0 # 0 = 全部 mix: 20 # 合集最多 20 个跑完该博主的作品与合集按目录归档到本地,跨模式自动去重,同一个作品不会下两遍。
图文与合集直接丢链接
/note/{id}图文、/collection/{id}合集链接放进link就能被自动识别,不用指定mode。
收藏内容同步到本地
登录 Cookie 对应的账号收藏夹也能批量收,collect(收藏作品)和collectmix(收藏合集)需单独使用,不能和post等模式混着写。
直播录下来
直播间链接填进link,程序自动拉直播流,不用开录屏软件:
link: - https://live.douyin.com/123456789 live: max_duration_seconds: 0 # 0 = 录到主播下播主播下播或 Ctrl+C 中断时,已录的字节都会保留成正式文件。
六、长跑调优:三组搭配让批量任务不翻车
⚡ 任务跑得越久,越怕中途崩掉白跑一趟。参数不用多,记住这组搭配:
- 重试兜底:
retry_times: 3,程序内置指数退避(1s/2s/5s),单条失败会自动补上,网络抖动不会留缺口。 - 增量 + 去重双保险:
database: true搭配increase: {post: true},以后每天跑一遍只拿新发布的内容,硬盘不越堆越多。 - 并发循序渐进:
thread从 5 起步,网络好再试 8。程序默认限速 2 请求/秒,一上来拉满并发反而容易触发风控,比慢工出细活更慢。
七、产物归档:下载完的文件长什么样
默认folderstyle: true时,文件按"创作者 → 模式 → 作品"分层归档:
Downloaded/ ├── dy_downloader.db # 去重数据库 └── 作者昵称/ ├── post/ │ └── 2024-02-07_作品标题_aweme_id/ │ ├── 视频.mp4 # 无水印视频 │ ├── 视频_cover.jpg # 封面 │ ├── 视频_music.mp3 # 原声音频 │ └── 视频_data.json # 元数据 ├── like/ ├── mix/ └── live/ # 直播录制落这里层级清晰有两个好处:找东西快;而且每条作品和数据库记录一一对应,"下没下过"查目录和查库都能确认。想调整命名可以改filename_template/folder_template,唯一要求是模板里带上{id}避免重名覆盖。
收尾:高频问题排障表
| 问题 | 原因 | 解法 |
|---|---|---|
| 主页只抓到 20 条左右 | 翻页被风控限制 | 确认browser_fallback.enabled: true且headless: false,弹窗后手动过验证别急着关窗 |
| 突然大面积下载失败 | Cookie 过期 | 重跑python -m tools.cookie_fetcher --config config.yml更新登录态 |
| 硬盘里堆出重复文件 | 没开数据库去重 | database: true配合increase走增量 |
| 想重新下载某一条 | 数据库记录让它被跳过 | 删掉本地对应文件夹,再用sqlite3 dy_downloader.db删掉库里那条记录 |
| 进度条刷屏重复 | 日志在进度阶段重复输出 | 默认progress.quiet_logs: true已静默,调试时才加-v |
行动清单,照着做就行:
- 单条作品先练手,跑通再加批量
- Cookie 定期更新,过期了重跑获取脚本
- 并发跟着网络调,5 起步别拉满
- 测试时设数量上限,避免一次下太多
- 不同需求(备份、单条、直播)分配置文件
现在就去 clone 一份,先把第一条无水印视频存下来,攒你的抖音内容库。
本项目仅供技术学习与个人数据管理使用,请在合法合规的前提下使用,尊重内容版权与创作者权益,不得用于侵犯他人隐私或任何违法违规用途。
【免费下载链接】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),仅供参考