news 2026/10/5 6:38:30

抖音无水印批量下载 4 步快速上手:douyin-downloader 免费工具完整教程,不用写代码

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
抖音无水印批量下载 4 步快速上手:douyin-downloader 免费工具完整教程,不用写代码

抖音无水印批量下载 4 步快速上手: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 是一个免费开源的抖音批量下载工具:贴一个链接,它自动挑选无水印的视频源,把作品批量落盘到本地磁盘。单条作品的抖音无水印下载,或整页博主主页批量下载都能覆盖。全程不改代码,只动几个配置字段,适合想备份博主作品的个人用户。

一个工具,几件事:哪些抖音下载需求它能接

先快速对号入座,看看你要做的事在不在里面:

  • 存一个主页:把某位博主的全部作品按「作者 → 类型 → 日期」搬进本地文件夹,封面、原声、JSON 元数据按需附带;
  • 追更不重下:过几天对同一主页再跑一次,数据库里记过的条目自动跳过,只搬新增作品;
  • 合集整存:把合集页链接丢进配置,长系列一次性批量收齐;
  • 只留原声:关掉视频、打开原声,每个作品只留一份 mp3,体积省一大截。

四种玩法的入口都是同一个:一份 YAML 配置 + 一条链接。

第一次配置:4 步跑通抖音无水印下载

第 1 步:拉代码,装依赖

先敲python -V确认版本在 3.9 及以上(pyproject.toml 声明的最低要求),然后:

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

requirements.txt就是全部依赖清单。pip 跑完、没有红色 Traceback 就算成了。

第 2 步:生成一份自己的配置

cp config.example.yml config.yml

项目根目录多出一个config.yml就说明成功了。后面所有改动都在这份文件里做;拿不准字段含义时,翻一眼配置样例,每个字段都带了注释。

第 3 步:扫码拿登录态(Cookie)

扫码登录和翻页风控时的浏览器兜底,都依赖 Playwright 自带的 Chromium,先装上:

pip install playwright python -m playwright install chromium python -m tools.cookie_fetcher --config config.yml

前两条装过可跳过。第三条会弹出浏览器窗口:在里面扫完抖音登录码,切回终端按回车,登录态自动写进config.yml。终端确认 Cookie 已保存、且没有提示缺ttwid、odin_tt这类关键字段,这步就成了。

第 4 步:提交第一条链接

打开config.yml,把目标链接放进link列表:

link: - https://www.douyin.com/video/xxxxxxxxxx

执行:

python run.py -c config.yml

看到Downloaded/下出现新目录,按作者、类型、日期分好层,视频本体不带水印——整条链路就跑通了。

配置字段速查:最常动的那 4 个

配置有五十来个字段,日常真正反复碰的就是这四个:

thread: 5 # 并发下载数,被限流就降到 2~3 retry_times: 3 # 单条作品失败后的自动重试次数 proxy: "" # 网络不稳或持续限流时填代理地址 video_quality: highest # 画质档位:highest / original / 1080p 等
  • thread:同时下几条,默认 5。遇到频繁超时先降它,别急着怀疑链接失效。
  • retry_times:偶发失败会按间隔自动补,不用盯盘。
  • proxy:接口请求和媒体下载共用这一个字段。
  • video_quality:highest只在转码档里挑,请求省;original会额外探测上传原片,体积大但最清晰,匹配不到指定分辨率时自动降级到最近的可用档。

另有一个隐藏搭档:database: true(默认开启)。它把历史写进dy_downloader.db,「数据库记录 + 本地文件」双重比对,才是重复运行时跳过旧条目的真正依据。

按目标对号入座:批量下载场景改什么

  • 整站保存一个主页→link填主页地址,mode设post,number.post定条数上限(0为不限) → 作品按日期逐个落盘,终端输出每条进度。
  • 追更同一主页不重下→increase.post: true,保持database: true(两者默认都是开着的) → 再次运行时旧条目被跳过,只下新增。
  • 合集整集收→link填合集页地址,number.mix: 0→ 该合集下作品全部收进mix/目录。
  • 只保留原声→video: false、music: true、cover: false→ 每个作品目录里只剩一份 mp3。
  • 只要某个时间窗的作品→start_time/end_time填YYYY-MM-DD格式的日期 → 窗口外的作品直接被过滤,不发起下载。

卡住了怎么办:常见失败现象问答

Q:主页翻到二十来条就停了,为什么?A:大概率是翻页触发了抖音风控。把browser_fallback.enabled设为true、headless设为false,弹窗出现后手动过一遍验证,期间别急着关窗口。

Q:终端提示登录态失效、请求 403?A:抖音登录有时效,这属于常态。重跑第 3 步的 cookie_fetcher 命令,扫码刷新一次即可。

Q:个别作品反复失败,要处理吗?A:作品被删或设为私密时就是会失败,不用管。如果确认只是限流,retry_times: 3会按间隔自动补下。

Q:整体变慢、大量超时?A:先给proxy填上代理,同时把thread临时调小,过一会儿再跑。

Q:重跑时没跳过旧文件,重复下载了?A:检查database: true是否被关掉——跳过逻辑靠「数据库记录 + 本地文件」双重比对,缺了数据库这一环就会重新下。

再往深里看,以及一条底线

想逐字段过一遍配置语义、了解风控接口的现状,读 README.zh-CN.md,其中「限制说明」一节写得很直白;想搞懂下载、去重、重试是怎么实现的,从 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),仅供参考

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

SignalHound USB频谱分析仪:实时频谱与射频调试实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/5 6:35:33

Arduino+HC-05+App Inventor:手机蓝牙温湿度计搭建实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华