douyin-downloader 实操指南:3 个配置搬走无水印抖音视频、博主主页与合集
2026/9/15 15:51:27 网站建设 项目流程

douyin-downloader 实操指南: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

想存一条抖音视频,大多数人最后拿到的要么是压缩版,要么是贴着水印的残次品。douyin-downloader 是一个无水印的抖音批量下载工具:单条视频、图文、合集、原声,甚至整个博主主页,都能成批搬进本地文件夹,还自带重试、限速和去重。正文按"你这次想下载什么"的 3 个真实诉求来写,读完每一节,你就多会一类内容的搬运方式。

单条视频下载配置:把一条抖音链接变成无水印本地文件

这一节做完,你手里会有任意一条抖音链接对应的无水印 mp4,外加描述、话题标签、发布时间这些元数据,躺在硬盘里想怎么用怎么用。

先装环境,一共 3 条命令(需要 Python 3.8 或更新版本):

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

然后复制示例配置开始改:

cp config.example.yml config.yml

打开config.yml,首次下载只需要关心这几行(示例配置共 150 行,全部带中文注释,没写的保持默认即可):

link: - https://www.douyin.com/video/7604129988555574538 # 视频链接,v.douyin.com 短链也可以 path: ./Downloaded/ # 保存目录 video: true # 下载视频本体 json: true # 存描述、话题、发布时间等元数据

为什么复制示例配置而不是自己从头写?config.example.yml 把每个字段的取范围和坑都写在注释里了,缺一个字段都可能运行时报错;用现成的,出错面最小。

还差一步:登录态。cookie(可以理解为网站认你身份的凭证)没有的话,工具拿不到无水印源地址。最简单的办法是运行python -m tools.cookie_fetcher --config config.yml——会弹出一个浏览器,你扫码登录抖音,回到终端按回车,凭证就自动写进配置了。也可以在config.yml里把cookies一项写成auto,让它每次自动读取上次抓好的凭证文件。

全部就绪后,终端执行python run.py -c config.yml,出现进度条就说明链路通了。

怎么确认成功了:打开Downloaded/,会出现一个"日期_标题_作品ID"命名的文件夹——注意日期前缀是作品发布时间而不是今天,以后归档不会乱序。里面是无水印 mp4,开了json: true还有_data.json,它是日后按关键词检索、整理作品的现成素材库。默认配置下thread: 5(5 个下载同时进行)、retry_times: 3(失败自动重试 3 次),单条任务正常 10 秒内就能收尾。

博主主页批量下载:一条链接搬空整页,二次运行自动跳过

这一节做完,你能用一个主页链接批量下完某位博主的全部作品,第二次运行时自动跳过已保存的,并且用"哪个列表、多少条、什么时间段"三个旋钮精确控制这次搬多少。

link换成博主主页地址,其余照下面这份来:

link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx mode: - post # post=博主发布的全部作品;like=ta 点赞过的列表 number: post: 50 # 这次最多 50 条,0 表示不限 increase: post: true # 增量模式:已保存过的作品直接跳过

为什么 mode 和 number 要分开写?mode 决定"从哪个列表取货"——发布、点赞、合集、原声各是一个列表;number 是每个列表的独立上限。两个分开,你才能做到"作品下 50 条、点赞列表全要"这种精细操作。

判断要不要开increase: post: true,只问一个问题:你是不是要长期追更这个博主?是就开——已存在的主媒体文件会被跳过,重复下载直接省掉;一次性搬家就关掉。想按时间圈范围,再补两行:start_time: "2024-01-01"end_time: "2024-12-31",只下这段时间的作品,"整理某博主某年全部教程"这种需求就靠它兜底。

怎么确认成功了:任务收尾时终端会打出成功/跳过/失败三个数;每个作品还会在Downloaded/download_manifest.jsonl里记一行(作品 ID、标题、保存路径)。以后核对"这条是不是下过了",直接搜这个文件比翻目录快得多;更完整的历史(谁、何时下、存在哪)记在 SQLite 库dy_downloader.db里,它是追更去重的最终依据。如果之后你换到桌面版客户端,这些批量任务会在任务中心一条条列出,完成时长和成败数一目了然:

合集、原声与直播下载:把 3 类新内容源也落进本地

