抖音视频批量下载终极实测:douyin-downloader 从零跑通到直播录制一次讲透
2026/8/17 17:04:43 网站建设 项目流程

抖音视频批量下载终极实测: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

手动存一条 30 秒的抖音视频,复制链接、去水印、改文件名,最快也要 1 分钟;把 274 条作品这样逐条存下来,基本等于搭上一个通宵。开源工具 douyin-downloader 专治抖音批量下载这个痛点:去水印、支持视频/图集/合集/音乐/直播录制,还自带去重、重试和进度条。读完本文,你可以在 5 分钟内跑通第一条批量下载命令,并拿到 4 个真实工作场景下可直接复制的配置。

本文是一份面向普通用户的 douyin-downloader 实战教程,不堆功能列表,而是带着你从装环境、配 Cookie、写最小配置开始,把"下载"这件事真正用起来。无论你是自媒体运营、学术研究者,还是只想备份自己收藏的普通用户,都适用。

先看真实运行画面:一次下载到底发生了什么

第一次跑通命令后,你会看到这样一个命令行界面:

画面分三个区域:上方是下载配置(总数、线程数、保存路径),中间是批量下载进度(每个文件的状态,这里清晰写着"跳过已存在"),下方是结果统计(成功数量与用时)。注意那个"跳过已存在"——它靠 SQLite 数据库记录 + 本地文件双重比对,同一个作品下载过一次就自动跳过,这正是后面所有增量玩法的地基。

三分钟完成环境配置与 Cookie 获取

动手之前先把环境准备好,这一步只要三条命令。

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

接下来是很多新手最容易卡住的一步——Cookie。工具已经帮你封装好了:

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

这个命令会自动打开浏览器,你登录抖音后回到终端按一下回车,Cookie 就会被自动写进配置文件,全程不用手动复制粘贴。核心实现可以参考 tools/cookie_fetcher.py 和 auth/cookie_manager.py。

一份最小配置,跑通第一次抖音批量下载

新建config.yml,把下面这份配置粘贴进去,替换链接即可:

link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx path: ./Downloaded/ mode: - post number: post: 50 thread: 5 retry_times: 3 database: true

运行:

python run.py -c config.yml

这份配置里的四个字段决定了你的下载体验mode: post表示下载作者发布的作品;number.post: 50是数量上限,改成0就是全量下载;thread: 5控制并发;database: true开启去重与历史记录。到这一步,你已经完成了第一个真实的抖音视频批量下载任务。

一个工具,认得出八种抖音链接

跑通第一次后你会发现,link里能放的远不止用户主页。工具内置的链接解析模块会识别常见抖音地址类型,核心逻辑在 core/url_parser.py:

链接类型示例配合的 mode
单个短视频/video/7604129988555574538默认
单个图文/note/7341234567890123456默认
单个合集/collection/7341234567890123456默认
单个音乐原声/music/7341234567890123456默认
短链接v.douyin.com/xxxx自动解析
作者主页/user/{sec_uid}post/like/mix/music
直播间live.douyin.com/{房间号}直播录制
我的收藏夹/user/self?showTab=favorite_collectioncollect/collectmix

这里有一个容易忽略的细节:同一个作品在不同模式下出现,不会重复下载。比如某个视频既在作者主页、又在作者点赞列表里,跨模式自动去重会帮你只存一份。接下来,我们用四个真实场景把这套能力串起来用。

场景一:竞品追更,只下新作品不重复

需求背景:做自媒体运营,每天要盯 30 个竞品账号的新内容做拆解。以前的做法是挨个打开主页、判断哪个是新发的、再逐条下载,一个上午就没了。

配置做法:把多个账号写进link,同时开启增量下载,让工具只补新作品:

link: - https://www.douyin.com/user/竞品账号A - https://www.douyin.com/user/竞品账号B mode: - post number: post: 0 # 0 = 不限制数量 increase: post: true # 只下载数据库里没有的新作品 folderstyle: true filename_template: "{date}_{title}_{id}"

