news 2026/8/15 12:11:56

抖音批量下载实战:一个晚上,我收下了整个博主的主页

作者头像

张小明

前端开发工程师

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

那个周五晚上,我盯着一位数码博主的页面发呆。他主页上有 340 条作品,从测评到教程,我打算全部存下来慢慢看。手动点了四十多个"保存视频"之后,我确认了两件事:一是抖音 App 下载的视频没法选清晰度,二是再这样点下去,我的拇指和耐心都会先报废。

凌晨一点,我翻出朋友提过的一个开源工具 douyin-downloader——一个面向实用场景的抖音下载工具,支持视频、图集、合集、音乐批量下载,也支持单个链接下载。那天夜里我跑通了第一条命令,从此告别了手动存视频的日子。这篇就把完整过程写下来,照着走,你也能在半个小时内让批量下载转起来。

第一次运行:从克隆到看见第一个下载好的视频

先把项目拉下来,装依赖:

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

装完之后,下载前需要让程序认识你的抖音账号。手动从浏览器 F12 里翻 Cookie 又麻烦又容易过期,项目里带了一个自动获取的工具,运行后会自动弹出浏览器让你登录,登录完回终端按一下 Enter,配置就写好了:

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

接着是最小可用配置。复制一份config.example.ymlconfig.yml,我只改了三处:下载链接、保存路径、下载模式。文件里每一段配置都带注释,第一次用基本不用查文档:

link: - https://www.douyin.com/video/7604129988555574538 path: ./Downloaded/ mode: - post

然后运行:

python run.py -c config.yml

屏幕上滚出 Rich 进度条,几秒钟后Downloaded/里出现了第一个视频文件。到这一步,单条视频下载已经通了。之后我把链接换成某位作者的主页地址,把mode里的post数量调大,一次批量下载就这么跑起来了:

能力地图:这个下载器能装下多少种内容

跑通之后我对着 README 里的功能表捋了一遍,把它能干的事整理成一张速览卡,方便你按需取用:

能力适用场景一句话说明
单个下载一条视频、图集、合集、音乐贴链接就能下,短链会自动解析
作者主页批量下载收藏某位博主的全部作品mode支持作品/点赞/合集/音乐四种
直播录制保存直播内容FLV/HLS,主播下播自动保留已录数据
评论采集分析作品反馈输出*_comments.json供后续处理
热搜榜与搜索选题、找素材一键导出榜单和搜索结果到 JSONL
REST API接入自动化流程起个服务就能提交下载任务
通知推送长任务离线等待完成后推 Bark / Telegram / Webhook

值得一提的是,这些能力不是散装功能,而是围绕"作者主页"这一个核心场景设计的。mode里的post(发布)、like(点赞)、mix(合集)、music(音乐)可以同时开启,一个作者主页跑一次,四种内容就齐了,而且同一个视频在不同模式下不会重复下载。

深入一层:增量下载和去重是怎么做到的

用得越久我越好奇一件事:重复跑同一个作者的下载任务,它怎么知道哪些已经下过了?

看了core/目录下的实现才知道,它做了双重检查。第一层是本地文件扫描,程序会在下载目录里按文件名中的aweme_id判断是否已存在;第二层是 SQLite 数据库,database: true时会在dy_downloader.db里记录每个作品的下载状态。两层互为兜底——只删数据库不删文件不会重新下载,只删文件不删数据库则会补下。

这个设计直接撑起了增量下载功能:

increase: post: true database: true

打开后,同一作者的页面再跑一遍,就只会下载新发布的作品。我追更的那位数码博主每周更新,我每周跑一次,Downloaded/里的文件数和数据库记录一一对应,一次重复下载都没有发生过。

一个完整的实战:把整个合集搬进硬盘

说一个我完整的实际操作。上个月我要备份某位老师全套 120 期绘画教程(他自己放在一个合集里),目标很明确:全部存下来、命名规范、以后能按日期检索。

配置如下:

link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx path: ./Downloaded/ mode: - mix number: mix: 0 # 0 表示不限制数量 thread: 5 filename_template: "{date}_{title}_{id}"

执行python run.py -c config.yml,五个线程并发下载,进度条实时滚动。结束后目录长这样:

Downloaded/ └── 作者名/ └── mix/ └── 2024-03-02_水彩入门第一课_7341234567890123456/ ├── ...mp4 ├── ..._cover.jpg ├── ..._data.json └── ..._music.mp3