这一节做完,你的本地资源库不再只是"短视频":合集能整本入库、创作者用过的 BGM 能成批拿走,直播和当天热榜也有落盘位置。

合集只需把入口换掉、模式换对:

link: - https://www.douyin.com/collection/7341234567890123456 mode: - mix # 整个合集;换成 music 则取该博主用过的全部原声 number: mix: 3 # 该合集最多下 3 条,0 表示整本全要

为什么合集要单独给 mix 而不是并进 post?合集在抖音侧是独立的条目体系,和"主页作品列表"不是同一个接口。mix 既能接单个合集链接,也能配主页链接把该博主的所有合集一次抓全;作品会归到mix/子目录,和 post 互不混淆。

原声同理:mode 换成 music,就是这位博主全部用过的配乐,对剪辑党来说等于内置了一个曲库。判断要不要开它,只问一个问题:你是不是在做视频、想白嫖这位创作者的 BGM?

直播是另一条链路:把live.douyin.com/房间号放进 link 即可,live.max_duration_seconds 设为 0表示一直录到主播下播,FLV(一种视频容器格式)存进Downloaded/作者名/live/,中途主播下播或你 Ctrl+C,已录的部分都保留不丢。

没有链接想"顺藤摸瓜"也有办法:

python run.py --hot-board 50 -p ./Downloaded # 当天热榜前 50 条 python run.py --search "教程" --search-max 50 # 关键词搜索,最多 50 条

怎么确认成功了:合集作品按"一条一个文件夹"归进mix/;热榜命令几秒钟就生成hot_board/日期时间.jsonl,一行一条共 50 行——从"发现"到"归档"闭环完成。想深挖 mode 的取值和实现,可以看 core/user_modes/ 目录。

进阶:不想敲命令的话

项目同后端还配了一个图形化桌面客户端 Douzy:粘贴链接、多链接队列、任务中心、作品档案全在一个窗口里,适合把下载当长期资产管理:

命令行这边还有两枚彩蛋:notifications配置好 Bark/Telegram/企业微信 webhook 后,长任务跑完自动推送到手机;--serve参数能把整个下载能力开成 HTTP 接口供其他程序调用。完整参数表在 README.zh-CN.md 里,点到为止就不展开了。

常见问题排查清单:登录态、风控、重复下载 3 组症状→判断→处理

这一节做完,出问题时你能按"症状→判断→处理"对号入座,30 秒定位是哪一类毛病,而不是对着日志猜。

症状一:日志报"登录态失效",或一堆 4xx 错误判断:之前跑得好好的任务,换个时间重跑就成片失败——基本就是 cookie 过期了。 处理:重新抓一次凭证即可,抓完工具会自动重登录并重试一次当前任务,多数场景不用你动手:

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

症状二:批量任务不报错,但只拿到 20 条左右就停了判断:这是典型的翻页风控,API 分页被掐了,不是你的网络问题。 处理:开浏览器兜底——把browser_fallback.enabled改成trueheadless保持false,工具会改用真实浏览器逐屏滚动采集(max_scrolls: 240是滚动上限,越大抓得越全);弹出的验证请手动过完再关窗口。

症状三:怀疑重复下载了判断:别翻目录,直接搜Downloaded/download_manifest.jsonl,一行一个作品,按作品 ID 一搜便知。 处理:确认是增量没生效的话,检查increase对应模式是不是 true;确认想重下的话,删掉本地文件夹并清掉dy_downloader.db里对应记录(数据库记历史和"是否跳过"是两码事,只删库不删文件不会触发重下)。

怎么确认修好了:重跑同一份配置,"跳过"的数字涨上去了,说明去重和登录态都已恢复。

总结:3 个配置搞定你的抖音本地资源库

  1. 先跑通单条:一条链接写进config.ymlpython run.py -c config.yml,无水印 mp4 加元数据落进Downloaded/
  2. 再上批量:mode + number + increase 三个键,一条主页链接搬走整页,二次运行自动跳过;
  3. 最后扩内容源:mix/music 拿下合集和原声,热榜与搜索补上"发现"环节。

现在就动手:跑完第一节的 3 条命令装好依赖,把一条你喜欢的链接丢进config.yml——10 分钟后,你的第一份无水印作品就会安静地出现在Downloaded/文件夹里。

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

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

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

立即咨询