douyin-downloader 教程:免费批量下载抖音视频去水印,5 分钟上手
2026/8/25 5:32:24 网站建设 项目流程

douyin-downloader 教程:免费批量下载抖音视频去水印,5 分钟上手

【免费下载链接】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 数据库去重、断点续传和浏览器兜底。只存一个无水印视频,3 条命令就能跑通;想把整个创作者主页搬回本地硬盘,配置模板也已经给你备好。这篇教程面向不想写代码的新手,带你从安装依赖、拿到第一个无水印视频,一路走到批量增量下载、直播录制和 API 服务。

这篇适合谁:先对号入座

  • 如果你正在遇到"存下来的视频总带水印",它能帮你挑无水印的最高清源,顺带存下封面、BGM、作者头像和元数据 JSON;
  • 如果你正在遇到"一个个存太慢、文件名乱成一锅粥",它能帮你按作者主页批量下载,文件自动按"日期 + 标题 + ID"归档;
  • 如果你正在遇到"隔几天再下又把老视频下了一遍",它能帮你用数据库记住每个作品 ID,第二次运行只拉新增;
  • 如果你正在遇到"想录主播直播、分析作品下的用户讨论",它能帮你挂机录直播流、导出带二级回复的评论 JSON;
  • 如果你正在遇到"想把下载能力接进自己的自动化流程",它能帮你启动一个 REST API 服务(就是 HTTP 接口),发一个请求就能提交下载任务。

能力速览:场景、能力与效果一页对照

场景能力效果
存单个视频 / 图文粘贴作品链接输出无水印最高清源,可附带封面、BGM
手机 App 分享链接v.douyin.com短链自动解析不用手动转长链
保存某作者全部作品主页链接 +mode: post默认 5 线程批量抓取,数量和时间范围可控
搬运点赞与收藏夹mode: like/collect需登录,批量搬走"点赞过"和"收藏夹"
下载整组合集合集链接自动展开合集,批量下完
保存原声音乐音乐链接优先原声文件,缺失时回退到该音乐下首条作品
录主播直播直播间链接FLV/HLS 录制,下播自动保留已录数据
分析作品讨论评论采集每作品生成*_comments.json,含二级回复
内容选题研究热搜榜 / 关键词搜索前 30 条热搜或 100 条关键词作品,导出 JSONL

第一阶 · 最小验证:用最少命令跑通流程

目标是拿到第一个无水印视频,全程只用一个终端。

克隆项目与安装依赖命令

前提是本地装了 Python 3.8 及以上版本:

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

第一条把项目代码拉到本地,第二条进入放主程序的子目录,第三条安装全部 Python 依赖;如果下载慢,最后一条命令末尾追加-i https://pypi.tuna.tsinghua.edu.cn/simple换国内镜像源。

Cookie 获取命令

抖音需要登录身份才返回完整内容,Cookie(cookie)就是登录凭证:

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

这条命令会弹出浏览器,你扫码登录一次抖音,回终端按回车,Cookie 就自动写进配置文件,只保存在本地不上传;有效期一般一两星期,过期重跑这条命令即可。如果要用到浏览器兜底,先装浏览器自动化引擎:

pip install playwright python -m playwright install chromium

前者安装 Playwright 这个浏览器自动化库,后者下载它需要的 Chromium 浏览器内核。

写一份最小配置

cp config.example.yml config.yml

把项目自带的模板复制一份当自己的配置,模板在douyin-downloader/config.example.yml,每个字段都带注释。打开config.yml,把链接换成要下的视频:

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

link是下载目标,path是保存目录,后面三行决定要不要连带下载背景音乐、封面图和作品元数据 JSON,其余保持默认。

运行第一次下载

python run.py -c config.yml

-c指定配置文件,这条命令启动下载,终端实时显示进度、跳过提示和统计信息,几秒后Downloaded/里就有第一个无水印视频。

命令行效果:顶部显示时间范围与作品总数,中间是下载配置和批量进度,底部给出成功数与保存位置

第二阶 · 批量与增量:把整个作者主页搬回家

批量主页下载配置

把链接换成创作者主页地址,指定模式和数量上限:

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

mode: post表示抓取发布的作品,number: 50表示只下最近 50 个,0 表示全量;还可以同时写like(他点赞过)、mix(合集)、music(用过的原声)。运行后一排排进度条并行推进,默认 5 线程。

批量下载时每个作品都有独立进度条,多线程并行、失败自动重试

增量去重配置

批量下载最怕重复。开启数据库与增量开关:

database: true increase: post: true

database启用 SQLite 记录(SQLite 是免安装的单文件数据库,每次下载的作品 ID 都存进去);increase.post: true表示再下同一作者时自动跳过已有作品,只拉新增。配合内置的断点续传和完整性校验,文件不完整会自动清掉重下,基本不用重复劳动。

时间范围过滤与命名模板

只想要某段时间的作品,加两行:

start_time: "2024-06-01" end_time: "2024-06-30"

工具只搬这个时间窗口内发布的作品,其余不碰。命名和目录也能自定义:

folderstyle: true filename_template: "{date}_{title}_{id}" folder_template: "{date}_{title}_{id}"

