☰
抖音无水印视频怎么批量下载?10 分钟存下整个主页作品完整指南
2026/10/19 7:00:44 网站建设 项目流程

抖音无水印视频怎么批量下载?10 分钟存下整个主页作品完整指南

【免费下载链接】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是一个开源的抖音批量下载工具,属于抖音主页视频下载工具里少见的命令行方案:把博主主页链接贴进配置,无水印视频、图集、封面、原声自动落盘归档,抖音无水印视频怎么下这个问题一次解决。全文以命令行版为主线,从装环境到挂每日增量任务走一遍,顺利的话 10 分钟内你能拿到第一个无水印文件。

两条路线:先想清楚你走哪边

动手之前先分清两条路,避免装完工具发现用错场景:

  • Douzy 桌面版:日常使用推荐。粘贴链接下载、查看任务进度、管理本地作品档案,覆盖抖音、TikTok、YouTube、Telegram、X 五个平台,从项目 Releases 页下载 Windows / macOS 版即可。
  • 命令行版:只支持抖音,面向脚本集成和自动化场景,也就是本文主角。

有一个必须提前说清的预期问题:2026-08 起抖音接口风控收紧。目前单个视频/图文、合集、音乐、喜欢和收藏接口在 CLI 中被拦截;主页作品仍可走 Playwright 浏览器兜底(不保证成功);直播录制属于实验功能,HLS 源只保存播放列表而非可直接播放的视频。所以合理预期是:主页批量走 CLI + 浏览器兜底,其余类型以桌面版为准。更新 Cookie 或反复重试解决不了这类风控,这是平台策略,不是你的配置问题。

链接形态方面两条路线都很宽容:主页、单个视频、图文、合集、音乐、直播间链接都能贴,连v.douyin.com短链也行,工具会自动识别类型。

首跑四步:拿到第一个无水印文件

环境是 Linux / macOS 的通用流程(Windows 下复制文件的命令换Copy-Item即可)。四步走,每步都有明确的成功标志。

第一步:装依赖,Python 3.9 是门槛

核心依赖都是 requests 级别的小库(aiohttp、httpx、rich、pyyaml 等),浏览器兜底要额外装一个 Playwright:

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

看到Successfully installed即完成。playwright install chromium会下载浏览器内核,第一次跑稍慢属正常。

第二步:浏览器扫码,把 Cookie 存下来

先复制一份 config.example.yml 作为自己的配置,再启动取 Cookie 的脚本 tools/cookie_fetcher.py:

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

命令会拉起一个浏览器窗口,在里面扫码登录抖音,回到终端按 Enter 保存。判定的成功信号有三条:终端打印Saved N cookie(s) to .../config/cookies.json、Updated config file,并且config.yml的cookies字段已被自动填好。Cookie 是一次性产物,登录态会过期,失效时重跑这条命令即可。

第三步:写一份最小配置

打开config.yml,把示例link换成目标博主主页,首次试用把数量压到 1 条:

link: - https://www.douyin.com/user/MS4wLjABxxxx number: post: 1

其余字段先不动,默认值已经能跑通。

第四步:运行并核对结果

python run.py -c config.yml

终端会先打出Douyin Downloader v2.0.0横幅,接着是Database initialized(SQLite 历史库初始化)、Found 1 URL(s) to process,然后进度条走起。

成功标志:结尾输出Download Summary汇总表,Total 1 / Success 1;Downloaded/下多出一个作者文件夹,post/子目录里躺着2024-xx-xx_标题_作品ID.mp4这样的无水印文件。

配置速查:12 个开关怎么调

跑通之后再回来调参。下表按"抓什么"和"存什么"两组拆开,比逐字段翻配置直观得多。

抓什么:范围、数量、并发

配置项默认值改了会怎样
link示例链接待处理链接列表,主页、单作品、直播都放这里
modepost主页抓取模式,post起步,可叠加like/mix
number各项0各模式数量上限,0= 不限;先试 10 再放开
start_time/end_time空字符串YYYY-MM-DD发布时间过滤,留空不过滤,含结束日当天
thread5并发线程数,网络好可上 8,别一上来就拉满
retry_times3单条失败自动重试次数

存什么:文件、目录、增量

配置项默认值改了会怎样
video/music/cover/avatar/json仅video: true封面、原声、头像、元数据默认全关,按需打开
path./Downloaded/落盘根目录
video_qualityhighest下载画质档位,详见下文
increase各模式true增量开关,跳过已下作品,长期跑保持true
redownload_missing_filestrue文件缺失或为空时补下
browser_fallbackenabled: true、headless: false主页翻页受限时浏览器兜底
database/database_pathtrue/dy_downloader.dbSQLite 下载历史库

