news 2026/8/15 10:31:03

douyin-downloader 抖音批量下载实战全流程:视频、合集、音乐与直播回放一键备份宝典

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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 是一个面向日常使用的开源抖音下载工具,能把单条视频、图文、合集、音乐原声乃至直播回放统一收进本地硬盘,默认附带进度展示、失败重试、SQLite 去重和浏览器兜底能力。这篇文章将跟着一位叫小羽的素材收集者,走完一趟从安装配置到高阶玩法的完整备份流程,看完你也能立刻上手。

先说结论:它不是普通意义上的"下载器"

市面上的抖音下载方案大致有三类,小羽最初都试过,最后才锁定这个开源项目。三者差异用一张表就能看明白:

方案对比单个视频作者主页批量去水印去重/增量直播回放需要编程
手动录屏可以几乎不可能勉强不需要
在线解析网页可以不支持部分支持不需要
douyin-downloader可以可以支持支持支持只需一条命令

它的核心价值在于"一次配置、全类型覆盖":同一个工具既能下一条视频,也能把整个作者主页的作品、点赞、合集、音乐一次性拉下来,还能在直播结束前抢录回放。下载完的文件按"作者 → 内容类型 → 作品"自动分层归档,配合 JSON 清单和 SQLite 数据库,你的资源库会一直井井有条。

三分钟搭好环境:clone、装依赖、写配置

整个准备过程只有三步,不需要任何复杂的环境变量。

第一步,把代码拉下来并安装依赖:

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

如果你希望使用浏览器兜底(翻页被风控时自动接管)或自动获取 Cookie,再补装一个 Playwright:

pip install playwright python -m playwright install chromium

第二步,复制一份自己的配置:

cp config.example.yml config.yml

配置文件里每一项都有注释说明,新手照着填即可,完整字段说明可以随时查阅 config.example.yml。

第三步,用一条命令完成身份认证:

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

运行后会自动打开浏览器,登录一次抖音,回到终端按回车,程序就把 Cookie 写进配置了,全程不用手动复制粘贴。跑通之后可以用python run.py -c config.yml验证,看到进度条和日志输出就说明环境已经就绪。

主流程:把链接变成硬盘里规整的文件夹

小羽的素材库里什么内容都有,这个工具能识别的链接类型也相当全:

粘贴的链接对应内容
/video/12345单条视频
/note/12345图文作品
/collection/12345/mix/12345单个合集
/music/12345音乐原声
/user/xxxx作者主页(可批量)
live.douyin.com/12345直播与回放

单条下载最简单,把链接直接填进配置的link列表即可:

link: - https://www.douyin.com/video/7604129988555574538 path: ./素材库/

批量下载作者主页是小羽用得最多的场景。只要在mode里声明要抓取的内容类型,再配合number限定数量,工具就会自动逐项处理:

link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx path: ./素材库/ mode: - post # 作者发布的作品 - like # 作者点赞过的作品 - mix # 作者的合集 - music # 作者使用的音乐 number: post: 50 thread: 5 retry_times: 3

命令行执行后,终端会实时滚动"批量下载进度",每个作品的状态、成功数与用时都一目了然:

下载完成后,文件会按下面的结构落盘,同一个作者的不同类型内容彼此隔离,不会混在一起:

素材库/ ├── download_manifest.jsonl # 每行一条 JSON 的下载清单 └── 小羽/ ├── post/ │ └── 2024-05-01_作品标题_awemeid/ │ ├── 2024-05-01_作品标题_awemeid.mp4 │ ├── 2024-05-01_作品标题_awemeid_cover.jpg │ ├── 2024-05-01_作品标题_awemeid_music.mp3 │ └── 2024-05-01_作品标题_awemeid_data.json ├── like/ ├── mix/ └── music/

每个作品会同时拿到视频、封面、音乐和原始 JSON 元数据,download_manifest.jsonl还会记录发布日期、标签、文件路径等信息,方便后续检索。下图是小羽的下载目录实拍,日期加标题的命名让每个文件夹一眼就能认出内容:

进阶玩法:把下载调教成你的专属节奏

基础流程跑通后,下面这些配置能让工具更贴合个人习惯。

自定义命名规则

默认命名是{date}_{title}_{id},你也可以在设置里换成自己习惯的组合,可用变量包括日期、标题、作者、ID、类型等,比如改成{year}/{month}/{author}/{title}_{id}。规则模板中至少要保留{id},避免不同作品重名互相覆盖。桌面版的命名设置界面长这样:

时间过滤与增量下载

只想保留某段时间内的内容,直接声明起止日期:

start_time: "2024-01-01" end_time: "2024-12-31"

更省心的是增量模式:开启increase并保留database: true后,工具会通过 SQLite 记录 + 本地文件双重检查,自动跳过已下载的作品,只抓新发布的,非常适合"隔几天跑一次"的追更场景。

直播回放录制

遇到喜欢的直播,把房间链接填进link,再配上live参数即可录制。支持 FLV 和 HLS,主播下播或网络中断时已录制的字节会自动保留为正式文件,不会白录一场:

