抖音视频批量下载去水印: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 去重和浏览器兜底。这篇文章不堆术语,我带你从零装好它,再一步步解锁各种进阶玩法。
🗺️ 先看一张"功能地图":它到底能帮你做什么
在动手之前,先花 30 秒认识这只工具箱。下面这张表基本覆盖了它的全部能力,你完全可以按图索骥,用到哪块查哪块:
| 你的需求 | 对应能力 |
|---|---|
| 存下单个视频/图文 | 支持/video、/note、/gallery链接 |
| 保存整个合集/音乐 | 支持/collection、/music,音乐优先原声文件 |
| 备份某位博主全部作品 | 用户主页批量下载,分作品/喜欢/合集/音乐四种模式 |
| 下载自己的收藏夹 | collect/collectmix模式,需登录态 Cookie |
| 追求画质 | 无水印优先,自动从码率数组里挑最高清源 |
| 网络不稳 | 并发下载、指数退避重试、速率限制 |
| 怕重复下载 | SQLite 数据库 + 本地文件双重去重,支持增量 |
| 直播想录下来 | 支持live.douyin.com直播间 FLV/HLS 录制 |
| 想分析内容 | 评论采集、热搜榜、关键词搜索,数据落 JSONL |
它采用 Python 开发,Windows、macOS、Linux 全平台可跑;仓库里有 70 多个自动化测试用例兜底,采用 MIT 协议,源码完全开放,用起来心里踏实。
🛠️ 三步搭建运行环境:把工具"请"进家门
这一步没有任何技术门槛,跟着敲就行。
第 1 步:克隆项目代码
git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloadercd进入项目目录,后面所有命令都在这层目录下执行。
第 2 步:安装 Python 依赖
pip install -r requirements.txt一行命令装齐所有依赖库,工具需要 Python 3.8 及以上版本。如果你想用"浏览器兜底"或自动获取 Cookie,再补装 Playwright:
pip install playwright python -m playwright install chromium第 3 步:复制配置模板
cp config.example.yml config.yml官方给了一份注释完整的配置模板,复制一份作为自己的配置文件,后面想怎么调都行,不影响原始模板。
🔑 打通 Cookie 通行证:两种方式任选其一
Cookie 是抖音 API 的"身份凭证",没有它工具无法获取真实下载链接,这一步不能跳过。好在项目提供了省心的自动化方案:
python -m tools.cookie_fetcher --config config.yml运行后会弹出浏览器,你扫码或账号密码登录抖音,回到终端按一下回车,程序就会把 Cookie 自动写进config.yml,全程不用手抄任何字符串。如果你的机器不方便跑自动化浏览器,也可以手动从浏览器开发者工具里复制关键字段,填进配置文件的cookies段落。
🚀 跑通第一个下载任务:一条命令的事
配置就绪后,先拿一个单条视频练手。既可以把链接写进配置文件的link列表,也可以用命令行直接追加:
python run.py -c config.yml -u "https://www.douyin.com/video/7604129988555574538" -t 8 -p ./Downloaded这条命令做了什么?-c指定配置文件,-u追加要下载的链接(可重复传多个),-t把并发数提到 8,-p把文件存到Downloaded目录。链接粘贴进去就能跑,短链接、长链接都能识别,工具会先自动解析再下载。
终端里的 Rich 进度条会实时显示每个文件的下载状态、成功数和耗时,谁在下、下没下完一目了然。
📚 批量下载的四种"打开方式":作品、喜欢、合集、音乐
单条下载只是开胃菜,真正的高光时刻在"批量"二字。把链接换成博主主页,再通过mode决定下载维度:
link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx mode: - post # 作品:博主发布的所有视频和图文 - like # 喜欢:博主公开点赞过的内容 - mix # 合集:博主创建的所有合集 - music # 音乐:博主用过的原声音乐 number: post: 50 # 只下最近 50 条,0 表示不限量全下几个值得记住的细节:四种模式可以同时开启,一次跑完整个主页;同一个作品在"作品"和"喜欢"里重复出现时,跨模式自动去重,不会下两遍;配合start_time/end_time还能按日期过滤,比如只取 2024 年发布的内容。想要"只下新的"?把increase.post: true打开,工具会对照数据库只下载新增作品,适合长期追更的场景。
批量场景下每个任务的进度和耗时都会独立展示,方便你盯住慢的那一个。
📺 从"看直播"到"录直播",再到顺手采集评论
批量下载之外,还有一个容易被忽略的宝藏功能——直播录制。把直播间链接填进去,开播即录:
link: - https://live.douyin.com/273940655995 live: max_duration_seconds: 0 # 0 表示录到主播下播 chunk_size: 65536 idle_timeout_seconds: 30录制会保留直播间标题、在线人数、清晰度等元数据,主播下播或你按 Ctrl+C 中断时,已录制的部分会完整保留,不会白录。录完的 FLV 存放在Downloaded/作者名/live/目录下。
直播场景支持清晰度选择,界面会展示房间号、标题、在线人数等信息,下播自动收尾。
如果你在做内容分析,还可以开启评论采集:
comments: enabled: true include_replies: false # 设为 true 会连二级回复一起抓 max_comments: 500每个作品旁边会生成*_comments.json文件,评论数据随视频一起归档。
⚙️ 进阶调优:并发、重试、代理与增量去重一次配齐
批量下多了,你会开始关心"效率"和"稳定"。这几个配置项建议重点照顾:
| 配置项 | 默认值 | 怎么调 |
|---|---|---|
thread | 5 | 并发下载数,普通网络 5~10,高速网络可到 10~20 |
retry_times | 3 | 失败重试次数,内置指数退避(1s、2s、5s 递增) |
proxy | 空 | 填http://127.0.0.1:7890这类地址即可走代理 |
database | true | 开启 SQLite 去重与历史记录 |
increase.post | false | 增量下载,只拉新作品 |
progress.quiet_logs | true | 静默进度日志,避免终端刷屏 |
两个容易被忽略的贴心设计:一是完整性校验——下载会比对 Content-Length,不完整的文件会被自动清理并重新下载,不会留一堆半截视频;二是通知推送——下载完成后可以推送到 Bark、Telegram 或任意 Webhook(企业微信、飞书、钉钉机器人地址同样适用),后台跑批量任务时,手机收条消息就知道跑完了。
🗂️ 下载成果去哪了:井井有条的"数字档案柜"
很多工具下载完就是一地散沙,douyin-downloader 则会按"作者 → 模式 → 作品"帮你把文件整理成档案柜:
Downloaded/ └── 作者名/ └── post/ └── 2024-02-07_作品标题_aweme_id/ ├── 2024-02-07_作品标题_aweme_id.mp4 ├── 2024-02-07_作品标题_aweme_id_cover.jpg ├── 2024-02-07_作品标题_aweme_id_music.mp3 ├── 2024-02-07_作品标题_aweme_id_avatar.jpg └── 2024-02-07_作品标题_aweme_id_data.json每个作品一个独立文件夹,视频、封面、音乐、头像、元数据各归其位。文件名和目录的日期前缀用的是作品发布时间,不是下载时间,归档起来很有节奏感。命名模板也完全可定制,{date}、{title}、{id}等变量随意组合。
下载结果按日期和标题自动分文件夹存放,找任何一条视频都能凭记忆快速定位。
🎁 彩蛋玩法:热搜榜、关键词搜索与 API 服务
如果你以为它只会"下载",那可就低估了。这三招是很多人没发现的进阶玩法:
拉热搜榜快照,观察当天热点:
python run.py --hot-board 30 -p ./Downloaded结果以 JSONL 格式存到Downloaded/hot_board/下,每条含标题、热度等字段,很适合做热点追踪。
按关键词搜索作品:
python run.py --search "猫咪" --search-max 100 -p ./Downloaded不落地视频,只导出搜索结果清单,用于选品调研、素材盘点都很方便。
以 REST API 服务模式运行,把下载能力接入自己的系统:
pip install fastapi uvicorn python run.py --serve --serve-port 8000启动后通过POST /api/v1/download提交链接即可创建下载任务,用GET /api/v1/jobs/{id}轮询进度。对于想把这套能力封装进自己产品里的开发者,这简直是白捡的后端。
🖥️ 不想敲命令?桌面版 Douzy 已就位
命令行虽强大,但确实有门槛。项目方基于同一套后端打造了桌面客户端 Douzy(目前内测中),粘贴链接、选择模式、点击下载,全图形化操作:
检测链接后即可勾选"作品/喜欢/合集"下载范围,无需记忆任何参数。
任务中心按状态分组展示全部任务,历史记录、进度事件流都能直观查看。
桌面版还支持关注列表同步、SQLite 历史筛选和文件命名模板配置——命令行党的配置功力,在这里用鼠标就能完成。
⚠️ 避坑指南:五个高频问题一次说清
Q1:为什么只抓到 20 条作品就停了?这是翻页风控的典型表现。确保browser_fallback.enabled: true且headless: false,翻页受限时程序会弹出浏览器,你手动完成验证码后别急着关窗口,等它继续采集即可。
Q2:进度条疯狂刷屏怎么办?默认progress.quiet_logs: true会在进度阶段静默日志,保持开启就好。调试时再临时加--show-warnings或-v看详细输出。
Q3:Cookie 失效了怎么更新?重新跑一遍python -m tools.cookie_fetcher --config config.yml,重新登录后自动覆盖旧值,几秒钟搞定。
Q4:想重新下载某个视频,但它总被跳过?程序用"数据库记录 + 本地文件"双重判断去重。删掉对应作品文件夹,再执行sqlite3 dy_downloader.db "DELETE FROM aweme WHERE aweme_id = 'xxx';"即可强制重下。
Q5:视频转写功能为什么没生效?转写目前只对视频作品生效(图文不转写),并需要transcript.enabled: true且配置有效的 OpenAI API Key,推荐用export OPENAI_API_KEY="sk-xxx"环境变量方式注入。
🎉 写在最后:把心仪的内容,都安放进自己的收藏架
回看整篇文章,douyin-downloader 解决的核心问题其实很朴素:让"想存却存不下来"的内容,都能干净、完整、有条理地留在你手里。它免费、开源、跨平台,单条下载、主页批量、直播录制、评论采集、数据导出一应俱全,命令行和桌面版任你挑选,连最常见的风控问题都有浏览器兜底方案。
别让心仪的创作者更新悄悄溜走,也别再忍受截图式收藏。回到第三步那条git clone命令,现在就去把它跑起来——装好后先下一两个视频试试手感,你会发现,原来保存喜欢的内容可以这么顺滑。如果在使用中遇到问题,欢迎去项目仓库提交 Issue;如果你愿意,也可以为这个开源项目贡献代码,让更多人受益。
【免费下载链接】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),仅供参考