news 2026/9/24 13:42:27

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 是一个开源的抖音批量下载工具:给它一个作者主页链接,它按无水印源把作品批量存档到本地,并自动去重、可断点续跑。你不需要会 Python 开发,会开终端就够。

先跑通:一条命令下完第一条作品

跑通后的样子是这样的:终端里进度条走完,Downloaded/目录下出现作者名/post/日期_标题_作品ID/子目录,里面的 mp4 就是无水印原片,而不是 App 里保存的带水印版本。

在跑到这一步之前,需要完成 4 个前置动作:

  1. 拿到项目并安装依赖(要求 Python 3.8 以上,macOS / Linux / Windows 均可):
git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader pip install -r requirements.txt
  1. 复制一份配置模板,这是后面所有命令读取的唯一输入文件:
cp config.example.yml config.yml
  1. 安装浏览器自动化依赖(Playwright,一个控制真实浏览器的库),自动获取 Cookie:
pip install playwright python -m playwright install chromium python -m tools.cookie_fetcher --config config.yml

这一步会自动弹出抖音网页,你扫码登录后回到终端按 Enter,Cookie(网页版登录凭证,工具靠它读取作品数据)就写进 config.yml 了。手动从浏览器复制 Cookie 容易漏字段,不推荐。

  1. 首次运行:
python run.py -c config.yml

示例配置里number.post是 1,所以第一次只下 1 条作品,专门用来验证环境是否配好。

这条命令背后做了什么

刚才那条命令做的事可以拆成三段:读配置、拉列表、落盘。

读配置。config.example.yml 里每一项都有注释,核心的是link(抖音链接,示例里是一个作者主页)、mode(下载模式,示例为post即作者作品)、number(每种模式的下载条数上限)、cookies(登录凭证)。加载逻辑在 config/config_loader.py,缺省的项会取默认值,你不必一次看懂全部字段。

拉列表。工具按发布时间倒序翻作者的作品列表,number.post: 1就只取第 1 条,0表示不限条数。每条视频自动选用无水印源,并根据video_quality(默认highest)从多档码率里挑合适画质。

落盘。文件按「作者名 / 模式 / 作品」三级目录整理,默认落在path指定的./Downloaded/下;同时 SQLite(一个本地数据库文件,这里就是dy_downloader.db)会记下已下载的作品。数据库记录和磁盘文件双重核对,是后面「增量下载」不重复下载的基础。

全量存档一个创作者的作品

默认配置只下 1 条,全量存档要改三处:link换成目标作者主页,number.post改成 0(不限条数),按需打开封面、原声、元数据开关。作品按发布时间倒序拉取,开关打开后对应文件会和 mp4 一起保存在作品子目录里。

link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx path: ./Downloaded/ mode: - post number: post: 0 # 0 表示不限条数 video: true cover: true music: true json: true video_quality: highest # 可选 original / highest / lowest / 指定分辨率

注意:作者作品量大时,建议先把number.post设成具体数字(比如 100)验证流程,确认目录和画质没问题再放开为 0。

每周只补新作品:增量下载

创作者持续更新时,你想每周跑一次同一份配置,只拿新增作品,已有的不再下一遍。打开数据库和增量开关即可,其余配置保持不动。

database: true database_path: dy_downloader.db increase: post: true

原理:每次运行前,工具先查dy_downloader.db里有没有这条作品的记录,再核对磁盘上主文件是否还在,两者都确认才跳过。所以判断以本地媒体文件存在为准——你删掉文件,下次会重新下载;只删数据库记录,则不会触发重下。

只下载某个月份的作品

只想留上个月发布的作品时,不用爬完整主页:填两个日期边界,工具翻到早于start_time的作品后会提前停下,省掉大量翻页。

start_time: "2026-08-01" end_time: "2026-08-31"

注意:日期格式固定为YYYY-MM-DDend_time包含当天整天,不需要写下一天。

把下载能力接进自己的工作流

视频内容转成文字

想让每条视频附带文字稿,开启转写功能。它会调用 OpenAI 的音频转写接口,对每条视频作品在同目录生成.transcript.txt.transcript.json两个文件,图文作品不会转写。

transcript: enabled: true api_key_env: OPENAI_API_KEY

密钥通过环境变量提供,例如export OPENAI_API_KEY="sk-xxxx"

以 REST API 形式被别的系统调用

想把自己的系统接到这套下载能力上,可以把工具起成 REST API(一种用 HTTP 接口暴露服务的方式):先装依赖,再启动服务。

pip install fastapi uvicorn python run.py --serve --serve-port 8000

