当前位置: 首页 > news >正文

我把关注三年的博主作品全存进了本地硬盘: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

上周五深夜,我发现关注了三年的舞蹈博主删掉了一半早期作品。那些没来得及保存的视频,就这样从互联网上消失了。当晚我装好 douyin-downloader,把主页里剩下的两百多个作品连同原声、封面一起拉进了本地,全程不到二十分钟。这篇记录的就是这次备份的完整经过——如果你也有舍不得丢的抖音内容,它也许正好合适。

一次真实的备份:先从单个视频开始试水

我的习惯是,任何工具都先拿一个最小任务验证,而不是一上来就全量跑。douyin-downloader 的环境安装比想象中短,四条命令就位:

git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader/douyin-downloader pip install -r requirements.txt cp config.example.yml config.yml

真正卡住新手的往往是 Cookie——抖音的内容需要登录态才能访问。好在项目自带自动获取脚本,运行后会自动弹出浏览器:

python -m tools.cookie_fetcher --config config.yml

扫码登录后回到终端按一下回车,Cookie 就被写进配置并保存在本地,不上传任何服务器。这一点我特意确认过,才放心把账号信息交给它。

接着我在config.yml里只放了一条视频链接:

link: - https://www.douyin.com/video/xxxxxxxxxxxx path: ./Downloaded/ music: true cover: true json: true

运行python run.py -c config.yml,几秒后下载完成。打开文件夹,一个作品被拆成了四样东西:无水印的 mp4、原声音乐、封面图、以及一份完整的元数据 JSON。视频、音乐、封面、信息,一个不缺。第一次见到这种"拆得很细"的下载结果,我就知道它和我以前用的在线解析站不是一类东西。

把链接换成博主主页,批量下载才真正开始

单个视频跑通后,我把链接换成了博主主页地址,追加了下载模式:

link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx mode: - post number: post: 50 # 先下最近 50 个,0 表示全部

终端立刻变成一张进度面板:每个作品一行,标题、百分比、状态标签依次滚动,默认 5 个并发线程,全程没断过。

更让我意外的是"重复下载"这件事。第二天我想补几个漏掉的作品,把同一条命令又跑了一遍——结果几乎瞬间结束,日志里全是"已存在,跳过"。原来每个下载过的作品都被记进了 SQLite 数据库,再结合本地文件做双重判断。批量下载一旦有了去重,你就敢反复跑、放心跑。

如果你只想收某个博主的背景音乐,或想搬空他的合集、点赞列表,改mode就行:post是主页作品,like是他点赞过的,mix是合集,music是原声音乐,collect是自己收藏夹里的内容。同一个作品在多种模式下出现,也不会重复下载。

和它对比,我过去用过的几种土办法差距很直观:

方式水印批量音乐/封面元数据
在线解析网站部分有基本不支持
录屏屏幕水印手动逐条
浏览器插件常有单条为主
douyin-downloader原生无水印主页全量独立保存完整 JSON

不重、不断、不封:那些藏在配置里的笨功夫

批量下载最大的敌人不是网速,是风控。抖音对高频请求的容忍度很低,这个工具做了一组"笨但有效"的安排:默认 2 请求/秒的速率限制;失败的请求按 1 秒、2 秒、5 秒指数退避重试,而不是死磕;下载时比对文件长度,不完整就自动清理重下。所以就算中途断网,续跑一次,缺的会补,好的会跳。

翻页风控是另一道坎。批量拉作者作品超过一定数量后,接口可能只返回前 20 条。这时可以打开浏览器兜底:

browser_fallback: enabled: true headless: false

它会启动一个真实浏览器慢慢往下翻,遇到验证码就弹窗,手动过一下即可。我就是用这个办法,把那位博主"只能抓到 20 条"的合集完整拉了下来。

如果想长期跟踪一个创作者,增量模式更省事:increase.post: true开启后,每次运行只下载新增作品,旧的不碰。再配合start_time/end_time,还能只取某个时间段的内容。相当于给关注列表配了一个"只进新货"的同步器。

顺手发现的能力:直播、评论、热搜、API

备份完主页作品后,我翻了翻命令行参数,发现它还管着不少副业:

  • 直播录制:把live.douyin.com的直播间链接放进配置,指定时长即可录制,主播下播或断网时已录的字节会保留,不会白录。
  • 评论采集:打开comments.enabled,按作品抓评论,还能带上二级回复,输出结构化 JSON。
  • 热搜与搜索--hot-board 30抓热搜榜,--search "关键词"按关键词搜索作品,结果落成 JSONL,适合做内容观察。
  • 完成通知:下载完可以推送到 Bark 或 Telegram,跑批量任务时不用一直盯着终端。
  • REST APIpython run.py --serve --serve-port 8000起一个服务,用接口提交下载任务、查询状态,方便接进自己的自动化脚本。

