抖音批量下载工具完全上手手册:5 步用 douyin-downloader 建起无水印视频内容库
抖音批量下载工具完全上手手册:5 步用 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 是一款免费开源的抖音批量下载工具,支持视频、图集、合集、音乐原声的无水印下载,还能整页抓取作者作品、自动去重、断点续传。这篇手册会从安装讲到高级玩法,帮你把它变成随身携带的本地内容仓库。
先聊个真实的"收藏夹吃灰"场景
朋友小周是位健身博主的铁杆粉丝,每天都在抖音追更。直到有一天她发现,自己点赞过的三百多条视频,博主一夜之间清空了主页——不是因为内容违规,只是创作者想"重新开始"。她打开收藏夹,绝大多数视频已经显示"作品已删除"。
这种体验很多人都有过:平台上的内容永远处于"随时会消失"的状态,而收藏夹只是"假装保存了"。手动录屏画质差、带水印;一个个右键另存为,又慢又乱。小周后来用上了 douyin-downloader,把喜欢的创作者主页整页拉回本地,从此再没慌过。
你需要的不是又一个收藏夹,而是一个能真正把内容握在手里的工具。接下来这 5 步,带你从零上手。
认识一下:这个工具到底能替你存下什么
打开工具的那一刻,你可能会惊讶于它能处理的类型远比想象中多。简单说,凡是抖音上"能看的内容",它大多都能原样落盘:
- 视频与图集:单条链接、短链、图文笔记,通通支持,默认优先挑无水印的清晰源
- 音乐原声:独立下载背景音乐(mp3),封面、作者头像、JSON 元数据也能一并存下
- 合集与收藏夹:单个合集、某个作者的多个合集,甚至你自己收藏夹里的内容
- 整页作品:把某位作者的发布作品、点赞作品、音乐作品成批拉回本地
- 直播回放:实时录制直播间画面(FLV/HLS),主播下播后数据自动保留
- 评论与热搜:抓取作品评论(可含二级回复),导出热搜榜和关键词搜索结果
最贴心的是"智能管理":内置 SQLite 数据库记录每次下载,重复的内容自动跳过;下载中断了也能续传,文件不完整会自动清理重来。这些细节,恰恰是很多同类小工具做不到的。
如果你更习惯图形界面,项目还附带一个基于同一套后端开发的桌面版(Douzy),粘贴链接、同步关注列表、可视化跟踪进度,适合不想碰命令行的朋友。
图:桌面版主界面,粘贴链接即可检测并选择要下载的内容
新手第一课:30 分钟跑通第一次下载
命令行版功能最全,配置也最灵活,建议从它开始。整个过程大约三步。
装好环境
需要 Python 3.8 及以上版本,然后克隆项目并安装依赖:
git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader/douyin-downloader pip install -r requirements.txt如果网络比较慢,把 pip 换成国内镜像源即可。想让翻页受限时能用浏览器兜底、或希望自动获取 Cookie,再补两步:
pip install playwright python -m playwright install chromium完成一次性登录认证
抖音的内容需要有效 Cookie 才能访问。工具提供了一条最省心的路径:
cp config.example.yml config.yml python -m tools.cookie_fetcher --config config.yml运行后会弹出浏览器,扫码登录抖音,回到终端按一下回车,工具会把 Cookie 自动写进配置文件。整个过程 Cookie 只留在你本地电脑上,不会上传到任何服务器。
填一份"最小配置"然后开跑
打开config.yml,先别急着改各种高级选项,保留这份精简版就够完成第一次测试:
link: - https://www.douyin.com/video/7604129988555574538 # 换成你想下载的视频链接 path: ./Downloaded/ music: true # 顺便下载背景音乐 cover: true # 顺便下载封面 json: true # 保存作品元数据 database: true # 开启去重与历史记录保存后执行:
python run.py -c config.yml你会看到富文本进度条和阶段日志。等它跑完,去Downloaded/目录看看——一个井井有条的作品文件夹已经诞生了:
图:批量下载后的成果目录,每个作品一个文件夹,日期标题一目了然
读懂输出目录
默认folderstyle: true,每个作品独占一个子目录,视频、音乐、封面、JSON 元数据各归其位:
Downloaded/ └── 作者名/ └── post/ └── 2026-05-12_作品标题_aweme_id/ ├── 2026-05-12_作品标题_aweme_id.mp4 ├── 2026-05-12_作品标题_aweme_id_music.mp3 ├── 2026-05-12_作品标题_aweme_id_cover.jpg └── 2026-05-12_作品标题_aweme_id_data.json另外,根目录还会生成一份download_manifest.jsonl下载清单,逐条记录每个文件的时间、标题、作者、标签和存放路径,方便日后检索。
熟练操作:从单条视频到整页批量下载
测试跑通后,你会发现真正的价值在于"整页拉取"。
一个链接,五种模式
把link换成作者主页地址,再指定mode,就可以批量下载不同类型的内容:
link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx mode: - post # 作者发布的全部作品 - like # 作者点赞过的作品 - mix # 作者创建/收藏的合集 - music # 作者使用的音乐这些模式可以叠加使用,同一个作品在不同模式下出现时只会下载一次,不会重复占用磁盘。
限量、全量,还是增量?
默认配置里number.post: 50表示只取最近 50 条,设成0就是全量抓取。配合增量开关,还能实现"只下载新增内容":
number: post: 50 # 0 = 全部 increase: post: true # 开启增量:只下新作品 database: true # 增量依赖数据库记录开启增量后,每次运行前工具会对照数据库和历史文件,自动跳过已下载的作品。作者更新了你就跑一次,等于给自己的"追更"装了自动提醒。
按时间筛选和自定义命名
只想收某个时间段的内容?加两行时间过滤即可:
start_time: "2026-01-01" end_time: "2026-06-30"命名也可以完全按你的习惯定制,支持{date} {title} {id} {author}等变量(务必保留{id}避免重名覆盖):
folderstyle: true filename_template: "{date}_{title}_{id}" folder_template: "{date}_{title}_{id}"作者目录还能用author_dir选择按昵称、稳定 ID 或"昵称_ID"来组织,重度用户建议选最后一种,避免作者改名导致目录分裂。
图:实时进度界面,每个任务的当前状态和事件日志都清清楚楚
高手专区:直播、评论、热搜与自动化
当批量下载已经熟练,下面这些功能能让工具的价值再上一个台阶。
录一场直播
把link指向直播间地址,加上时长限制即可自动录制:
link: - https://live.douyin.com/123456789 live: max_duration_seconds: 3600 # 0 = 录到主播下播录好的 FLV 会保存到Downloaded/{作者}/live/下,附一份直播间元数据快照;主播下播、网络空闲或手动中断时,已录制的数据都会被完整保留。
采集评论
需要做内容分析或舆情观察时,开启评论采集:
comments: enabled: true include_replies: false # true 会多拉二级回复(请求量翻倍) max_comments: 500 # 0 = 不限每个作品会额外生成一份*_comments.json,结构清晰,可直接交给脚本处理。
热搜榜与关键词搜索
不依赖配置文件,直接用命令行参数就能导出数据:
python run.py --hot-board 30 -p ./Downloaded python run.py --search "猫咪" --search-max 100 -p ./Downloaded结果分别落在hot_board/和search/目录下的 JSONL 文件里,适合定期抓取做趋势分析。
视频语音转写
想给下载的视频做字幕或文稿?开启转写功能,工具会调用 OpenAI 的转写接口:
transcript: enabled: true model: gpt-4o-mini-transcribe response_formats: - txt - json密钥建议通过环境变量OPENAI_API_KEY提供,生成的transcript.txt和transcript.json会与视频放在同一目录。
下载完成通知
批量任务跑完时,把结果推送到手机:
notifications: enabled: true on_success: true on_failure: true providers: - type: bark url: https://api.day.app/YOUR_DEVICE_KEY - type: telegram bot_token: "123456:ABC..." chat_id: "987654321"多个渠道会并发推送,单个渠道失败不会阻塞主流程。
REST API 服务模式
如果想把下载能力嵌入自己的系统,可以把它跑成服务:
pip install fastapi uvicorn python run.py --serve --serve-port 8000之后通过POST /api/v1/download提交链接、GET /api/v1/jobs/{id}查询进度,天然适合自动化运维和定时任务场景。
图:任务中心界面,多个下载任务的状态与进度一目了然,方便集中管理
翻车自救手册:四个高频坑
用了一段时间,你可能会遇到下面这些问题,这里给出最快的解法。
1. 提示 403 或未登录?多半是 Cookie 过期了。Cookie 有效期一般在 7~15 天,重新执行python -m tools.cookie_fetcher --config config.yml刷新即可。
2. 只能抓到 20 条作品?这是抖音翻页风控的典型表现。检查browser_fallback是否开启:
browser_fallback: enabled: true headless: false浏览器窗口弹出后手动完成验证,等它跑完再关闭窗口。
3. 日志刷屏影响观感?默认progress.quiet_logs: true会静默进度阶段的日志;需要排查问题时再用-v或--show-warnings临时开启详细输出。
4. 想看下载历史?直接查 SQLite 数据库:
sqlite3 dy_downloader.db "SELECT aweme_id, title, author_name, datetime(download_time, 'unixepoch', 'localtime') FROM aweme ORDER BY download_time DESC LIMIT 20;"想彻底重下某个作品,删掉对应本地文件并清掉数据库里那条记录即可。
结语:让收藏不再吃灰,也欢迎你参与共建
回到开头小周的故事——她现在会定期跑一次工具,把追更的创作者主页增量同步到本地硬盘,几百个视频整理得比平台收藏夹还清爽,还多了一份音乐和封面可以随时翻看。
如果非要给个"最佳实践",我的建议是:先从单条视频跑通流程,再试着整页拉一位你最喜欢的创作者,最后按自己的习惯调命名、开增量。让工具服务你的节奏,而不是被工具牵着走。
这个项目本身是 MIT 协议开源的,代码结构也很清晰:下载主流程在douyin-downloader/core/,数据库与文件管理在douyin-downloader/storage/,Cookie 获取在douyin-downloader/tools/,限速重试在douyin-downloader/control/。遇到问题或有了新点子,欢迎提 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),仅供参考