启动后,其他程序向POST /api/v1/download提交{"url": "..."}拿任务 ID,再向GET /api/v1/jobs/{job_id}查询状态,接口清单见 README.zh-CN.md。

配置速查

字段作用默认值何时需要改
link抖音作品或作者主页链接示例作者主页每个新目标都要换
mode下载模式(post/like/mix/music 等)[post]下载点赞、合集、音乐时切换
number.postpost 模式下载条数上限示例配置为 1全量存档改 0(不限)
path输出目录./Downloaded/想换保存位置时
cover/music/json是否附带保存封面 / 原声 / 元数据false想留额外产物时
video_quality画质档位选择highest要原画或省流量时
start_time/end_time发布时间过滤""(不限)只下某时间段作品时
database启用 SQLite 去重与历史记录true增量下载必须保持开启
database_path数据库文件路径dy_downloader.db想隔离不同任务历史时
increase.postpost 模式增量开关true周期性只补新作品时
thread并发下载数5大批量嫌慢时调高
proxyAPI 请求与下载的 HTTP 代理""网络不稳时配置
transcript.enabled视频转写开关false要生成文字稿时
transcript.api_key_env密钥所在的环境变量名OPENAI_API_KEY使用其他密钥来源时
browser_fallback.enabled翻页受限时启用浏览器兜底true抓不全时保持开启
browser_fallback.headless兜底浏览器是否隐藏窗口false需要手动过验证时保持 false
cookies网页版登录凭证占位符过期失效时重新获取

排错附录

现象:批量下载只抓到 20 条左右就停,没有明确报错。

原因:抖音对作品列表翻页有风控限制,接口策略会随平台调整,以 README 的限制说明 为准。

处理:确认浏览器兜底打开,弹窗出现后手动完成验证再关:

browser_fallback: enabled: true headless: false

现象:之前能跑,现在报 403 或提示未登录。

原因:Cookie 有有效期,一般只有几天到几周。

处理:重跑自动获取,重新扫码登录一次:

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

现象:大批量下载速度慢,进度推进很慢。

原因:默认并发 5、速率限制偏保守,稳定性优先于速度。

处理:调高并发(不建议超过 8),网络不稳时加代理:

thread: 8 proxy: "http://127.0.0.1:7890"

文件在哪、下一步做什么

跑完之后,所有产物默认在Downloaded/里:三级目录按作者、模式、作品整理,dy_downloader.db记录下载历史,download_manifest.jsonl是一份清单快照。

下一步:把 config.yml 里的示例链接换成目标作者主页,直接运行python run.py -c config.yml

命令行版面向抖音国内站;不想碰命令行可以关注内测中的桌面版 Douzy,粘贴链接即可开始批量下载,还支持 TikTok 和 YouTube。

任务中心里能查到每个批量下载任务的成功与失败条数,失败项可直接重试。

仅供个人学习与备份,不用于商业用途。

【免费下载链接】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/9/24 13:38:08

推荐开源项目:Eventyay 支持FAQ平台

推荐开源项目:Eventyay 支持FAQ平台 【免费下载链接】open-event-documentation Archived documentation 项目地址: https://gitcode.com/gh_mirrors/su/open-event-documentation 项目介绍 Eventyay 支持FAQ是一个全面的资源库,为活动组织者、参…

作者头像 李华
网站建设 2026/9/24 13:34:51

私人牙科诊所管理系统

私人牙科诊所管理系统选题背景与意义随着我国居民健康意识的不断提升以及口腔健康问题日益受到重视,私人牙科诊所的数量呈现快速增长趋势。相较于大型公立医院,私人牙科诊所具有服务灵活、环境舒适、个性化程度高等优势,逐渐成为民众获取口腔…

作者头像 李华
网站建设 2026/9/24 13:34:00

【Dv2Admin】自由切换web前端路由的脚本

在日常开发过程中,前端项目的不同环境(如开发、测试、正式环境)需要配置不同的API路由地址。每次手动更改配置文件可能会浪费大量时间,尤其是在项目频繁切换环境时。为了解决这个问题,可以通过Python脚本自动切换这些配置,简化操作流程,提升开发效率。 本文介绍了如何使…

作者头像 李华
网站建设 2026/9/24 13:33:40

【Dv3Admin】应用Routing路由配置文件解析

WebSocket 是构建实时互动系统的关键技术,适用于消息推送、状态同步等场景。传统基于 HTTP 的请求响应模型难以满足低延迟通信需求,WebSocket 作为全双工协议,为系统提供了持续的连接能力。 本文分析 application/routing.py 模块如何将客户端的 WebSocket 请求路由到后端处…

作者头像 李华