这些能力单个拿出来都不算惊艳,但都围绕同一个诉求:把抖音内容"搬到自己地盘"这件事,做到位。

给同样想备份的你:两个坑和一个建议

如果你准备动手,我的建议是:从单个视频开始,跑通再上批量。环境五分钟能装好,但第一次把配置、路径、下载结果都确认一遍,后面就顺了。

两个最容易踩的坑,提前说给你:

  1. Cookie 会过期。下载时报 "403" 或"未登录"时,八成是 Cookie 失效了,重新跑一遍cookie_fetcher就行。有效期大概 7 到 15 天,建议每周更新一次。
  2. 批量拉太多被风控限流时,别硬试。打开browser_fallback让浏览器兜底翻页,弹窗出现就手动过验证,比反复重试有效得多。

回到开头那位博主。现在他的主页作品、音乐、封面都安静地躺在我的硬盘里,按作者分目录、按日期命名,想找哪个随手就能翻到。

工具是免费的,代码完全开源。它解决的其实不是"能不能下载"的问题——那很多工具都能做到;它解决的是"批量下载时能不能让人省心"的问题:不重复、不中断、不轻易被风控拦住。如果你也有舍不得丢的抖音内容,趁还在,把它存下来。

【免费下载链接】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),仅供参考

http://www.jsqmd.com/news/1398789/

相关文章:

  • 3个场景实测res-downloader下载神器:视频号、抖音、QQ音乐等资源一键拿下
  • overlay-kit高级技巧:如何在React组件外打开弹窗
  • 电脑内存总是不够用?这款免费内存清理工具 Mem Reduct 让老电脑3分钟满血复活
  • 用文字就能“画“出专业图表:GraphvizOnline 浏览器版 GraphViz 保姆级体验
  • Winlator-Frost 游戏崩溃怎么办?5 步排查 + 性能优化实用指南
  • 天道观后感24
  • BT下载连不上几个节点?这份每日自动更新的公共Tracker清单值得一试
  • 爱马仕包包深圳出手前养护指南,简单打理小幅提升回收报价 - 拾闻观天地
  • mathlib数学库快速上手全攻略:用代码证明数学定理的免费神器
  • Tea Sepolia Testnet必备工具:Tea Auto Bot安装与配置教程
  • NLP 多任务评测巡检:按任务拆指标,别用一个均值
  • 生命涌现的小龙虾技能之【Livestock Counting | 养殖场盘点计数】简介
  • 3步完成百度网盘免登录高速下载:pdown这个5MB小工具的完整用法
  • 修改pip与conda配置
  • OpenCore Legacy Patcher 完整教程:让 2007 年老旧 Mac 轻松运行最新 macOS
  • HoneySelect2 汉化去和谐加 MOD 一次到位:HS2-HF Patch 安装与进阶全攻略
  • 被苹果判了“退役“的老Mac,OpenCore Legacy Patcher免费续命最新macOS的完整指南
  • IP-Adapter 新手教程:10 分钟给 Stable Diffusion 加上图像提示,让 AI 照着参考图出图
  • 从零玩转 N_m3u8DL-RE:m3u8 视频下载与直播录制的完整实战笔记
  • 答非所问的 RAG,问题不在大模型:用 WeKnora 从零搭建企业知识库实战
  • Android 液态玻璃效果实战指南:三小时从零做出会“呼吸“的玻璃态控件
  • 2026杭州钻石回收上門实操提醒,贵重首饰不要单独交给陌生人,双人到场更安心 - 品牌观测员
  • react-native-typescript-transformer高级配置:tsconfig.json优化与最佳实践
  • PyTorch 实验环境本地跑通:固定依赖、随机种子与设备探测
  • 硬件信息可视化实战:将Hardware.Info数据集成到Web仪表板
  • instascrape核心功能详解:轻松抓取Instagram帖子、评论和用户资料
  • iOS越狱工具2026选购指南:3步查清iPhone兼容性,从iOS 17到iOS 27一次看懂
  • Darkwallet交易教程:从发送到接收比特币,掌握隐私交易的每一步
  • TwIL-LM3量化指南:Q4_K_M仅需1.78GiB显存,性能损失最小化
  • 百度文库文档免费保存终极指南:一个开源脚本帮你把 PDF 完整拿到手