news 2026/9/19 21:14:19

抖音批量下载实操手册:去水印取用五分钟跑通

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
抖音批量下载实操手册:去水印取用五分钟跑通

抖音批量下载实操手册:去水印取用五分钟跑通

【免费下载链接】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 是一款开源的抖音无水印下载工具,覆盖单条视频、图集、合集与音乐(原声)四种内容,也是抖音视频批量保存方法里比较少见的「工程化」方案:进度显示、失败自动重试、增量去重、浏览器兜底都内置好了。适合做自媒体素材收集的内容运营、要建内容库的研究者,或者想把主页作品完整存档的人。下面从克隆仓库到跑完第一次批量下载,全程大约五分钟。

内部机制速览:去水印与去重背后的两个设计

为什么是双引擎?下载器默认走抖音接口直连(签名生成可以看 core/api_client.py,xbogus/abogus 都在那里),分页快、延迟低,绝大多数任务靠它就能跑完。但抖音风控并不省心:分页请求会在某页被掐断,2026-09 起更多接口还要求由真实网页生成的一次性签名,CLI 的直连请求带不了。于是项目做了浏览器兜底:接口分页失败时,playwright 拉起真实浏览器(默认有界面),读取页面自己的作品列表请求继续翻页,弹出滑块时人工验证即可。相关参数都在browser_fallback下:enabled/headless/max_scrolls/idle_rounds/wait_timeout_seconds。如果完全不想和 CLI 的风控打交道,项目还配了同一个后端做的 Douzy 桌面端,请求走内置登录窗口,上述接口限制不影响它。

为什么去重要做双重校验?最朴素的实现是「下载过就记一笔,之后全跳过」,但文件被手动删掉、或者换目录重跑时都会出错。这个项目把磁盘当事实来源:只有作品的主媒体文件在磁盘上存在且非空才跳过;SQLite(database_path,默认dy_downloader.db)只记下载历史,不参与增量跳过决策。删掉文件,下次运行就会重下;「数据库里有、本地没有」会被当成需要补下。跨模式也有去重:post、like、mix、music 同时开,同一个 aweme_id 不会被下载两遍。

健壮性方面,全流程包了一层默认 2 次/秒的限流、失败按指数退避重试(1s、2s、5s),下载完还有 Content-Length 完整性校验,不完整的文件会被自动清掉重来,通宵拉几百条作品一般不用担心留下半截文件。

从零跑起来

整条操作流就四步:克隆仓库、装依赖、拿 Cookie、写最小配置。

先克隆仓库并安装依赖,playwright 是浏览器兜底和 Cookie 自动抓取用的,顺手一起装上:

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 抓取器:它会打开浏览器,登录一次抖音,回到终端按回车,Cookie 就自动写进配置文件,不用手动从开发者工具里拷:

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

再编辑 config.yml,只动这几个字段,把博主主页链接填进去:

link: - https://www.douyin.com/user/<用户ID> path: ./Downloaded/ mode: - post number: post: 0 # 0 = 不限量,拉全部 thread: 5 # ... 其余配置省略

最后运行python run.py -c config.yml就出活了。跑起来之后 rich 进度条会实时刷每条文件的状态;命令行还能临时覆盖参数,比如-u追加链接、-p改下载目录、-t改并发。需要留意一点:目前作品分页大概率会走到浏览器兜底,窗口弹出来时验证一下、别急着关;走桌面端则不受这个限制。

挑个场景试试:抖音批量下载的三种高频玩法

批量抓博主作品

最常见的需求是把几个博主的作品拉下来做参考素材。link里列多个主页,mode设为post,再加时间窗,窗外作品直接跳过,省流量也省时间:

link: - https://www.douyin.com/user/<博主A_ID> - https://www.douyin.com/user/<博主B_ID> mode: - post start_time: "2025-01-01" end_time: "2025-12-31" # ... 其余配置省略

跑完后 Downloaded/ 下每个博主各一个目录,作品按{date}_{title}_{aweme_id}分文件夹,mp4 在里头,打开music/cover/json开关的话,原声、封面、元数据 JSON 会落在同一目录。