video_quality最容易被忽略,也最影响存储空间和画质,单独说清三档行为:

  • highest(默认):只在转码档里挑最高的一档,不发额外请求,最稳;
  • original:额外去探测上传原片,可比最高转码档大数倍,代价是每条作品多一次探测请求(超时 10s),探测失败自动退回最高转码档;
  • 直接写1080p、720p这类分辨率:匹配不到时自动降级到最接近的可用档,适合精确控流量。

批量保存抖音作品:三个高频玩法

基础流程跑通后,下面三个配置组合覆盖了绝大多数"抖音作品批量保存"需求。

玩法一:打包某博主全部作品

主页链接丢进配置,模式只收发布页;想连喜欢页一起收就加一行like:

link: - https://www.douyin.com/user/MS4wLjABxxxx mode: - post number: post: 10

跑完看Download Summary里的 Success 数。若部分条目被风控拦下,汇总表下方会列出跳过/失败原因——保持browser_fallback.enabled: true、headless: false,在浏览器里自己过一遍验证就行。确认节奏没问题后,再把number.post改成0放开全量。

玩法二:只切一个时间窗口

博主发了 800 条,你只关心最近半年的 60 条,全量下等于白烧半个硬盘:

start_time: "2025-01-01" # 只抓该日及之后发布的 end_time: "" # 填上 YYYY-MM-DD 就是限定区间,含当天

结果就是该区间内发布的所有作品,number仍可叠加数量上限。

玩法三:每天只拿新作品

存量收完接着管增量。打开增量开关:

increase: post: true redownload_missing_files: true

重跑时终端 Skipped 计数会涨,落盘的只有真正的新内容,挂成每日定时任务也稳。哪天要整体重下,把increase.post改回false即可,不用清数据库。

文件归档:目录、命名与两份记录

所有文件默认按"作者 → 模式 → 作品"三级归档(folderstyle: true):

Downloaded/ ├── download_manifest.jsonl # 每次下载追加一行 JSON 清单 └── 作者昵称/ # author_dir 可选 nickname / sec_uid / nickname_uid └── post/ └── 2024-02-07_作品标题_aweme_id/ ├── 2024-02-07_作品标题_aweme_id.mp4 # 无水印视频(video: true) ├── 2024-02-07_作品标题_aweme_id_cover.jpg # 封面(cover: true 才有) ├── 2024-02-07_作品标题_aweme_id_music.mp3 # 原声(music: true 才有) ├── 2024-02-07_作品标题_aweme_id_avatar.jpg # 头像(avatar: true 才有) └── 2024-02-07_作品标题_aweme_id_data.json # 元数据(json: true 才有)

命名规则值得知道,免得以为文件"丢了"或"重名了":

  • 文件与目录名默认走{date}_{title}_{id}模板(filename_template/folder_template可改);
  • 日期取作品发布时间而非下载时间,缺失时回退当天;
  • 非法字符自动替换;渲染超过 80 字符时先压缩标题;
  • 模板必须至少引用一个变量(建议含{id}),防止重名互相覆盖。

除了文件本身,还有两份记录可供查询追溯:dy_downloader.db是 SQLite 下载历史库,download_manifest.jsonl每次下载追加一行 JSON 清单。

排错 FAQ:五种常见失败怎么办

问:大面积请求失败,或提示登录态失效?Cookie 过期了。重跑python -m tools.cookie_fetcher --config config.yml扫码接着跑。经验:失败集中爆发时,先怀疑登录态。

问:主页只拿到少量作品?触发风控、翻页受限。保持browser_fallback.enabled: true、headless: false,在浏览器里自己过验证;同时别拉满thread,从 5 起步。

问:单个视频/合集/音乐链接下不了?2026-08 起接口收紧,CLI 在这些类型上被挡。该类型改用 Douzy 桌面版;批量主页仍走 CLI + 浏览器兜底。

问:文件夹里只有视频,缺封面、原声?对应开关还是false。把music/cover/avatar改成true后重跑;首跑前先确认这几个开关,省得回头补。

问:批量跑得太慢?并发保守或网络慢。thread调到 8 重跑;失败变多就退回上一档。

投产前:6 项自查清单

  • 依赖装完,含playwright install chromium这一步
  • 浏览器扫码登录过一次,Cookie 已存进config/cookies.json
  • 小批量试跑通过:number.post: 1,Download Summary显示Success 1
  • 数量先放开到 10 验证节奏,确认无误再改0不限
  • 按需打开music/cover/avatar/json四个附带开关
  • 挂上increase增量开关,配成每日定时任务

最后把长期风险说透:登录态会过期,Cookie 失效重跑一遍 cookie_fetcher 即可;平台接口也在持续变化,某些类型暂时下不动属于正常现象,回头看桌面版兜底就行。

免责声明:本文仅用于技术学习与个人数据管理,请遵守平台规则,尊重内容版权与创作者权益。

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

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

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

立即咨询