抖音批量下载与去水印实用教程:三种方式保存整个主页,附增量与评论导出
2026/9/15 16:47:32 网站建设 项目流程

抖音批量下载与去水印实用教程:三种方式保存整个主页,附增量与评论导出

【免费下载链接】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 是一个抖音批量下载工具,核心解决三件事:给链接就能存无水印视频、给主页就能整批保存作品、下载过的自动跳过不重复劳动。它支持视频、图文、合集、音乐、收藏夹这几类内容,也附带评论采集、热搜榜导出和 REST API 服务模式。下文按"先跑起来、再做任务、最后排障"的顺序讲。

能下载什么:六种内容类型一次列清

  • 单个视频 / 图文/video//note/链接,自动选无水印源
  • 单个合集、单个音乐:合集走/collection//mix/,音乐优先取原声文件
  • 作者主页批量下载/user/链接配合mode,可选 post(作品)、like(喜欢)、mix(合集)、music(音乐),同一作品跨模式自动去重
  • 当前登录账号的收藏夹collect存收藏作品、collectmix存收藏合集
  • 直播录制(实验性)live.douyin.com房间链接,FLV 保存,中断也保留已录部分
  • 数据导出:评论采集成 JSON、--hot-board导热搜榜、--search按关键词导 JSONL

另外,桌面客户端 Douzy(内测中)基于同一套后端,粘贴链接即可开始,任务中心能看到每个任务的状态。

功能细节以仓库内的 中文文档 为准,下载主流程在 core/ 目录。

🚀 三命令装好环境

获取代码并装依赖

需要 Python 3.8+,三步装完:

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

如果后面要用浏览器兜底(翻页被风控时弹真实浏览器),再补一条:pip install playwright并执行python -m playwright install chromium

Cookie 自动获取,不用手工复制

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

命令会打开浏览器,你登录抖音后回到终端按 Enter,Cookie 直接写进配置。工具在 tools/cookie_fetcher.py。

跑第一条下载命令

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

文件落在Downloaded/目录,按"作者/模式/作品"分层,文件名带作品发布日期前缀,根下还有一份download_manifest.jsonl清单。

🧩 三个高频任务的实操配置

整个主页全量保存:post 模式加增量开关

link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx mode: - post number: post: 0 # 0 表示不限数量 increase: post: true # 已存在的跳过,下次只抓新作品

number填具体数字就是限量,比如 50 条。多个作者可以一次写多个主页链接。

批量导出评论数据:每个作品一份 JSON

comments: enabled: true max_comments: 500 # 0 为不限,默认 20 条/页

开启后,每个作品旁会生成{日期}_{标题}_{aweme_id}_comments.json。做话题研究时,可以配python run.py --search "关键词" --search-max 100按主题先捞一批数据。

自己的收藏夹整批保存:collect 模式

link: - https://www.douyin.com/user/self?showTab=favorite_collection mode: - collect number: collect: 0

注意两个限制:collect/collectmix只认当前登录 Cookie 对应的账号,不能下别人的收藏夹;而且必须单独使用,不能和 post、like、mix、music 混在同一个 mode 里。

它如何防止重复下载和失败

去重是双重检查。database: true时,每次下载写一条记录进 SQLite 库dy_downloader.db;判断跳过时,程序同时查库和扫本地文件名(文件名里带 aweme_id),两边都说"有"才跳过。反过来,库里有记录但文件没了,就视为要重新下载。增量开关increase就是建立在这套机制上的。

容错分三层:下载失败按指数退避重试(1s、2s、5s,默认 3 次);下完用 Content-Length 校验完整性,不完整的文件自动清掉重下;下载走并发 worker 池(默认 5 线程),内置限流默认 2 请求/秒,压低触发风控的概率。相关实现在 control/ 与 storage/ 目录。

翻页被风控卡住时,browser_fallback会弹一个真实浏览器,你在窗口里手动过掉验证码,任务继续。目前这条兜底路径只在 post 模式完整验证过,like/mix/music 仍依赖接口分页。

🩹 排障:先查这三种症状

只抓到 20 条左右作品

  • 症状:翻页中途停住,数量固定在 20 条附近
  • 原因:接口翻页被风控限制
  • 解决:确认browser_fallback.enabled: trueheadless: false,弹窗出现后手动完成验证,别急着关窗口

Cookie 失效后下载报错

  • 症状:任务一开始就失败,日志提示认证问题
  • 原因:Cookie 过期
  • 解决:重跑python -m tools.cookie_fetcher --config config.yml,建议定期重取

删了记录却没重新下载

  • 症状:清了数据库,再跑还是跳过
  • 原因:去重同时看本地文件名,只删库不够
  • 解决:文件和库记录一起删,某个作品就删Downloaded/作者名/post/*_aweme_id/目录加对应库记录

另外,没生成 transcript 转写文件时,按顺序查四件事:transcript.enabled是否为 true、下载的是否是视频(图文不转写)、OPENAI_API_KEY是否有效、response_formats是否含 txt 或 json。

适合谁,不适合谁

适合:要长期存无水印素材的个人用户、批量收集作品和评论数据的运营与研究者、想把下载能力通过--serve(默认端口 8000,需pip install fastapi uvicorn)接进自己流程的团队。

不适合:想下载别人收藏夹的用户——collect只认自己登录的账号;以及期望全程无人值守的场景——浏览器兜底需要人工过验证码,这是当前架构的硬限制。

其他已知边界:直播录制标记为实验性功能,HLS 源只保存 playlist 文件,要能播放需用 ffmpeg 后处理;increase增量只覆盖 post/like/mix/music,收藏夹模式不支持增量。完整参数查仓库里的 config.example.yml,部署可用仓库自带的 Dockerfile。项目为 MIT 协议,仅用于个人数据管理与技术研究,请遵守平台规则与版权要求。

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

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

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

立即咨询