效果对比:原来人工轮巡 30 个账号要40 分钟,现在每天一条python run.py -c config.yml,配合系统定时任务(Linux 用 crontab、Windows 用任务计划程序)在凌晨自动跑,6 分钟跑完且只下载新增内容。加上filename_template按"日期_标题_ID"命名,素材归档完全不需要二次整理。

批量运行时,你会看到这样的进度画面——每个文件逐条推进,失败的自动重试,已存在的自动跳过:

场景二:建素材库,按关键词与热搜批量抓取

需求背景:培训机构要建一个包含上千条优质案例的素材库,按学科归类;研究员则需要按话题采集样本。这类需求不关心"谁发的",只关心"内容是什么"。

配置做法:工具提供了两个命令行参数,直接按内容抓取:

# 搜索"猫咪"相关作品,最多 100 条,结果落 JSONL python run.py --search "猫咪" --search-max 100 -p ./Downloaded/ # 拉取抖音热搜榜前 30 条 python run.py --hot-board 30 -p ./Downloaded/

再配合评论采集和时间过滤,把"只下载视频"升级成"采集结构化数据":

start_time: "2024-01-01" end_time: "2024-12-31" comments: enabled: true include_replies: false max_comments: 500

效果对比:原来人工逐条搜索、记录互动数据,300 条样本要抓一周;现在按关键词 + 热搜批量跑,半天拿到上千条,每条作品旁边还会生成*_comments.json评论数据和完整元数据 JSON,方便做多维分析。

场景三:直播录制,不再错过任何一场重要直播

需求背景:运营需要录制竞品直播复盘话术,老师要录下自己的直播课留档。手机录屏会占住手机、画质不稳定、容易中途断掉。

配置做法:直接在link里放直播间地址,加上录制参数:

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

运行后,工具会先拉取直播信息并让你选择清晰度,再解析出推流地址开始录制:

效果对比:录制的 FLV 文件会保存在Downloaded/{作者}/live/目录下,并附带*_room.json直播间元数据快照。最实用的是断点保护——主播下播、网络空闲或你按 Ctrl+C 中断时,已录制的字节会被完整保留,不会前功尽弃。录制 2 小时直播,人工录屏可能要占 10GB 手机空间,这个方案直接落到硬盘,画质更高。

场景四:备份收藏与点赞,让数据真正属于你

需求背景:刷了 300 条收藏,某天作品被作者删除或设为私密,就再也找不回来了。手机相册空间也撑不住高清视频。

配置做法:使用当前登录账号的收藏夹链接,批量同步到本地:

link: - https://www.douyin.com/user/self?showTab=favorite_collection mode: - collect number: collect: 0

想看点赞过的作品?把mode换成like,配合number.like: 0全量拉取即可。注意一个细节collect模式只支持当前登录的账号,而且必须单独使用,不能和post/like混在一个配置里。

效果对比:原来收藏了 300 条、能随时打开看的可能不到一半;现在一次性全量归档到硬盘,每条作品连同封面、音乐、作者头像、JSON 元数据一起保存,数据真正掌握在自己手里。

下载完成的文件长什么样

所有下载内容默认按"作者 → 模式 → 日期_标题_ID"三层结构组织:

Downloaded/ └── 作者名/ └── post/ └── 2024-02-07_作品标题_aweme_id/ ├── 视频.mp4 ├── 封面_cover.jpg ├── 音乐_music.mp3 ├── 元数据_data.json └── 头像_avatar.jpg

在文件管理器里看,就是按日期和标题自动分类好的文件夹,一目了然:

每一条作品都是"全家桶":视频、封面、原声、作者头像、结构化元数据一应俱全。这正是它和普通在线解析站最大的区别——在线站给你一个 MP4 就结束了,而这里拿到的是一个可直接进入素材库的完整条目。

三个容易错过的高级能力

基础玩法跑通后,还有三个"用到就是赚到"的隐藏能力:

1. 视频转写(transcript):下载视频后自动调用转写接口生成文字稿,图文不生效。只需在配置里打开开关并配置 API Key,就会产出xxx.transcript.txtxxx.transcript.json。做内容拆解、课程整理时,等于白送一份逐字稿。

