news 2026/9/16 13:09:44

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 这套抖音去水印批量下载工具在自己电脑上跑起来:一条链接试水,一个主页链接整页搬运,作品、图集、合集、音乐原声都能无水印落盘,重复下载会自动跳过。

先说结果:一次主页批量下载长什么样

先看成果。下面这张图是任务跑完后的记录面板:一个主页任务 24 件作品全部完成,一个合集任务 18 件完成,还有一条失败记录——两个作品已不可用,工具把失败原因也如实标了出来。谁成了、谁挂了、耗时多久,扫一眼就有数。

这就是后面所有操作要达到的效果:你只管贴链接,剩下的选源、去水印、命名、归档、去重,它自己完成。

它是什么:一句话定位

douyin-downloader 是一个 Python 写的命令行工具,专门解决"想整页存下某个抖音账号的作品,却只能一条一条手动保存"的问题。适合做素材收集、竞品分析、个人备份的人;前提是你看得懂终端命令,不需要读源码。

它的边界也很明确:以接口抓取为主、浏览器兜底为辅;直播录制是实验性功能;收藏夹类模式只认你 Cookie 对应的那个登录账号。另外项目里还套了一个桌面 GUI 版 Douzy(闭测中),和 CLI 共用同一套后端——贴链接、看任务、管档案,它把命令行那套流程做成了界面:

能力全景:一张表看清它能接什么活

你手上的链接 / 需求工具怎么接备注
单个视频www.douyin.com/video/...直接下载,默认挑无水印源最常用
图文作品/note//gallery/整组图片下载图文按图集处理
合集/collection//mix/按合集批量下载
音乐/music/优先直取音频,取不到就下第一关联视频
分享短链v.douyin.com/...自动还原成真实地址再下手机上复制的短链可直接用
作者主页/user/...按 mode 抓post/like/mix/music批量核心能力
自己的收藏夹collect/collectmix模式需登录 Cookie,且只能单独用
直播间live.douyin.com/...自动录制,下播保留已录部分实验性
评论、热搜榜、关键词搜索输出 JSON / JSONL 文件做文本分析用

下载时还顺手带一份元数据,可选封面、音乐、头像、JSON 文件,按"作者 / 模式 / 日期_标题_ID"自动分层归档,进度条、失败重试、断点保留都有。

环境准备:三条命令装好

要求不高:Python 3.8 以上,macOS / Linux / Windows 都行。

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

如果你后面要用"浏览器兜底"或"自动抓 Cookie"(强烈建议装,后面会用到),再补一个浏览器内核:

pip install playwright python -m playwright install chromium

怎么算装好了?python run.py --version,能正常打印版本号就说明环境没问题。

Cookie 配置:最常见的失败原因就是它过期了

先说结论:后面 80% 的"突然下不动了",都是 Cookie 过期,重跑一次自动获取就能解决,先记住这个。

为什么需要 Cookie?抖音网页要识别"你是谁"才肯把数据给你,这串身份凭证就存在浏览器的 Cookie 里。工具给你两条路:

自动获取(推荐)。终端里跑:

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

它会弹出一个浏览器窗口,你正常扫码登录抖音,回到终端按回车,Cookie 就被写进 config.yml 了。底层逻辑可以看 tools/cookie_fetcher.py。

手动粘贴。自动方式不顺手时,登录抖音网页版,打开浏览器开发者工具,把 Cookie 整段复制,填进配置文件的cookies字段。

提醒:collect/collectmix这种"抓自己收藏夹"的模式必须走登录 Cookie;抓公开视频和主页作品时,Cookie 主要是降低被限流的概率。

主流程走通:从一条链接,到搬空一个主页

这一节只有一条主线:改配置文件 → 运行 → 看结果。先拿单条试水,跑通之后把链接换成主页,其余命令完全不变。

第 1 步:复制示例配置。

cp config.example.yml config.yml

config.example.yml 里每个字段都有中文注释,照着改即可。

第 2 步:单条视频试跑。打开 config.yml,把最顶上的link换成任意一个视频链接,其他保持默认:

link: - https://www.douyin.com/video/7604129988555574538 path: ./Downloaded/

运行:

python run.py -c config.yml

你会看到初始化、解析链接、下载几段进度条走完,最后输出一张统计:成功几条、耗时多久、存在哪。文件落在Downloaded/作者名/post/日期_标题_ID/里,视频本体之外,按你的开关还会存封面、音乐、JSON 元数据。

懒人也可以不动配置文件,直接用命令行参数临时指定:

python run.py -c config.yml -u "https://www.douyin.com/video/7604129988555574538" -t 8 -p ./Downloaded

-u追加链接、-t并发数、-p保存目录。

第 3 步:同一条命令,换链接就是批量。单条跑通后,把link换成作者主页地址,加上modenumber

link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx path: ./Downloaded/ mode: - post # 作者发布的全部作品 number: post: 0 # 0 = 全量;写 50 就只下前 50 条

再跑一次python run.py -c config.yml,这个主页的作品就开始整页往本地搬。mode可以同时写post/like/mix/music几行,一次抓取把多类内容都带回来,同一个作品跨模式也不会重复下载。桌面版把同样的"主页作品列表 + 直接下载"做成了可视界面,CLI 用户不需要它,但能帮你理解批量任务长什么样:

第 4 步:验收归档结构。打开Downloaded/目录,默认长这样:

Downloaded/ └── 作者名/ └── post/ └── 2024-02-07_视频标题_视频ID/ ├── 视频.mp4 └── (可选)封面 / 音乐 / JSON

按作者、模式、日期标题分层,之后找素材不用翻文件属性。

进阶场景:四种直接能用的玩法

直播录制场景。遇到不想错过的直播场次,把直播间链接填进link,配好时长上限:

link: - https://live.douyin.com/123456789 live: max_duration_seconds: 3600 # 0 = 一直录到主播下播 idle_timeout_seconds: 30 # 流空闲多久判定结束

主播下播、网络断了甚至你手动 Ctrl+C,已经录到的部分都会保留成正式 FLV 文件,不会白录。注意这是实验性功能,HLS 源目前只存播放列表,需要可播文件要自己过一遍 ffmpeg。

热搜榜与关键词搜索场景。做选题调研时,两条命令把数据落成 JSONL,省掉手工翻页:

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

收藏夹场景。想把自己账号收藏的视频整批存下来:

link: - https://www.douyin.com/user/self?showTab=favorite_collection mode: - collect # 收藏夹里的视频;collectmix 是收藏夹里的合集 number: collect: 0

注意collect/collectmix必须单独使用,不能和post等模式混写,且只认你 Cookie 对应的账号。桌面版对应的"我的收藏与合集"界面长这样:

评论采集场景。做用户研究时,给每个作品附带一份评论 JSON,方便后续做文本分析:

comments: enabled: true include_replies: false # true 会连二级回复一起抓,请求量更大 max_comments: 500 # 0 = 不限

产物是媒体文件旁边的*_comments.json

另外提一句时间过滤:start_time/end_time(格式YYYY-MM-DD)可以只抓某个时间段内的作品,适合"只要今年发的"这类需求。

调优参数:为什么长期用要这么调

用一周之后,真正影响体验的就是这几个字段。

thread(并发数,默认 5)。它决定同时下载几个任务。为什么建议家用网络别往上调:并发一高,请求密集,平台侧限流的概率就变大,反而越调越慢。5 左右是速度和稳定之间的平衡点,发现失败变多就往下减。

number.post等分模式数量(0 = 不限)。为什么建议先写个小数字:第一次抓一个几百条的大号之前,先post: 10跑一遍,确认 Cookie 有效、归档正常,再改成 0 全量。翻车成本从"下几百条"降为"下十条"。

increase.post等增量开关(默认 true)。判定标准是"磁盘上主媒体文件已存在就跳过",而不是数据库。为什么重要:它让你可以每周跑一遍同一个主页配置,只补"新发的"内容,做定期同步。反过来,把某模式设为 false 表示强制重下并覆盖,配合start_time能只重刷某个时间段。

