抖音批量下载保姆级教程:开源采集工具 douyin-downloader 从安装到批量采集,新手 5 分钟上手
【免费下载链接】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 是一个开源的抖音批量下载工具,能帮你一键保存无水印视频、图集、合集、原声音乐,还能整页采集博主作品、录制直播和抓取评论区。如果你还在为"手动保存视频太麻烦、下载下来还带水印"而发愁,这篇教程会用大白话带你把它完整跑起来。
先别急着装,花一分钟看看它到底能干什么
很多人在抖音刷到好内容,第一反应是长按保存——结果存下来的不是带水印,就是被平台压缩成糊的。想批量收藏某个博主的全部作品?手都点酸了还没存完。
douyin-downloader 就是来解决这三件事的:
- 单条作品下载:视频、图文、合集、音乐,复制链接就能下
- 整页批量采集:给定一个博主主页,自动把他发的、点赞的、合集里的、用过的原声全抓下来
- 附加能力:去水印优先、自动挑最高清、直播录制、评论采集、热搜榜和关键词搜索
它本质上是一套命令行工具,装上 Python 环境就能跑,不挑系统,Windows、macOS、Linux 都行。项目的详细说明在仓库的douyin-downloader/目录下,代码结构清晰,后续想二次开发也不难。
为什么值得选它:一个下载器顶三个小工具
市面上类似的脚本不少,但大多要么只支持单链接,要么三天两头失效。这个项目把几个常见的"痛点"提前焊死在设计里了,用起来很省心。
1. 去水印 + 自动挑高清下载时会自动选无水印的视频源,还会从码率列表里挑最高清的那个。你不用自己对着一堆清晰度选项纠结,它已经帮你做了最优选择。
2. 多线程并发下载你可以把它想象成一条快递分拣流水线:默认开 5 个工人同时干活,视频、封面、音乐、头像各自排队进场,互不干扰。想更快就调高线程数,想低调就调低,配置里改一个数字就行。
3. SQLite 数据库去重每次下载都会被登记到本地数据库里,像图书馆的借阅登记簿一样。下次再跑同一个链接,它一查"这本已经借出去了",直接跳过,绝不浪费流量和时间。跨模式下载(比如同时下"发布"和"点赞")也不会重复。
4. 失败自动重试 + 断点续传下载中断了会自动按 1 秒、2 秒、5 秒的节奏重试,文件不完整会自动清掉重下。网络不好也不用守着电脑。
3 分钟快速跑起来:从环境准备到第一次成功下载
这一节帮你解决"怎么把工具装好并用起来"的问题。跟着走,基本不会卡壳。
第一步:确认电脑上有 Python
项目要求Python 3.8 及以上。在终端里敲一行验证一下:
python --version如果提示找不到命令,去 Python 官网装一个,安装时记得勾选"Add to PATH"。装完重新开终端再试一次。
第二步:拉代码、装依赖
git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader pip install -r requirements.txt装依赖时如果网络慢,可以换国内镜像源加速:
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple小提示:如果你后面想用"浏览器兜底"或"自动获取 Cookie"功能,还需要额外装 Playwright 和浏览器内核,命令是
pip install playwright && python -m playwright install chromium。不想用这些功能的话,可以先跳过。
第三步:搞定 Cookie,这是唯一绕不开的环节
抖音的接口需要登录态,Cookie 就是你的"进门凭证"。项目贴心地提供了自动获取工具:
cp config.example.yml config.yml python -m tools.cookie_fetcher --config config.yml执行后会自动弹出一个浏览器窗口,你正常扫码登录抖音,登录完回到终端按回车,程序就会把 Cookie 自动写进config.yml,全程不用手动复制粘贴。
如果你不想用自动方式,也可以手动填。打开config.yml,找到cookies:这一段,把浏览器开发者工具里拿到的键值对填进去即可:
cookies: msToken: 你的值 ttwid: 你的值 odin_tt: 你的值第四步:改两行配置,跑通第一个任务
打开config.yml,把link换成你想下载的内容链接(视频、图文、主页都行),然后运行:
python run.py -c config.yml看到进度条滚动、最后提示"下载完成",恭喜,你的第一次抖音下载就成功了!运行界面长这样:
界面会实时显示当前作品总数、并发线程数、保存路径,以及每个文件的下载状态和最终耗时统计。
日常玩法:单条视频、图文、合集、音乐,复制链接就能下
这一节帮你解决"平时看到好东西怎么快速存下来"。douyin-downloader 最贴心的一点是:不用去找什么纯净链接,直接复制抖音分享出来的短链就行,它会自动解析。
比如你在抖音 App 里点"分享",复制出来的链接长这样:https://v.douyin.com/xxxxx/。把这条链接填进配置:
link: - https://v.douyin.com/xxxxx/程序会先解析短链,识别出它是视频、图文还是合集,然后自动选择对应的下载方式。想一次下好几条?在link下面多列几行就行:
link: - https://v.douyin.com/aaaa/ - https://v.douyin.com/bbbb/ - https://www.douyin.com/note/7341234567890123连图文(note)、合集(collection)、音乐(music)类型的链接也都认。音乐模式会优先找原声文件,找不到时自动回退到该音乐下的第一条作品,细节处理得相当周到。
进阶玩法一:批量采集某个博主的主页作品
这一节帮你解决"想一口气把某个博主的内容全存下来"的问题,这也是这个工具最值得炫耀的能力。
假设你想备份某个美食博主的全部作品,把配置改成:
link: - https://www.douyin.com/user/一串sec_uid mode: - post number: post: 0 # 0 表示不限数量,全部下载跑起来之后,程序会翻页拉取他的所有作品,逐个下载。这里的mode是核心开关,支持好几种:
post:发布的全部作品like:他点赞过的内容(需要登录)mix:他创建的所有合集music:他用过的原声
甚至可以一次开多个模式,同时下载:
mode: - post - mix - music多个模式之间会自动去重,同一个作品不会被下载两遍。如果你只想看某个时间段的内容,还能用start_time和end_time过滤,比如只抓最近 7 天发布的:
start_time: "2026-08-08" end_time: "2026-08-15"批量任务跑起来后,多线程并发下载的实况是这样的:
几十个任务同时推进,全部完成后会给出汇总统计,不用你一个一个盯着看。
进阶玩法二:增量更新,定时只下"新货"
这一节帮你解决"博主天天更新,我不想每次都全量重下"的问题。用增量模式,工具会记住上次下载到哪里,下次只补新作品。
increase: post: true database: true # 增量模式依赖数据库记录,别关掉配合系统的定时任务(比如 cron 或计划任务),每天凌晨跑一次python run.py -c config.yml,就能实现"博主动态自动跟更"。对做竞品监控、素材收集的人来说,这套组合拳非常实用。
进阶玩法三:直播录制、评论采集、热搜与关键词搜索
这一节帮你解锁下载器以外的"隐藏技能",让工具从"下载器"升级成"采集器"。
录制直播:把链接指向直播房间,比如https://live.douyin.com/273940655995,工具会自动解析直播间信息,你还能选清晰度:
link: - https://live.douyin.com/273940655995 live: max_duration_seconds: 0 # 0 表示录到主播下播录制界面会先展示房间号、在线人数、主播名这些信息,再开始拉流:
最贴心的是,主播中途下播或者网络断了,已经录好的字节会保留下来,不会白录一场。
采集评论:打开开关后,每个作品旁边会多生成一个_comments.json,把评论区(含二级回复)一起打包,做舆情分析很方便:
comments: enabled: true include_replies: true max_comments: 500热搜榜 + 关键词搜索:不需要复制链接,直接命令行拉数据:
python run.py --hot-board 30 -p ./Downloaded python run.py --search "猫咪" --search-max 100 -p ./Downloaded结果会以 JSONL 格式导出,方便接进你自己的数据分析流程。
下载完的资源长什么样?目录结构一看就懂
这一节帮你解决"下载完文件乱糟糟找不到"的问题。项目默认按"作者 → 模式 → 日期作品"三层组织文件,强迫症狂喜:
Downloaded/ └── 作者名/ └── post/ └── 2024-02-07_作品标题_123456789/ ├── 2024-02-07_作品标题_123456789.mp4 ├── ..._cover.jpg ├── ..._music.mp3 ├── ..._avatar.jpg └── ..._data.json每个作品一个文件夹,命名里带着发布日期和作品 ID,一眼就能看出"这是谁、什么时候、发的哪条"。同时还会生成一份download_manifest.jsonl下载清单,相当于全部作品的目录索引:
如果你不喜欢这种"一作品一文件夹"的风格,把配置里的folderstyle改成false,文件就会平铺存放。命名模板也支持自定义,可以用{date}、{title}、{id}、{author}这些变量自由组合。
新手最容易踩的 5 个坑(FAQ 篇)
这一节帮你避雷,都是实际使用中高频出现的问题。
1. 报错说 Cookie 失效了,怎么处理?Cookie 有有效期,失效后重新跑一遍自动获取工具即可:
python -m tools.cookie_fetcher --config config.yml建议把 Cookie 相关的配置都填全(msToken、ttwid、odin_tt 等),只填一两个很容易触发风控。
2. 为什么博主明明有几百条作品,只抓到了 20 条?这是抖音翻页风控的常见现象。确保browser_fallback.enabled为true、headless为false,当浏览器窗口弹出来后,手动完成里面的验证(比如滑块),别急着关窗口,等它自己翻完页。
3. 我想重新下载某个视频,为什么总被跳过?因为去重机制认定"已经下过了"。想重下,需要同时清理本地文件和数据库记录:
sqlite3 dy_downloader.db "DELETE FROM aweme WHERE aweme_id = '该作品ID';"然后删掉对应的本地文件夹,再跑一次就正常了。
4. 线程数是不是越高越好?不是。线程太高容易被平台风控,还可能把带宽占满。个人电脑建议保持默认的 5,服务器环境可以调到 8~10。反正项目有失败重试兜底,稳比快重要。
5. 只想下载视频,不想带封面和音乐,可以吗?可以。配置里的music、cover、avatar、json四个开关分别控制音乐、封面、头像、数据文件的下载,把不想要的改成false就行,能省不少磁盘空间。
三个关键提醒,收好再动手
🎯先备份再批量:整页采集前,先把 Cookie 弄好,建议小批量试跑一次,确认没问题再放开数量限制。
🔧参数按场景调:个人电脑别贪线程数,服务器可以放开;只追更新就用增量模式,别全量重跑。
🔄定期维护更新:抖音的反爬策略一直在变,工具也在持续更新,遇到功能失效先去仓库拉一下最新代码。
好了,从今天起,你也是一个会用命令行"批量薅素材"的人了。第一次跑通时的成就感,可比手动存一百个视频来得实在。挑一个你最喜欢的博主主页,打开终端,跑起来试试吧!🚀
【免费下载链接】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),仅供参考