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 记录下载历史,重复跑也不会把旧视频再存一遍。Windows、macOS、Linux 通用,命令行直接跑。

准备工作:三组命令装好它

环境只需要 Python 3.9+。把克隆、依赖、浏览器内核各合成一条命令跑完就行。

  1. 拿到代码并进入目录(克隆后你才能在本地运行它):
git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader && cd douyin-downloader
  1. 装好全部依赖,包括抓取 Cookie 用的 Playwright 和 Chromium 内核(浏览器兜底登录依赖它):
python -m pip install -r requirements.txt && python -m pip install playwright && python -m playwright install chromium
  1. 复制一份配置文件,后面所有调整都在config.yml里改:
cp config.example.yml config.yml

Windows PowerShell 里没有cp,用Copy-Item config.example.yml config.yml代替。

登录与首次运行怎么验证

工具靠你的浏览器登录态工作,先用内置工具把 Cookie 拿下来:

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

跑完会弹出一个 Chromium 窗口,你在里面登录抖音,回到终端按 Enter,Cookie 就存进config/cookies.json了。

接下来做一次最小化验证。打开config.yml,把link换成目标博主主页链接,并确认这两项:

mode: [post] number: post: 1 # 先只下 1 条,验证通了再改大

然后运行:

python run.py -c config.yml

跑完你应该看到:./Downloaded/下多了一个以作者昵称命名的目录,里面有按{date}_{title}_{id}命名的.mp4(或图集文件);终端里滚动过解析、下载的进度,最后打印本轮成功/失败统计;同目录还多出一份download_manifest.jsonl清单。看到这三样,就说明环境全通了,把number.post改成0就代表不限数量、整主页都下。

按你的目标来用

  • 整包保存某个主页:mode: [post]+number.post: 0跑python run.py -c config.yml,主页作品从上到下全部落盘,文件名自带日期前缀,天然按时间排好。
  • 只要某个时间段的作品:在config.yml里写start_time: "2025-01-01"和end_time: "2025-06-30"(格式YYYY-MM-DD),区间外的作品会被过滤,结束日期当天算在内,适合做阶段性归档。
  • 一次跑多个主页:-u参数可以重复传,python run.py -u "主页链接A" -u "主页链接B",它们会追加在配置里的链接之后而不是替换,各作者各自建目录,跑完终端汇总成功和失败数量。
  • 重复跑不白下:increase.post保持true(默认),第二次跑同一链接会基于dy_downloader.db里的记录直接跳过已下载作品;redownload_missing_files: true还会把文件丢了、下了一半的补回来。想整批重下时把它设成false,不用清数据库。
  • 按关键词导出:python run.py --search "关键词" --search-max 50把搜索结果存成 JSONL 文件;python run.py --hot-board 30则导出热搜榜。
  • 可选加餐:comments.enabled打开后每个作品多生成一份*_comments.json;notifications.enabled接上 bark/telegram/webhook 后下载完成会推送提醒;live段支持直播间录制(实验功能)。这些默认全关。

💡 一个前提要提前说:平台风控会随时间收紧,部分接口可能直接拒绝。遇到主页拿不到全量时,保持browser_fallback.enabled: true和headless: false,让工具自动开浏览器滚动补抓,你在浏览器里手动过一下验证即可。

关键参数速查

影响体验最大的三个旋钮:并发-t、重试retry_times、画质video_quality。按你的网络对号入座:

参数好网络中网络差网络
并发-t8~105(默认)2~3
重试retry_times23(默认)5
video_qualityoriginal探测原片highest最高转码档1080p或highest

默认是thread: 5、retry_times: 3、video_quality: highest。并发可以临时写在命令行(如python run.py -c config.yml -t 2),重试和画质在config.yml里改。注意并发别盲目拉满:抖音接口有风控,请求太快更容易触发验证,慢一点反而下得全。

出了问题先查这里

  • 现象:报登录失效 / 提示需要登录→ 原因:Cookie 过期 → 修复:重新跑python -m tools.cookie_fetcher --config config.yml,浏览器里登录一遍。
  • 现象:主页只拿到零星几条作品→ 原因:接口被风控限制 → 修复:确认browser_fallback.enabled: true、headless: false,在自动打开的浏览器里手动完成验证,让浏览器兜底补抓。
  • 现象:下载中途频繁失败→ 原因:并发对当前网络偏高 → 修复:降到python run.py -c config.yml -t 2,并把retry_times调到 5。
  • 现象:重跑又把旧作品下了一遍→ 原因:increase.post被设成了false→ 修复:改回true,工具会基于dy_downloader.db自动跳过已下载内容。
  • 现象:目录命名看着乱→ 原因:filename_template用了不合意的模板 → 修复:在config.yml里改filename_template,支持{date}、{title}、{author}、{id}等变量,务必保留{id},否则重名作品会互相覆盖。

