从手动保存到批量自动化:douyin-downloader 抖音批量下载工具上手全记录

📅 2026/8/21 2:56:32
从手动保存到批量自动化: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那个周五的晚上我在工位上对着第 43 个另存为弹窗发呆。那天 leader 丢给我一句话下周的选题是美食博主最近都在拍什么你先把十个账号近半年的作品都存下来当素材。听起来不难对吧等我真正动手才发现所谓存下来是打开一个又一个作品页等它缓冲完右键另存为然后收获一串毫无意义的随机数字文件名。更崩溃的是有的视频存到一半断网文件损坏了都不知道有的图集存下来只剩一张图至于按博主—日期—主题归档那基本是奢望。到晚上十点我存了不到六十条脑子里只有一个念头一定有工具能把这件破事自动化。于是朋友推给我 douyin-downloader一个开源的抖音批量下载工具。我把当周剩下的活干完后花了一个周末把它从装到用整个走了一遍。这篇文章与其说是一份 douyin-downloader 教程不如说是我这段真实使用经历的全记录写给和我一样第一次接触它的你。用一句话讲清楚它是谁douyin-downloader 是一个基于 Python 的开源命令行工具采用 MIT 协议代码和文档都公开躺在仓库里谁都能拿去用、去看、去改。它解决的核心问题很朴素把从抖音保存内容从一件手工活变成一件可以批量、可重复、有记录的事。具体能下什么单条视频和图文自不用说还包括合集、音乐原声、某个博主主页下的全部作品也就是抖音博主作品批量下载最常见的用法、点赞列表以及当前账号的收藏夹。视频默认优先无水印源——俗称的去水印——画质上会自动挑最高码率的那份。下载下来的不止是一个视频文件而是连封面、原声音乐、作者头像和一份 JSON 元数据一起打包。听起来有点全但正是这些细节让我从能用变成了离不开。为什么它能稳定不翻车一次下载请求的旅程我第一次用的时候心里其实是有疑虑的——这类工具大多脆弱今天能跑明天就挂。用久了我才理解douyin-downloader 的可靠不是靠运气而是把一次下载拆成了好几个有分工的环节。打个比方每次你丢给它一个链接它就像个办事利索的跑腿小哥走完一整趟流程先拆单。拿到链接先判断这是什么东西单视频、图文、合集、音乐、用户主页、还是直播间它能识别九种左右的链接类型短链接也会先展开再判断。再查台账。动手前它先翻一本 SQLite 台账确认这条作品以前下过没有。下过就跳过没下过才动手。这本台账还顺带记着每次下载的历史所以增量下载——只补新的、不重下旧的——是自然实现的。然后挑货源。确认要下之后它在平台给出的多个视频源里挑那个没有水印、码率最高的。接着打包。视频文件之外封面、音乐、头像、元数据一起带走命名和目录结构都按你定好的规则来。遇到查岗就换路。如果平台 API 开始风控翻页常见于抓很多页作品时它会自动切到浏览器模式弹窗出来你手动过一下验证码就行任务不用重来。最后验货。下载完它会比对文件大小发现不完整就自动清掉重下不会留一个半截文件糊弄你。你看去重、完整校验、兜底策略这些词听起来很高大上落地之后其实都是少让用户操心的细节。这正是我敢把它挂后台跑一整晚的原因。从安装到第一次成功下载的完整路线我的建议是别一上来就研究全部配置先把一条最小路线跑通再慢慢加东西。第一步把仓库拿下来。需要 Python 3.8 以上的环境然后git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader pip install -r requirements.txt装依赖这步别跳过也别用太老的 Python不然后面会莫名其妙报错。第二步拿一张通行证——Cookie。抖音的接口需要登录态工具提供了自动获取的方式python -m tools.cookie_fetcher --config config.yml它会用浏览器打开抖音你正常登录一次回到终端按回车Cookie 就自动写进配置了。为什么非要这一步因为不带 Cookie 去请求服务器基本只回你一个请先登录的空壳。Cookie 是会过期的过几天失效了重新跑一遍这个命令就行。第三步写一份最小配置。新建config.yml核心其实就四行link: - https://www.douyin.com/user/某个博主主页地址 path: ./Downloaded/ mode: - post number: post: 50用人话解释link告诉它去哪这次是某个博主的主页path是东西存哪mode是要哪一类内容post就是作品想连点赞的也一起下就加likenumber是数量上限写 0 表示不限制、全量抓。第四步跑起来python run.py -c config.yml然后你会看到一个进度条刷起来——每个视频一行跑完变绿右下角还有整体进度和剩余时间等它跑完打开下载目录文件已经被按博主归档好命名是日期_标题_ID这种一眼能看懂的结构不再是那串随机乱码了从这一刻起我才真正体会到工具替你干活是什么感觉。三份真实使用手记别人的场景我的参考工具好不好用光看功能清单没用得看它能不能塞进真实的生活里。我身边恰好有三位不同身份的人各自的用法都不一样。第一份来自做美食内容的阿哲。他的工作是每天拆解竞品账号过去这活儿得两个人轮流点链接一天耗四个小时。现在他的配置里塞了三个博主链接mode同时开post和like再打开增量开关每天花十五分钟把新作品补齐就收工。他说了一句让我印象很深的话这工具最值钱的不是下载那一下是它让我知道哪些下过了、哪些是新的。第二份是读研的小方。他做短视频传播研究需要按关键词捞样本、按时间窗筛选还要存下评论做文本分析。他用的是另外几条命令--search按关键词搜索导出清单--hot-board拉当天热搜榜再配合配置文件里的comments采集把每条作品的评论存成 JSON。对他这种要数据而不是要视频的人来说这其实就是一个轻量的抖音数据采集入口导出结果直接就是结构化文件省掉了自己写爬虫的一整段路。第三份是我自己。有次需要完整录下一场教学直播用的是直播录制功能link: - https://live.douyin.com/直播间ID live: max_duration_seconds: 3600 chunk_size: 65536 idle_timeout_seconds: 30max_duration_seconds写 0 就是一直录到主播下播。最贴心的是中途断网或手动中断已经录下的字节也会保留不会前功尽弃。当时终端里的流程大概长这样一个小提醒直播如果拿到的是 HLS 格式工具只会存下播放列表文件需要再用 ffmpeg 转成视频FLV 格式则可以直接播放。决定下载体验的几个参数该怎么调用了一段时间后我慢慢摸清了几个参数背后的权衡这里把我的理解分享给你。并发数thread。默认是 5意思是同时开 5 个下载任务。网络条件好、下载的又是小文件时调到 8 甚至 10 能明显提速但如果是弱网或者被平台盯上了并发太高反而容易触发风控这时候调回 3、4 反而更稳。记住一个原则提速的收益是线性的被限流的代价是雪崩的。重试次数retry_times。默认 3 次采用指数退避1 秒、2 秒、5 秒。如果你在跑大任务、网络又不太稳调到 5 会更安心日常小批量 3 次足够没必要为了显得稳无限拉高。命名规则filename_template。默认是{date}_{title}_{id}桌面版里能看到更多可用变量。命名这事看起来小其实决定了你三个月后还能不能找到一条素材。我的建议是日期放最前方便按时间排序ID 一定保留因为标题可能重名ID 是唯一标识。目录上作者目录默认用昵称重名博主多了之后可以考虑换成昵称_ID的组合。另外两个可选功能按需开就行视频转写transcript适合需要逐字稿的人做字幕、做研究但要自己配 OpenAI 的密钥评论采集comments适合做数据分析max_comments默认 0 表示不限量量大的时候记得设个上限不然请求数会很可观。我踩过的坑和当时的处理办法既然是真实使用记录坑也得如实讲。第一个坑是 Cookie 失效。症状很典型日志里一片需要登录之类的报错。处理很简单重新跑一遍 cookie_fetcher 再登录一次就行。后来我养成习惯每次大任务前先顺手刷新一次基本没再被这个卡过。第二个坑是翻页风控表现是只能抓到 20 条作品。这是平台的常见限制解决办法是启用浏览器兜底配置里browser_fallback.enabled设成 trueheadless设成 false让浏览器窗口弹出来看到验证码就手动过一下再让它继续滚。记住别急着关窗口等它自己滚完。第三个坑是收藏夹模式的限制。我一开始图省事把collect收藏夹和post写进了同一个mode列表结果任务报错。查了文档才知道收藏夹模式必须单独用不能和其他模式混写。这类限制在官方 README 的限制说明里写得很清楚建议开始前先扫一眼能省不少排查时间。第四个坑是单条视频下载失败。这通常是因为视频被删、被设成私密或者网络中断。工具默认会自动跳过失败的条目继续跑不会让一颗老鼠屎坏了一锅汤。想知道失败原因就加--verbose参数跑一遍日志里会写明是哪种情况。桌面版、接口和更远的将来命令行用顺手之后我还留意到项目在推一个叫 Douzy 的桌面客户端基于同一套后端正在内测。对我这种不习惯命令行的人来说它友好很多粘贴链接就能开始左侧能清晰看到下载入口、任务中心、作品档案这些模块桌面版最戳我的两个点是任务中心和作品档案前者把每个任务的状态、成功失败数量、耗时都摊开给你看后者把 SQLite 里的下载历史做成一个可搜索的库按作者、关键词、时间筛选还能批量导出。以前我到底下过什么全凭记忆现在打开档案库一目了然如果你有把它接进自己系统的需求它还提供 REST API 服务模式起一个本地服务用接口提交下载任务、查询任务状态。桌面版在写这篇文章时还处于内测期命令行版则是完全可用、持续维护的状态。最后说一句项目本身它采用 MIT 协议源码里的目录结构也很清楚核心逻辑在core/配置解析在config/辅助脚本在tools/想深入研究或者提改进建议都很方便。社区贡献不外乎那几样——报 bug、提想法、改代码、补文档门槛不高欢迎程度不低。现在就可以开始的五件小事这篇文章看到这里你其实已经知道全部关键信息了。剩下的事按这个顺序做就行✅ 克隆仓库、装好依赖✅ 跑一次 cookie_fetcher把通行证拿到手✅ 写一份只含link、path、mode、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),仅供参考