录一场直播

链接指向直播间时会自动进入录制模式,时长设 0 表示录到主播下播;中途断网或手动停止,已录的部分也会保留成正式文件:

link: - https://live.douyin.com/<房间ID> live: max_duration_seconds: 0 # 0 = 录到主播下播 # ... 其余配置省略

产出在Downloaded/{作者}/live/下,一个 .flv 加一份*_room.json房间信息快照;录制功能目前还是实验性质,重要场次建议盯着点终端。

只抠原声音频

只要原声、不要视频本体的话,把video关掉、music打开,博主每条作品的原声会以 mp3 落盘,视频文件不下载:

link: - https://www.douyin.com/user/<用户ID> mode: - post video: false music: true # ... 其余配置省略

也可以把link换成https://www.douyin.com/music/<音乐ID>直接下单曲;配合同目录的json开关,能顺手把元数据拉出来整理成素材库。

踩坑笔记与提速

群里被问得最多的三类问题,都是真踩过的,写出来省得再问一遍。

现象:作品数量怎么配都只下载到二十多条。根因是抖音对分页请求的风控,接口直连翻到某页就被掐断,不是程序 bug。处理:确认browser_fallback.enabled: trueheadless: false(默认就是有界面的,正为此),浏览器窗口弹出来时手动完成验证,别提前关窗。

现象:昨天还好,今天请求全是登录页或 403。根因是 Cookie 过期,msToken、ttwid 这些都有有效期,放几周必失效。处理:重跑一遍上面的 cookie_fetcher 命令,登录按回车即可刷新;不建议只从浏览器里手动拷某一个字段,自动抓取拿得更全。

现象:重跑一次部分作品被重新下载,或者删了文件却没重下。根因是跳过判断走「磁盘主文件 + 数据库记录」双校验,本地文件名里带 aweme_id,程序靠扫文件名判断存在与否。处理:想强制重下就把increase.post设为false,会覆盖当前筛选范围的作品;删了文件想补下,只删文件就行,程序会按「需要补下」处理;只删数据库没用,照样跳过。

提速上两句话:带宽稳的话把thread从默认 5 提到 8,或者命令行-t 8临时覆盖,批量任务快得明显;要省带宽和磁盘,就把video_qualityhighest降到720p,真要原片再切original,它会多一次探测请求。

再往前一步

读一下 core/user_modes/ 下的策略实现,看 post、like、music 这些模式怎么拆分,再往里加自己的采集逻辑;或者用--search--hot-board把关键词搜索、热榜导成 JSONL,配合定时任务串成一条定期跑的数据流水线。

【免费下载链接】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/19 21:12:48

资源数据采集技术方案:从爬虫到自动化的完整架构解析

简介&#xff1a;面向在线预订类旅游网站的数据采集技术方案要点文档&#xff0c;以系统建设与开发人员为主要读者&#xff0c;解决海量信息环境下旅游信息自动采集、过滤与整合的难点。文档完整覆盖项目概况、建设目标与原则、总体框架、技术路线、系统设计规范及详细设计等模…

作者头像 李华
网站建设 2026/9/19 21:11:53

Zotero 7全文翻译实战:PDFMathTranslate+Ethereal Style深度集成指南

1. 项目概述&#xff1a;Zotero里全文翻译到底在解决什么问题&#xff1f;Zotero里全文翻译的方法&#xff0c;核心解决的是科研工作者在阅读外文文献时“看得懂标题、读不懂内容”的典型困境。不是简单地把PDF里的一段文字复制粘贴到网页翻译框里——那叫临时救急&#xff1b;…

作者头像 李华
网站建设 2026/9/19 21:07:25

BrewUI:让Homebrew包管理可视化,macOS软件维护一目了然

1. BrewUI是什么&#xff0c;为什么我会盯上它先交代一下背景。我平时在macOS上管理开发环境&#xff0c;Homebrew是绕不开的工具&#xff0c;装了上百个包和cask应用之后&#xff0c;经常要翻终端敲命令去查哪个包该更新了、哪个依赖被孤儿了、哪个服务没起来。时间长了我发现…

作者头像 李华