{date}{title}{id}是可用变量,模板里必须含{id}防止重名覆盖;folderstyle: true表示每个作品单独建子文件夹。落盘效果就是"一个作品一个文件夹",视频、封面、音乐、元数据 JSON 整齐放一起,Downloaded/下还有一份download_manifest.jsonl,每行一条下载记录,方便追溯。

下载完成后的目录:按"日期 + 标题"自动分文件夹,视频与封面资源齐全

第三阶 · 进阶与自动化:直播、评论、API

下面每项都是"一句场景 + 最小配置",按需开启。

直播录制命令

喜欢的博主开播了,但你没法守着?把直播间链接写进配置:

link: - https://live.douyin.com/123456789 live: max_duration_seconds: 0

max_duration_seconds: 0表示录到主播下播,改成 3600 就只录 1 小时;录好的 FLV(常见直播流格式)存在Downloaded/{作者}/live/,下播或中断时已录数据都会保留。

直播录制:自动识别直播间、显示在线观众数与清晰度选项,拉取 FLV 流地址并保存

评论采集配置

想分析某条作品下的用户讨论:

comments: enabled: true include_replies: true

开启后每个作品多生成一份*_comments.jsoninclude_replies: true会连二级回复一起抓,适合内容研究和选题挖掘。

热搜榜与关键词搜索

不追特定博主,只想看今天抖音在聊什么:

python run.py --hot-board 30 -p ./Downloaded python run.py --search "猫咪" --search-max 100 -p ./Downloaded

第一条抓热搜榜前 30 条,第二条按关键词搜 100 条作品,结果都是 JSONL 文件(每行一条 JSON 记录的文本格式),方便后续分析。

REST API 服务模式

想把下载能力接进自己的系统:

python run.py --serve --serve-port 8000

需先执行pip install fastapi uvicorn;启动后向/api/v1/download发 POST 请求提交链接、向/api/v1/jobs/{job_id}发 GET 请求查进度,很适合自动化脚本编排。核心下载逻辑在douyin-downloader/core/,测试用例在douyin-downloader/tests/,想扩展功能时照着看即可。

完成通知与语音转写

长任务挂着跑,想完事立刻知道?

notifications: enabled: true on_success: true

providers里填具体渠道,支持 Bark、Telegram、Webhook,任务跑完手机马上收到推送。想把视频内容变成可检索的文字:

transcript: enabled: true

配置好 OpenAI API Key 后,每个视频作品会生成xxx.transcript.txt转写文本(图文不转写)。

不想敲命令:桌面版客户端

如果完全不想碰终端,项目还有基于同一套后端的桌面版:粘贴链接即可开始下载,任务中心逐条查看每个下载任务的状态,作品档案页支持按作者、标题、时间筛选和批量导出。

桌面版主界面:粘贴链接、检测内容类型、勾选作品 / 喜欢 / 合集后一键开始

常用配置速查表

配置项作用建议值
link下载链接,支持视频 / 主页 / 短链 / 直播间换成你自己的
mode批量模式:post 作品、like 点赞、mix 合集、music 原声post
number.post各模式下载数量上限,0 为不限50
increase.post增量开关,只拉新作品true
databaseSQLite 去重与下载历史记录true
start_time/end_time发布时间过滤,格式 YYYY-MM-DD留空或指定日期
thread并发下载线程数3~5
retry_times失败重试次数,按 1s/2s/5s 指数退避3
browser_fallback.enabled翻页受限时用浏览器兜底、人工过验证码true
browser_fallback.headless兜底浏览器是否后台运行,false 才能弹窗手动过码false
filename_template文件命名模板,必须含{id}{date}_{title}_{id}
proxyHTTP/HTTPS 代理,如http://127.0.0.1:7890留空

排障速查:现象对照解法

现象:报 403 Forbidden 或"未登录"原因:Cookie 过期,有效期一般只有一到两周。 解法:重跑python -m tools.cookie_fetcher --config config.yml扫码一次即可。

现象:批量下载只能抓到 20 条作品原因:翻页触发了风控限制。 解法:确认browser_fallback.enabled: trueheadless: false,浏览器弹窗后手动完成验证码,等它跑完再关窗口。

现象:下载到一半断了,担心全部重来原因:不用慌,工具内置断点续传和完整性校验。 解法:直接再跑一次同样的命令,不完整的文件自动重下,已完成的会跳过。

现象:批量下载速度慢、内存占用偏高原因:并发和单次批量开得太激进。 解法:把thread调到 3,每次控制在 50~100 个作品分批跑,跑前确认磁盘剩余空间。

现象:想重下某作品却被跳过原因:去重是"数据库记录 + 本地文件名"双重检查。 解法:删掉本地文件目录,并删掉dy_downloader.db里对应记录;官方中文文档douyin-downloader/README.zh-CN.md的"重新下载"一节有现成命令。

收尾:三步开始

douyin-downloader 把"保存抖音内容"这件事,从手动点鼠标变成一份配置就能反复执行的流程:无水印源、去重、直播录制、API 集成,全在一个工具里。

  1. 克隆项目装依赖
  2. 扫码写入 Cookie
  3. 换链接跑首次任务

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

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

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

立即咨询