news 2026/9/25 3:25:29

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 就是一个值得先看看的开源命令行工具。它同时支持单条作品下载和整个主页的批量抓取,内置去重、重试、日期筛选和 SQLite 下载历史,日常用于个人素材整理非常顺手。

它解决的问题,先看清楚

这个项目的定位是"实用"而不是"大而全"。它面向的具体问题有这几类:

  • 拿不到无水印原片。工具直接请求抖音服务端接口返回的视频源,落盘的就是未叠加水印的原始文件,画质取决于上传原片质量。
  • 手动保存太慢。你可以把一个博主主页丢给它,配合mode与number参数一次拉取作品、喜欢、合集、音乐原声,多线程并发下载。
  • 重复劳动太多。SQLite 数据库和磁盘文件双重判断实现增量下载:已经下载过的作品自动跳过,下次运行只补新内容或补缺失文件。
  • 过程不可控。内置速率限制(默认每秒 2 个请求)和失败自动重试(默认 3 次),并发数、画质档位、时间窗口都可在配置里约束。
  • 下载完只是一堆散文件。默认按"作者/模式/作品"建目录,文件名带发布日期;另可导出download_manifest.jsonl清单和原始 JSON,方便做素材库或数据分析。

此外还有几个可选增强项:评论采集(含二级回复)、视频语音转写、下载完成通知(Bark/Telegram/Webhook)、关键词搜索与热搜榜导出、REST API 服务模式,以及接口受限时的 Playwright 浏览器兜底。不想用就保持默认关闭。

项目同时提供图形界面版本 Douzy(Windows/macOS),覆盖抖音、TikTok、YouTube 等平台,粘贴链接即可下载并跟踪任务;命令行版则专注抖音,适合脚本化与批量任务。本文以命令行版为主线。

环境与前置准备

整个过程分四步:装依赖、准备登录态、复制配置、验证运行。

1. 获取代码并安装依赖(需要 Python 3.9+,支持 Windows / macOS / Linux):

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

2. 安装浏览器兜底组件(可选,但建议装。接口分页受限时会用它补全主页作品列表):

pip install playwright python -m playwright install chromium

3. 准备 Cookie。访问抖音内容需要有效的登录态,最省事的办法是运行 Cookie 获取工具,它会打开浏览器让你扫码登录,然后回终端按 Enter 保存:

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

Cookie 会以 JSON 形式写入配置,之后由 Cookie 管理模块 统一维护。登录态失效时程序会提示重新登录,交互环境下还能自动弹出浏览器重登一次。

4. 把配置文件里的示例link换成你的目标链接,其余保持默认即可先跑起来。

需要提前知道的限制:抖音接口风控(Argus 门禁)目前会拦截单条视频、合集、音乐、喜欢/收藏等部分接口,主页作品可走浏览器兜底但不保证成功率。若这类场景是你的主要用途,建议改用 Douzy 桌面版,命令行版更适合作品批量与自动化场景。

核心场景实战

场景一:下载单条视频

拿到v.douyin.com短链或douyin.com/video/...链接,两种方式任选:

python run.py -c config.yml -u "https://v.douyin.com/xxxxx/"

-u会追加链接,不覆盖配置文件里的link,可以重复传入多条。短链会先自动解析再下载。

场景二:主页批量下载 + 时间/数量筛选

把博主主页地址填进link,在配置里限定范围:

link: - https://www.douyin.com/user/xxxxxx mode: [post] start_time: "2025-01-01" # 只下载该日期之后的作品 end_time: "" number: post: 100 # 0 表示不限制

然后执行:

python run.py -c config.yml

mode可填post(作品)、like(喜欢)、mix(合集)、music(音乐原声)等,一次任务可以混合多种模式;每条模式都能单独设上限。

场景三:搭建可增量的素材库

首次全量下载后,把increase.post保持为true(默认),之后每周重跑同一份配置,工具会跳过磁盘上已存在的非空文件,只下载新增作品。缺失的文件由redownload_missing_files(默认true)负责补下。落盘结构大致如下:

Downloaded/ ├── download_manifest.jsonl # 每次下载的明细清单 └── 作者昵称/ └── post/ └── 2025-03-01_作品标题_aweme_id/ ├── 2025-03-01_作品标题_aweme_id.mp4 ├── ..._cover.jpg # 开启 cover 后 └── ..._data.json # 开启 json 后

日期取自作品发布时间而非下载时间,素材归档时天然有序。

场景四:可选扩展

python run.py --search "关键词" --search-max 50 # 关键词搜索导出 python run.py --hot-board 30 # 热搜榜导出 python run.py --serve --serve-port 8000 # 启动 REST API 服务