video_quality(默认 highest)。抖音每条视频返回多档码率。highest只在转码档里挑最高档,不额外请求;original会多花一次探测请求去找上传原片——原片可能比最高转码档大好几倍,适合要精剪的场景;纯归档选默认即可,省时省流量。

browser_fallback.headless: false(务必保持)。正常翻页走接口,一旦触发风控,工具会自动切浏览器模式继续抓。为什么不能改成无头模式:翻页受限后往往要弹验证码,只有有界面的窗口才能人工处理,无头模式下这一步会卡死。

问题速查:高频坑先备好答案

Q:主页抓取只拿到 20 条左右就停了?典型的分页风控。确认browser_fallback.enabled: trueheadless: false,然后在弹出的浏览器窗口里手动完成验证,别急着关。这是最常见的"抓不全"原因。

Q:某天突然大面积报错?第一反应:Cookie 过期了,重跑python -m tools.cookie_fetcher --config config.yml。第二反应:那条内容本身被删除或设了私密——这类谁都下不了,跳过即可。

Q:某个视频想重新下载?它是"数据库记录 + 本地文件"双重校验去重的,两边都得动:删掉本地对应目录,再用 sqlite3 打开dy_downloader.db,从aweme表里按aweme_id删掉那条记录,下次运行就会重新抓。只删数据库留文件不会触发重下;只删文件留数据库反而会触发重下。

Q:下载慢?大概率是并发开太高被限流了,把thread调低试试;再检查网络本身;有条件就配上proxy字段。

Q:进度输出太吵?配置里progress.quiet_logs: true(默认)会压掉进度阶段的日志;调试时临时加--show-warnings-v看完整日志。

落地路径:今天就能做完的四件事

  1. 把环境跑通:clone 仓库、装依赖,python run.py --version能打印版本号即过关。
  2. 把凭证配上:跑一次python -m tools.cookie_fetcher --config config.yml,扫码、回车,配置文件里出现 Cookie 即成功。
  3. 用单条视频试水:cp config.example.yml config.ymllink换成一个视频 URL,python run.py -c config.yml,等统计面板出结果。
  4. 升格到批量:同一个配置文件里把link换成关注的主页、mode: postnumber.post: 0,再跑一次——你的第一个整页素材库就有了。

写在最后

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),仅供参考

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

深入解读MMSSTV源码:从DCT到FSK的窄带图像传输实现

简介:这是一份MMSSTV(Multi Media Slow-Scan Television)无线电图片传送开源项目源码包,面向业余无线电爱好者、嵌入式开发者及信号处理学习者,可用于探究静态图像在窄带无线信道中的传输实现。包内共有554个文件、约5…

作者头像 李华
网站建设 2026/9/16 13:04:38

智能运维转型:从救火到预防的关键技术与实践

1. 运维转型的必然性与挑战在数字化转型浪潮中,运维管理正经历着从"救火队"到"预防医学"的范式转变。我亲历过凌晨三点被报警电话惊醒处理数据库崩溃的狼狈,也见证过智能运维系统提前预测并规避故障的从容——这两种截然不同的体验&…

作者头像 李华
网站建设 2026/9/16 13:04:25

STM32H743上位机AES固件加密工具开发实践

简介:基于STM32H743单片机生成AES加密固件的上位机软件源码,专为需要嵌入式安全通信与固件安全升级的开发者准备,适用于STM32H743平台的固件工程师、嵌入式安全研发及物联网产品验证场景。压缩包共808个文件,整体约20.24MB&#x…

作者头像 李华
网站建设 2026/9/16 13:04:23

零基础学Python:从语法基础到爬虫与游戏实战的全套源码课件

简介:零基础入门Python的完整学习资料包,涵盖课程课件与配套源代码,适合自学入门及教师备课使用。内容从用Python设计第一个游戏讲起,逐步深入数据类型、分支循环、函数与递归,再扩展到文件操作、永久存储、类和对象、…

作者头像 李华