抖音下载器又废了?我在NAS上自己搭了一个
前两天想下个抖音视频,打开一直用的那个下载工具,啪,废了。
这已经不是第一次了。抖音的接口和风控三天两头变,GitHub上那些下载工具一个接一个停更,停更就等于等死。这次我不想再等了,干脆在NAS上自己搭一个,把踩过的坑全记下来,说不定对你有用。
一、旧工具为什么废了
之前用的那个工具叫 Douyin_TikTok_Download_API,GitHub上两万星,网页界面挺好用,粘贴链接就能下。可惜作者2025年10月就停更了。
停更意味着什么?抖音一改接口,工具就瞎了。这次实测:短链能解析,但一到拿视频详情的步骤就被抖音anti-bot拦截,返回空响应,彻底歇菜。
说穿了就一句话:下载工具是有保质期的,买新不买旧。
二、选型:专挑还在更新的
GitHub上扒拉了一圈,对比了几个热门项目:
- JoeanAmier/TikTokDownloader(1.5万星):功能最全,支持视频图集直播音乐合集全平台。但最新版把Web UI砍了——代码重构没完成,只剩命令行交互模式,NAS上无人值守不合适。
- putyy/res-downloader(1.9万星):桌面软件,思路是装证书+开代理抓包,跟NAS服务化完全两个路子。
- jiji262/douyin-downloader(9千星):一眼相中——当天还在更新!支持单条视频、图集、主页批量、合集、音乐,无水印优先、自动选最高画质,还带REST API。就它了。
选型经验:别只看星数,看最后更新时间。一个昨天还在更新的小项目,比一个停更半年的两万星项目靠谱一百倍。
三、第一道坎:源码都下不下来
GitHub直连失败,挂代理也超时,折腾半天,最后用ghfast.top镜像站下源码包,秒下。
Docker镜像拉不动(官方源卡死),走registry.linkease.net加速器搞定,基础镜像python:3.12-slim也是走加速器拉的。
最坑的是docker build直接跑会卡死——pip默认从pypi.org装依赖,国内这网速,装到天荒地老。最后改成:先起个临时容器手动装依赖,再commit成镜像,快多了。
四、第二道坎:抖音的anti-bot
服务起来了,粘贴链接测试,啪,失败。
看日志:Empty 200 response ... (anti-bot)——抖音风控把没带cookie的请求全拦了。这不是工具的问题,是抖音的常规操作:不带身份标识的请求一律当机器人处理。
解决方案:浏览器打开抖音,把cookie抓出来。这里有个细节——抖音最关键的ttwid(设备身份标识)用document.cookie是拿不到的(HttpOnly属性),得调抖音官方的注册接口生成。折腾一圈,总算凑齐。
还踩了个小坑:cookie字符串要写在配置文件的顶层cookie字段,不是cookies字典里——写错位置等于没配,白折腾半小时。
五、第三道坎:整段文案粘贴失败
网页做好,让家里人用,结果还是失败。
一看日志明白了——人家把整个分享文案粘进去了:"复制打开抖音,看看【xxx的作品】... 03/06 :2pm" 那一大串。下载器只认纯链接,别的全当垃圾。
修了两层:前端自动提取链接 + 后端也提取,双保险。现在整段文案随便粘,自动抠出链接。
六、第四道坎:归档方式
默认按作者分类,下主页批量时一个作者一个文件夹,挺清爽。
后来想要平铺模式——不建文件夹,视频直接铺在根目录,文件名保持"日期_标题_ID"格式。给下载器加了author_dir=none的平铺支持,网页上加了个下拉框,点一下即时切换(内存和配置文件同步改,不用重启),两种模式随心情换。
七、最终效果
实测跑了一遍:作者主页20个作品批量下载,20/20全成功,零失败,无水印、最高画质、自动归档。
网页界面就一个框:粘贴分享文案 → 点下载 → 完事。支持视频、图集、主页、合集,短链接自动解析。下载记录还有SQLite去重,同一视频不会重复下。
八、说点实在的
唯一搞不定的是抖音短剧(那种"第一季第二季"的合集,playlet类型)——防盗链加付费机制,常规工具都抓不了,只能老老实实录屏。
另外cookie有时效,抖音风控哪天抽风了,可能要重新抓一次cookie更新配置。工具嘛,能用就行,别指望一劳永逸。
中年男人的快乐还是那句话:花钱不多,折腾不少。
从"下载工具废了"到"自己搭一个",中间隔了四个坑。但搭完那一刻的成就感,比下到视频本身还爽。反正NAS闲着也是闲着,对吧?