评论采集、语音转写、完成通知均在 config.example.yml 中有对应段落,打开enabled并按需填写即可;转写功能依赖额外安装 whisper 相关组件。

配置与参数详解

日常使用只需要碰几个键,完整示例见 config.example.yml,默认值定义在 config/default_config.py。

配置项作用建议值
link目标视频/图文/主页链接列表必填
path下载根目录./Downloaded/
mode下载模式,可多选[post]
number.post各模式数量上限,0 为不限按磁盘空间
start_time/end_time日期窗口(YYYY-MM-DD,含结束日)建素材库时启用
video_quality画质:original/highest/lowest/1440p…360phighest(默认);original会多一次探测请求尝试原片
thread并发数3~5
rate_limit每秒请求上限2
retry_times失败重试次数3
increase各模式增量开关;设false强制重下并覆盖当前筛选范围true
redownload_missing_files磁盘文件缺失时是否补下true
video/music/cover/json分别控制视频本体、背景音乐、封面、元数据 JSON 的落盘默认只开video,按需叠加
filename_template/folder_template命名模板,可用{date}_{title}_{id}等变量,必须含{id}防重名默认即可
browser_fallback浏览器兜底开关与滚动/超时参数enabled: true、headless: false
database是否写 SQLite 历史true

命令行参数可临时覆盖配置,优先级更高:-c指定配置、-u追加链接、-p下载目录、-t并发数、-v详细日志。

高频疑问与问题排查

Cookie 失效或提示需要登录怎么办?重新运行python -m tools.cookie_fetcher --config config.yml即可。交互环境下,程序检测到登录态失效时会自动弹浏览器重登一次并继续重试,不需要手动中断。

主页作品只拿到几条?确认browser_fallback.enabled为true、headless为false,让兜底浏览器以有界面模式打开,你在里面手动完成验证和滚动,翻页上限由max_scrolls控制。注意:接口风控严重时兜底也可能拿不全,这不是配置错误。

想强制重新下载一批作品?把对应模式的increase设为false再运行,工具会重下并原子覆盖当前筛选范围内的文件,数据库无需清空;想只补缺失文件则保持redownload_missing_files: true即可。

下载慢或经常失败?先加-v看详细日志定位卡点;网络波动大时把thread降到 3、确认rate_limit不低于接口承受范围;若配了proxy而代理不通,会直接导致全部请求失败,先排查代理。

为什么有些链接解析了却下不了?单条视频/图文、合集、音乐、喜欢、收藏等接口目前被抖音风控拦截,工具会直接报出具体原因而不是静默失败。这类内容建议改用 Douzy 桌面版下载,命令行的稳定能力集中在主页作品批量与自动化流程上。

文件命名或目录想自定义?改filename_template和folder_template,变量清单({date}、{title}、{author}、{id}等)写在配置文件注释里;作者目录想避免重名合并,把author_dir改为nickname_uid。

横向选型参考

维度douyin-downloader(CLI)Douzy 桌面版在线无水印网站手机录屏
画质无水印,最高转码档可选原画无水印通常有压缩取决于设备,含平台叠加层
批量能力主页/合集/音乐多模式批量多任务队列基本单次无
元数据与清单JSON + manifest + SQLite 历史作品档案管理无无
增量去重磁盘 + 数据库双判断本地档案去重无无
部署成本Python 环境 + Cookie直接安装客户端打开即用零成本
适合人群脚本化、素材库、数据分析日常收藏、多平台临时单条需求应急

选型建议一句话:要自动化、要留数据痕迹选 CLI;要开箱即用、偶尔跨平台,装 Douzy 更省事。

写在最后

工具能帮你高效保存内容,但下载下来的作品版权仍属于创作者。请把使用范围限定在个人学习、研究与合法授权内,避免高频大规模抓取,遵守平台规则;接口与风控会随平台变化,功能可用性以最新版 README 为准。

如果只想记住一件事:装好依赖、配好 Cookie、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),仅供参考

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

烽火HG680-J刷机全攻略:高安版与非高安版区分及强刷教程

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

作者头像 李华
网站建设 2026/9/25 3:23:48

just-bash威胁模型深度拆解:AI Agent沙盒的3类攻击者与5道信任边界

just-bash威胁模型深度拆解:AI Agent沙盒的3类攻击者与5道信任边界 【免费下载链接】just-bash Bash for Agents 项目地址: https://gitcode.com/gh_mirrors/ju/just-bash just-bash 是一个为 AI Agent 打造的沙盒 Bash 解释器——用 TypeScript 实现、内置内…

作者头像 李华