三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

抖音批量下载完整上手笔记:从第一条视频到整个合集

抖音批量下载完整上手笔记:从第一条视频到整个合集

抖音批量下载完整上手笔记:从第一条视频到整个合集

【免费下载链接】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 是一款开源的抖音下载工具,专为这件事而做:视频、图集、合集、音乐都能批量下载,还带进度显示、失败重试、SQLite 去重和浏览器兜底。

先讲一件小事:为什么有人想把视频存下来

去年冬天我接到一个不大不小的活:把一位美食博主的全部作品存下来,做竞品拆解。听起来不难,真正动手才发现有多磨人。三百多条视频,我一条条打开链接、等页面加载、再想办法绕开水印,弄到凌晨只存了不到一半,还漏掉十几条。那一刻我特别想找一个能"整页打包"的办法。

后来朋友把这个项目推给我,说"你试试"。试过之后,我之前的很多想法都被推翻了:原来批量下载可以不那么折腾。

第一次跑通:下载完,你手里多了什么

我最初也以为它就是个"去水印下载器",跑通之后才发现,它交付的东西比我预期完整得多。

默认情况下,每个作品下载完,你会得到:

  • 无水印的视频文件(图集则保存为图片合集)
  • 封面图,以及作者的带头像素材
  • 原声音乐(如果这条内容配了乐)
  • 一份 JSON 元数据,包含标题、发布时间、点赞评论数、作者信息等

这些文件会按作者分目录存放,命名自带时间,一眼就能看出哪条是什么时候发的。

对做内容的人来说,真正值钱的不只是视频本身,而是"内容 + 元数据"一起打包。之后无论做表格、做标签还是做检索,都有原始数据可查。需要评论数据的话,在配置里打开评论采集开关,还能给每个作品额外生成一份评论文件,方便后续分析互动情况。

最短几步跑通批量下载

说实话,上手路径比我预想的短。克隆、装依赖、写一个最小配置、运行,四步就够。

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

然后建一个最小配置文件,比如 config.yml:

link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx path: ./Downloaded/ mode: - post number: post: 50

link 放你想下载的主页或单条视频链接,path 是保存目录,mode 的 post 表示抓取主页全部作品,number 限制本次最多取 50 条。运行下面这行,命令行里就会开始逐条推进:

python run.py -c config.yml

第一次跑的时候,我盯着进度条看了很久——比自己手动存快了太多。

个别情况下抖音会要求登录态。配置里预留了 Cookie 的位置,直接粘贴一串 Cookie 就能用;不想手动弄,也可以设成自动获取。项目自带一份更完整的配置示例,里面每个可调项都有注释,照着改就行。

你可能会想调整的几个细节

用顺手之后,你多半会想按自己的网络和习惯调一调。这里挑三个最常见的问题说。

并发数和重试次数调到多少更稳

默认 thread 是 5、retry_times 是 3,对大多数家用网络来说已经够稳。如果带宽大、想跑得快些,可以把 thread 提到 8 左右;如果网络时不时抽风,把重试次数加到 5,成功率会明显回升。可调的空间不大,试过几次之后就顺手了:

thread: 8 retry_times: 5 filename_template: "{date}_{author}_{title}_{id}" author_dir: "nickname_uid"

下载失败时怎么兜底

再稳的网络也会遇到失败:视频被删除、接口临时限流、网络抖动。工具的处理方式是跳过失败项继续往后走,跑完后再统计成功与失败数量,你随时能定位是哪几条没下到。

更关键的是它自带浏览器兜底。当 API 接口拿不到数据时,会自动切到浏览器模拟模式继续解析;翻页时如果弹出验证,还会留出时间让你手动完成,而不是直接放弃。对应的开关在 browser_fallback 节点下:

browser_fallback: enabled: true headless: false

去重与命名:让文件不乱

批量下载最怕两件事:重复下载白费流量,文件命名乱得找不到。这个工具用两层机制解决:一层是 SQLite 数据库记录所有下载历史,再次遇到同一作品直接跳过;另一层是文件系统级的识别,已存在的文件不会重复保存。

命名规则也可以自定义。模板里可以用 {date}、{author}、{title}、{id} 这些变量自由组合,作者目录支持按昵称、按唯一 ID 或两者结合来组织,重度用户通常选"昵称 + ID"的组合,既直观又不会因为改名而分裂。

它适合谁,以及一句提醒

如果你是自媒体作者,需要定期收集竞品内容做分析;如果你是研究者,需要按话题采集样本;如果你只是想把喜欢的博主作品完整备份——douyin-downloader 都能帮上忙。想看内部实现的话,核心代码集中在 douyin-downloader 的 core 目录下,从各种下载器的注册与调度逻辑入手就能理清脉络。

最后照例提醒一句:下载工具只是手段,使用时要尊重内容的版权和平台规则,别拿它去做违背他人意愿的事。技术本身没问题,用的人心里要有一杆秤。

今晚可以先拿一条链接试试。把链接贴进配置,跑一次,看到文件落进目录的那一刻,你会理解我为什么愿意把它推荐给你。

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

← 返回列表