下一步就去跑

  • 完整配置模板(每个字段都有中文注释):config.example.yml
  • 中文使用说明:README.zh-CN.md
  • 所有命令行参数:python run.py --help随时查

把常看博主的主页链接攒进config.yml的link列表里,之后想存什么,敲一条python run.py -c config.yml就行。

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

相关新闻

WinCC用户归档实战:产线批次数据追溯案例

WinCC用户归档实战:产线批次数据追溯案例

简介:这份资源是面向工业自动化工程师与WinCC学习者的用户归档实践案例包,聚焦西门子WinCC中动作(Actions)与标准模块(Standard Modules)的协同使用,帮助解决实时数据存储、历史数据归档与后期分…

2026/10/20 4:37:46 阅读更多 →
数据结构与算法面试核心题型与解题模板全解析

数据结构与算法面试核心题型与解题模板全解析

作为一名常年混迹技术面试圈的老兵,我这些年既当过候选人,也坐在面试官的位置上看过太多人栽跟头。数据结构和算法这块,说难听点,大部分人的复习方式都是"背题",背到能默写防抖节流,却写不出一个…

2026/10/20 4:37:46 阅读更多 →
Java递归核心解析:调用栈机制、经典案例与常见坑

Java递归核心解析:调用栈机制、经典案例与常见坑

第一次在 Java 课上碰到递归的时候,我盯着黑板上那几行代码看了半天,死活想不明白:一个方法调用自己,那它到底什么时候能结束?更离谱的是,就这么个"自己调自己"的写法,居然能顺手解决…

2026/10/20 4:37:46 阅读更多 →

最新新闻

视觉模型重塑时间序列分析:从离散Token到连续视觉的范式转换

视觉模型重塑时间序列分析:从离散Token到连续视觉的范式转换

1. 从离散Token到连续视觉:时间序列分析的新思路拆解时间序列分析这个领域,做的人多,但真正让人眼前一亮的突破少。传统方法从统计模型一路走到深度学习,Transformer架构进来之后,大家发现一个尴尬的事实:文…

2026/10/20 5:21:04 阅读更多 →
向AI提交创作需求:关键信息清单助你生成优质博客

向AI提交创作需求:关键信息清单助你生成优质博客

抱歉,我还没有收到您的项目标题和相关描述。麻烦您将以下信息发给我,我立刻开始创作:项目标题: [在这里填写标题] 项目正文: [零散描述也可以] 关键词: [关键词1, 关键词2, ...] 摘要描述: [一句话简介]收到后我会直接输出一篇完整的、可直接…

2026/10/20 5:21:04 阅读更多 →
PyTorch nn.DataParallel原理与实战:多卡训练的底层基石

PyTorch nn.DataParallel原理与实战:多卡训练的底层基石

1. 为什么今天还要深挖nn.DataParallel?它真过时了吗?在 PyTorch 生态里,提到多卡训练,很多人第一反应是DistributedDataParallel(简称 DDP),社区文档、新教程、论文复现代码几乎清一色推荐它。…

2026/10/20 5:21:04 阅读更多 →
OpenCode接入Qwen模型实战:从选型配置到避坑指南

OpenCode接入Qwen模型实战:从选型配置到避坑指南

最近在折腾终端里的 AI 编程 Agent 工具 OpenCode,有一件事绕不开:模型配置。OpenCode 这类工具默认的模型接入方式对国内开发者不算友好,网络、计费、可用性都有门槛。好在这类工具大多支持自定义模型接入,而这几年国产开源模型里…

2026/10/20 5:21:04 阅读更多 →
榜单第一不等于实战能打:从Argon看大模型代码能力评价误区

榜单第一不等于实战能打:从Argon看大模型代码能力评价误区

开篇想聊个最近在圈子里传得挺开的事:某头部厂商放出了新的旗舰模型Argon,官方口径是“榜单18项第一”,从通用问答到复杂推理再到多模态理解,几乎把所有权威评测的榜首都揽了一遍。可等开发者们真把它拖到真实的代码仓库里跑任务&…

2026/10/20 5:21:04 阅读更多 →
智能支持员实战:从意图识别到多轮诊断的AI排障系统搭建

智能支持员实战:从意图识别到多轮诊断的AI排障系统搭建

做了这么多年技术支持,我对一件事特别有感触:真正占时间的不是那些疑难杂症,而是每天反复出现的“老三样”——服务起不来、配置不生效、报错信息看不懂。团队决定做“智能支持员”这个项目的时候,我的第一反应不是“又要上机器人…

2026/10/20 5:20:04 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

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

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

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

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

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

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/19 10:02:04 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

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

2026/10/19 2:54:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

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

2026/10/19 9:10:22 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

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

2026/10/18 12:16:16 阅读更多 →