每期作品还自动附带了封面、原声音乐和 JSON 元数据。之后我在桌面版 Douzy 的任务中心里也能看到这次下载的完整记录,点开作品档案就能按作者、日期筛选历史,跟命令行跑出来的结果完全一致:

我踩过的几个坑,提前帮你避开

  • Cookie 失效:跑着跑着突然只能拉到 20 条作品,多半是 Cookie 过期了。重跑一次python -m tools.cookie_fetcher --config config.yml就好,不用手动翻浏览器。
  • 只出 20 条的限制:这是翻页风控。配置文件里browser_fallback.enabled保持trueheadless设为false,翻页受限时程序会弹出一个浏览器窗口,手动把验证码点了、别急着关窗口,就能继续翻下去。
  • HLS 直播源只能存 playlist:录直播时如果源是 HLS,保存下来的是播放列表文件,需要自己用 ffmpeg 转一下才能得到完整的视频文件;FLV 源则可以直接播放。
  • 进度条刷屏:默认配置里progress.quiet_logs: true已经开了静默,想排查问题再临时加-v参数,别一直开着刷屏模式跑。

下一步能玩出什么

基础下载跑顺之后,可探索的空间还挺大。官方文档里列着视频转写(调用转写 API 生成字幕文本)、REST API 服务模式(python run.py --serve --serve-port 8000,起服务后通过 HTTP 提交下载任务)、以及桌面版 Douzy——粘贴链接、同步关注列表、可视化跟踪进度,适合不想碰命令行的场景。

配置项说明在 config.example.yml 里都有注释,功能细节可以翻 README.zh-CN.md,使用指南在 USAGE.md。这几个文件我都是边用边查的,比到处搜教程靠谱。

我的资源库现在已经存下几百个视频了,每个月清理一次不再需要的内容,剩下的按主题归档。它解决的其实不是一个"下载"问题,而是一个"如何把散落在平台上的内容,整理成自己能长期使用的资料库"的问题。如果你也有一直想保存却嫌麻烦的内容,不妨从一条视频开始试试。

【免费下载链接】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/8/15 12:11:45

2010-2025年工业互联网试点示范项目企业数据

工业互联网试点示范项目企业数据(2010-2025):可直接用于 DID 因果推断的 A 股制造业面板 做政策实证研究,最耗时的往往不是回归本身,而是把政策文件转换成可用的面板变量。这份整理好的数据集恰好解决了这一步&#x…

作者头像 李华
网站建设 2026/8/15 12:11:28

Obsidian多设备同步方案:Git与坚果云混合实践

1. 为什么需要多平台同步方案作为一款本地优先的Markdown笔记工具,Obsidian最大的优势在于数据完全存储在用户自己的设备上。但这也带来了一个现实问题:如何在多个设备间安全高效地同步笔记?我尝试过多种方案后,最终形成了这套结合…

作者头像 李华
网站建设 2026/8/15 12:08:10

大模型健康度监测:从基础设施到认知层的全链路运维实践

1. 项目概述:从“炼丹”到“养兵”,智能模型运维的必然之路在AI领域,尤其是大模型应用落地的深水区,一个普遍的现象是:团队花费数月甚至数年,投入巨大资源“炼丹”(训练模型)&#x…

作者头像 李华
网站建设 2026/8/15 12:04:39

Obsidian PDF标注效率翻倍:PDF++安装到进阶

Obsidian PDF标注效率翻倍:PDF安装到进阶 【免费下载链接】obsidian-pdf-plus PDF: the most Obsidian-native PDF annotation & viewing tool ever. Comes with optional Vim keybindings. 项目地址: https://gitcode.com/gh_mirrors/ob/obsidian-pdf-plus …

作者头像 李华
网站建设 2026/8/15 12:04:36

阿里巴巴对话交互面试,LLM指令解析光看还不够还得摸得准

继续阿里巴巴的连载。阿里巴巴篇聊完,这篇换到多模态对话与机器人执行工程师视角,把LLM指令解析单独拎出来说透。 LLM指令解析:从输入到异常,一条线讲完 阿里巴巴面试多模态对话与机器人执行工程师时,LLM指令解析是绕不开的考点。面试官喜欢让候选人先讲自己的理解,再逐…

作者头像 李华