2. REST API 服务模式python run.py --serve --serve-port 8000会把整个工具变成一个本地服务,提供/api/v1/download/api/v1/jobs/{job_id}等接口,方便集成到自己的系统里。核心实现参考 server/app.py 和 server/jobs.py。

3. 完成通知推送:支持 Bark、Telegram、Webhook 三种渠道,下载完成或失败时推送消息。批量任务挂着跑的时候,手机上就能收到结果,不用一直盯着终端。

能力一句话价值在哪开启
视频转写下载即出逐字稿transcript.*
REST API嵌入你自己的系统--serve参数
完成通知任务跑完自动喊你notifications.*
浏览器兜底翻页风控时人工过验证browser_fallback.*

不想敲命令?桌面版 Douzy 用两张截图看懂

如果你完全不想碰命令行,项目还提供了一个基于同一套后端打造的桌面客户端Douzy(目前内测中)。粘贴链接,点击"检测链接",工具会自动识别出这是博主主页还是合集,然后选择要下载的内容类型:

下载任务完成后,在"任务中心"里能看到每一条任务的发布者、类型、数量和状态,失败的任务一目了然:

怎么选?一句话:要自动化、要定时、要嵌入脚本,用命令行版;只想"粘贴-下载-查看",用桌面版。两者共用同一套下载引擎和数据管理逻辑,迁移成本几乎为零。

藏在源码里的三重稳定保障

把稳定性设计放在最后讲,是因为它属于"加分项"而非"上手必需"。但它确实决定了批量下载能不能跑得长久:

  • 双策略下载:默认走 API 高速下载,遇到接口异常自动降级为浏览器模拟模式,保证任务不中断。这就是为什么它能保持较高下载成功率。
  • 失败重试 + 完整性校验:指数退避重试(1 秒、2 秒、5 秒递进),下载后用 Content-Length 比对文件完整性,不完整的自动清理并重试。
  • 节奏自律:默认速率限制约 2 请求/秒、并发 5,配合 SQLite 数据库去重,既不会浪费资源,也不会对平台造成压力。核心代码可参考 core/、control/、storage/database.py。

避坑清单:五个高频问题的处理办法

1. 只能抓到 20 条作品?这是翻页风控的常见现象。确保browser_fallback.enabled: trueheadless: false,浏览器弹窗出现后手动完成验证,不要急着关窗口。

2. Cookie 失效了?重新跑一次python -m tools.cookie_fetcher --config config.yml,工具会自动刷新并写回配置。

3. 想看详细日志?加参数运行:python run.py -c config.yml -v(显示 info 级别)或--show-warnings

4. 想重新下载某个作品?去重机制靠"数据库记录 + 本地文件"双重判断,只删文件或只删数据库记录都不彻底。最省事的办法是删除对应作品的文件和数据库中的记录(参考项目 README 中的清理命令),或者直接换一个path目录。

5. 下载慢?先把thread从 5 调到 8 试一轮;如果网络受限,在配置里加proxy: "http://127.0.0.1:7890"

合规提醒:边界在哪里

技术是无罪的,用法的边界要自己把握。douyin-downloader 设计用于个人学习、研究分析、备份自己可访问的内容等场景。请遵守以下原则:

  • 不用于商业性内容分发或侵权二次传播
  • 不用于大规模爬取干扰平台服务
  • 不用于获取他人隐私信息
  • 尊重内容创作者的权益,注明来源
  • 遵守平台的使用协议与相关法律法规

项目在 README 中同样声明了免责条款,使用者需自行承担相应风险与责任。

行动清单:今天就能做完的 5 件事

  1. 装环境:克隆仓库、安装依赖,顺手装好 Playwright(3 分钟)
  2. 取 Cookie:运行python -m tools.cookie_fetcher,登录一次(2 分钟)
  3. 跑通首单:用最小配置下载一个你喜欢的博主的 5 条作品,确认文件"全家桶"完整(5 分钟)
  4. 落地一个场景:从上面的四个场景里挑一个最贴近你工作的,套用配置跑一轮
  5. 开启增量:在配置里打开increase,配合系统定时任务,让素材库从此自动更新

从一个通宵手动下载,到一杯咖啡时间批量完成,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

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询