link: - https://live.douyin.com/123456789 live: max_duration_seconds: 3600 # 0 表示录到主播下播 chunk_size: 65536 idle_timeout_seconds: 30

录制过程同样在终端可见,工具会自动解析直播地址并选择可用清晰度:

评论采集与完成通知

需要做内容分析的场景,可以打开comments.enabled,每个作品会额外生成*_comments.json;想让下载完第一时间知道结果,配置notifications支持 Bark、Telegram 和 Webhook 三类推送,失败和成功都可以触发,单个通道故障也不会阻塞主流程。

两种操作姿势:终端自动化与桌面可视化

命令行适合挂在服务器上跑定时任务,而如果你更习惯图形界面,同项目还附带一款基于同一套后端的桌面客户端 Douzy,粘贴链接即可开始,两者能力完全对齐。

桌面版的核心体验集中在四个页签上:

  • 下载:粘贴链接、检测类型、勾选要抓的内容,一键提交任务
  • 关注:同步关注列表,按粉丝数筛选博主,批量发起下载
  • 任务中心:查看每个任务的状态、成功数与耗时
  • 作品档案:SQLite 记录的下载历史,支持按作者、关键词、时间范围筛选

下载过程中还能看到实时的任务进度、队列状态和事件流,比终端日志更直观:

对开发者而言,run.py --serve --serve-port 8000还能把工具变成 REST API 服务,通过 HTTP 接口提交下载任务、查询任务状态,方便集成到自己的自动化流程里。相关接口细节与配置参数说明可以参考 USAGE.md。

排障手册:遇到问题别慌

现象原因处理办法
只能抓到 20 条作品抖音翻页风控确认browser_fallback.enabled: trueheadless: false,浏览器弹出后手动过一下验证码再等待
提示 Cookie 失效登录态过期重新执行python -m tools.cookie_fetcher --config config.yml
想重新下载某个作品数据库与本地文件双重去重生效先删除对应的本地作品目录,再执行sqlite3 dy_downloader.db "DELETE FROM aweme WHERE aweme_id='xxx';"
进度条日志刷屏默认静默模式未开启保持progress.quiet_logs: true,调试时再临时加-v
想看下载历史查询 SQLite:sqlite3 dy_downloader.db "SELECT aweme_id, title, author_name FROM aweme ORDER BY download_time DESC LIMIT 20;"

如果对内部实现好奇,核心流程都在 core/ 目录,配置加载、限速重试、去重逻辑都有清晰的模块划分,配合 功能需求文档 可以快速理解整体设计。

把备份变成习惯

从一个收藏夹杂乱无章的新手,到拥有规整素材库的老手,小羽只用了一个下午。你也可以按这个节奏开始:

  1. 克隆项目、安装依赖,用自动 Cookie 工具完成认证
  2. 从一条视频链接开始跑通流程,确认输出目录符合预期
  3. 加入作者主页的批量模式,配合增量下载定期追更
  4. 按需开启直播录制、评论采集或通知推送

最后提醒一句:工具服务于个人学习与内容管理,请尊重创作者版权,遵守平台规则,下载的内容仅用于合法合规用途。项目采用 MIT 开源协议,也欢迎你基于自己的需求做二次开发。

现在就可以打开终端,把第一行命令敲下去,让精彩的抖音内容稳稳落在你的硬盘里。

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/15 10:30:03

键盘中的STM32L100单片机的测量

键盘里面的MCU AD\Test\2026\August\TestSTM32L100R8T6A.SchDoc 01 【测试STM32L100】 一、背景 在昨天拆卸的这颗机械键盘中间发现了一颗ST的ARM单片机。 就是这颗STM32L100单片机, 之前没有使用过这个单片机, 下面我们制作一个简单的电路板来测试一下…

作者头像 李华
网站建设 2026/8/15 10:29:08

SpringBoot_1:业务异常与全局异常处理

目录 一、构建Result统一结果封装 二、定义业务异常 三、定义全局异常处理 四、全局异常捕获底层原理 五、总结 1、请求到达 2、异常捕获 3、异常处理入口 4、责任链模式遍历解析器 5、核心解析:ExceptionHandlerExceptionResolver 6、返回响应 在做业务…

作者头像 李华
网站建设 2026/8/15 10:27:22

Java Web项目实战:Naver第三方登录集成与OAuth 2.0安全实践

1. 项目缘起:为什么需要关注Naver第三方登录的Web实现? 最近在做一个面向韩国市场的项目,对接Naver第三方登录时,发现了一个挺有意思的现象:市面上关于Naver登录的教程,十篇里有九篇都在讲移动端SDK&#x…

作者头像 李华
网站建设 2026/8/15 10:26:46

勒索病毒攻击链解析与防御实战指南

1. 勒索病毒攻击链全景解析 勒索病毒(Ransomware)作为当前网络安全领域最具破坏性的威胁之一,其攻击过程呈现出高度专业化的特征。典型的攻击链包含六个关键阶段: 1.1 初始入侵阶段 攻击者主要通过以下三种途径建立初始立足点&a…

作者头像 李华