已完成信息核对,现在开始撰写文章
【免费下载链接】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
我已核实了项目的实际功能(支持视频/图文/合集/音乐/收藏夹/直播录制/评论采集/热搜榜/搜索/REST API)、安装与运行命令、配置项、输出目录结构、Cookie 获取方式以及桌面版截图内容,接下来按要求从零设计文章结构并成文。
douyin-downloader 抖音批量下载实战指南:从单个视频到作者主页一次搞定
周五晚上十点,做内容运营的林姐接到临时任务:明天上午要交一份"对标账号近三个月爆款视频"的分析报告,涉及三位博主的六十多条作品。她在手机上逐条打开链接、手动保存,忙到凌晨才收了不到二十条,文件名还乱成一团。第二天,同事把开源工具 douyin-downloader 发给她,装好依赖、配置一个文件、敲一条命令,三位博主的作品连同封面、文案、音乐全部规整落地。这不是段子,抖音批量下载正是 douyin-downloader 的核心能力,也是它被大量内容创作者、研究者和运营人员选中的原因。
先认识 douyin-downloader:一个链接覆盖九种内容形态
douyin-downloader 是一个面向实用场景的开源抖音下载工具,主打"去水印 + 批量"。它不只会下单个视频,而是把抖音上你能想到的内容形态基本都覆盖了:
| 内容类型 | 链接形态 | 说明 |
|---|---|---|
| 单条视频 | /video/{id} | 自动选择无水印源 |
| 单篇图文 | /note/{id}、/gallery/{id} | 图片集完整保存 |
| 单个合集 | /collection/{id} | 合集内全部作品 |
| 单个音乐 | /music/{id} | 优先原声文件,缺失时回退 |
| 作者主页 | /user/{sec_uid} | 支持 post / like / mix / music 四种模式 |
| 我的收藏 | /user/self | collect / collectmix 两种模式 |
| 短链 | v.douyin.com/... | 自动解析后再下载,裸 host 也能识别 |
| 直播间 | live.douyin.com/{room_id} | FLV/HLS 录制,断流保留已录数据 |
也就是说,无论你手里是分享来的短链、某个博主的个人主页,还是一个合集链接,工具都能自动判断类型并匹配对应的下载策略,不需要你手工区分。命令行界面上,每一步都会明确展示当前处于解析、排队还是下载阶段。
为什么值得用:四个被反复验证的理由
网上免费下载工具不少,但大多只解决"单条视频"这一个问题。douyin-downloader 被高频推荐,主要因为这四点:
1. 批量能力是真正的生产力。作者主页模式下,一次运行可以拉取全部作品、点赞、合集、音乐,number设为 0 即为全量,不设上限。默认 5 线程并发,配合失败重试(指数退避:1 秒、2 秒、5 秒)和每秒 2 次的请求限速,在"速度"与"不被风控"之间做了平衡。
2. 双重去重,杜绝重复劳动。工具内置 SQLite 数据库记录 + 本地文件双重去重:数据库里查得到、文件夹里已有同名文件,都会直接跳过。更实用的是增量下载——开启increase.post: true后,第二次运行只下载新增作品,适合每天追更博主。
3. 稳定性有兜底。翻页被风控时自动启动浏览器兜底,弹出窗口后可以人工过验证码;下载完成后还会用 Content-Length 比对文件完整性,不完整的文件自动清理并重试。这套机制把下载成功率稳定维持在很高水平,而不是动不动"任务中断、前功尽弃"。
4. 下载的不只是视频,而是一整套数字资产。每个作品会生成:无水印视频、封面图、背景音乐、作者头像、完整 JSON 元数据,可选附带评论数据。对做素材库、做研究的人来说,这些结构化数据比裸视频值钱得多。
十分钟跑通第一条下载任务
先给个前提:你只需要 Python 3.8+,Windows / macOS / Linux 都可以。下面是完整的最小可行路径。
第一步,克隆项目并安装依赖。
git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader pip install -r requirements.txt如果后面要使用浏览器兜底或自动获取 Cookie,再补装 Playwright:
pip install playwright python -m playwright install chromium第二步,准备配置。复制示例配置并填写下载链接:
cp config.example.yml config.yml最简配置长这样:
link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx path: ./Downloaded/ mode: - post number: post: 0 thread: 5 retry_times: 3 database: truelink可以放多个链接,程序会逐个处理;number.post: 0表示不限数量全量下载;database: true开启 SQLite 去重。
第三步,配置 Cookie。Cookie 是访问抖音 API 的钥匙,有两种方式:
- 推荐自动获取:运行
python -m tools.cookie_fetcher --config config.yml,会自动打开浏览器,登录抖音后回到终端按回车,Cookie 自动写入配置。 - 手动方式:登录抖音网页版,从开发者工具复制整串 Cookie,粘贴到配置文件的
cookies字段(支持整串字符串,也支持键值对形式)。
第四步,运行。
python run.py -c config.yml跑完后去./Downloaded/看结果,目录会自动按"作者名 → 模式 → 日期_标题_作品ID"整理好,每个作品一个文件夹,视频、封面、音乐、头像、JSON 各就各位。
实战拆解:把一位博主的作品库完整搬进本地
光看配置不够,我们拆一个真实需求。假设你要长期关注一位美食博主,既要历史全部作品,又希望以后每次运行只拿新增内容,还想要他点赞过的视频作为选题参考。
需求清单:
- 全量下载该博主发布的全部作品(历史归档)
- 增量追更,第二次运行只下新的
- 同时抓取他的"喜欢"列表前 50 条
- 只保留无水印高清源,附带封面与文案
对应配置:
link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx mode: - post - like number: post: 0 like: 50 increase: post: true database: true thread: 8 retry_times: 5运行与结果:
python run.py -c config.yml首次运行会把 post 全部作品 + 50 条点赞作品下载完;次日再跑同一命令,post 模式只处理新增作品,like 模式受number限制不会再重复下载已入库的内容。所有记录存在dy_downloader.db里,想查历史可以随时用 SQL 检索:
sqlite3 dy_downloader.db "SELECT title, author_name, datetime(download_time,'unixepoch','localtime') FROM aweme ORDER BY download_time DESC LIMIT 20;"如果某天想清空重下,工具也给出了明确路径:把本地文件与数据库记录一起删掉才会重新下载——只删数据库不会触发,因为程序还会扫描本地文件里的作品 ID 去重。
让工具更懂你的进阶配置清单
基础跑通之后,下面这些配置能覆盖大多数真实场景。
并发与网络调优。家庭宽带建议 5~8 线程;遇到 IP 限制可以挂代理,proxy: "http://127.0.0.1:7890";增加timeout应对网络波动。
文件命名与组织。默认命名模板是{date}_{title}_{id},可用变量还有作者、点赞数、评论数等,例如filename_template: "{date}_{author}_{title}_{id}";author_dir支持nickname/sec_uid/nickname_uid三种作者目录命名,folderstyle: true按作品建子目录。
时间过滤。只需要某段时间的作品时,配置start_time/end_time(格式YYYY-MM-DD),适合做"近三个月爆款"这类分析。
视频转写。设置transcript.enabled: true并配置 OpenAI 密钥,每个视频会自动生成.transcript.txt和.transcript.json文字稿,做内容检索、字幕整理非常省事。
评论采集。开启comments.enabled: true后,每个作品旁会生成*_comments.json,include_replies可控制是否拉取二级回复,max_comments控制数量。
热搜与搜索。不依赖配置文件也能用:
python run.py --hot-board 30 -p ./Downloaded python run.py --search "猫咪" --search-max 100 -p ./Downloaded结果分别落成hot_board/和search/目录下的 JSONL 文件,适合做选题热点追踪。
完成后通知。长任务丢后台跑的时候,配置notifications的 Bark / Telegram / Webhook 推送,下载完成或失败都会在手机上收到消息,无需一直盯着终端。
直播录制。把直播间链接放进link,再配置live参数(最大时长、分块大小、空闲超时),录制的 FLV 会保存在Downloaded/{作者}/live/下,主播下播或中途中断时已录字节都会被保留,不会白录。
以服务方式运行。装了fastapi + uvicorn后,python run.py --serve --serve-port 8000可以把它变成 REST API 服务,POST/api/v1/download提交链接、GET/api/v1/jobs/{id}查进度,方便集成进自己的系统。
另外,同一套后端还孵化了一个桌面客户端 Douzy(内测中):粘贴链接即刻开始、同步关注列表、可视化跟踪进度,任务中心和作品档案都有图形界面,怕命令行的新手可以留意它的正式发布。
使用前必须知道的边界与合规提醒
工具很强大,但有几条边界需要提前了解,避免踩坑:
- 收藏夹模式有前提。
collect/collectmix只支持当前已登录 Cookie 对应的账号,且必须单独使用,不能和 post / like / mix / music 混写在一个mode列表里。 - 增量不覆盖所有模式。
increase目前只支持 post / like / mix / music;浏览器兜底也只对 post 模式做了完整验证,like / mix / music 主要依赖 API 正常分页。 - 直播录制属实验功能。FLV 可直接播放;HLS 源只保存 playlist 文件,需要用 ffmpeg 做后处理。webcast 直播接口未覆盖全部场景。
- 合规第一。项目仅用于技术研究、学习交流与个人数据管理。请勿下载他人私密内容、勿用于商业二次传播或侵犯版权,尊重平台规则与接口策略,使用风险由使用者自行承担。
高频问题速查
Q:只能抓到 20 条作品,翻不动页怎么办?这是翻页风控的典型表现。确认配置里browser_fallback.enabled: true、headless: false,浏览器弹窗出现后手动完成验证,不要急着关窗口。
Q:Cookie 失效,提示需要重新登录?重新跑一遍python -m tools.cookie_fetcher --config config.yml即可自动刷新并写回配置。
Q:进度条一直刷屏很乱?默认progress.quiet_logs: true已静默日志;想排查问题再临时加--show-warnings或-v。
Q:下载失败了会中断整个任务吗?不会。单个链接失败会打印原因并继续处理下一个;网络中断的作品也会按配置自动重试。
Q:启用了转写却没生成 transcript 文件?按顺序排查:transcript.enabled是否为 true、下载的是不是视频(图文不转写)、API Key 是否有效、response_formats是否包含 txt 或 json。
结尾:从今天开始,把"手动保存"交给工具
回到开头林姐的故事——她后来每周用这套工具花十五分钟更新素材库,比原来两名实习生手动整理四个小时高效太多。工具的价值从来不是"代替人",而是把重复劳动压缩到可以忽略,让你把精力留给真正的分析和创作。
动手很简单:克隆仓库、装依赖、配好 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),仅供参考