抖音无水印批量下载怎么自动化?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 可以一次解决:它是一个开源的抖音无水印批量下载工具,命令行加 YAML 配置驱动,支持视频、图集、合集、音乐、直播录制,并自带进度条、自动重试、SQLite 去重和浏览器兜底翻页。
douyin-downloader 适合谁用:手动保存 vs 批量下载器
一句话定位:douyin-downloader 是一个 Python 命令行下载器,你给它一份 YAML 配置和链接,它还你一个按作者、日期、作品组织好的本地文件库。和手动保存相比,差距主要在五个维度:
| 维度 | 手动保存 | douyin-downloader |
|---|---|---|
| 视频画质 | 仅带水印版本 | 无水印,自动挑选最高码率 |
| 批量能力 | 逐条点开保存 | 整个主页一次下载,0 即无上限 |
| 背景音乐 / 封面 | 无法单独提取 | 可选独立保存 MP3 与封面 |
| 去重 | 靠肉眼记 | 磁盘文件 + SQLite 双重检查,跨模式去重 |
| 时间成本 | 每条约 1 分钟 | 多线程并行,默认 5 线程 + 自动重试 |
适合它的用户:想长期存档某类创作者内容的人、需要整理背景音乐/封面素材的人、以及想自己搭自动化流水线的人。只想存一两条视频的话,手动保存反而更省事。
安装与环境准备:Python 依赖和命令行怎么装
前置条件只有一个:Python 3.8 及以上,macOS、Linux、Windows 均可。下面两条命令分别完成克隆与依赖安装:
git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader && pip install -r requirements.txt装好后用这条命令确认版本,终端打印出2.0.0就说明环境就绪:
python run.py --version- 依赖包括 aiohttp、rich、PyYAML、gmssl 等,
pip会一次装齐 - 项目内置静态 ffmpeg,提取背景音乐时不需要你另外装
5 分钟完成首次下载:获取 Cookie 与最小配置
先搞定 Cookie(自动获取优先)
抖音内容访问需要 Cookie,推荐自动方式——它会弹出一个真实浏览器窗口,你扫码登录后回到终端按回车,Cookie 自动写回配置:
pip install playwright && python -m playwright install chromium python -m tools.cookie_fetcher --config config.yml- 效果:登录完成后配置文件里
cookies:一段被自动填充,不用手敲 - 备选:在浏览器开发者工具(Network 请求头)里手动复制,Cookie 只会存在你本地配置文件,不会上传任何服务器
写一份最小配置
复制模板,只改链接部分即可跑起来:
cp config.example.yml config.yml把config.yml中的关键项改成下面这样(其余保持默认):
link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx path: ./Downloaded/ mode: [post] number: {post: 5} video: true music: true json: true thread: 5link填主页、单视频、图集、合集、音乐页或v.douyin.com短链接都可以。现在运行:
python run.py -c config.yml这时你会看到终端出现彩色进度条,逐条显示作品标题、进度与文件信息。全部完成后:
Downloaded/下按作者/post/日期_标题_aweme_id/落盘- 每个作品文件夹里有无水印视频、
_music.mp3、_data.json - 当前目录生成
dy_downloader.db,记录本次下载历史
典型使用场景:四组配置片段覆盖常用需求
收藏整个创作者主页的配置
目标:把某位创作者的全部作品一次拉下来存档。
mode: [post] number: {post: 0} video_quality: highestpost: 0表示不设上限,工具按时间顺序翻页抓取,遇到风控会走浏览器兜底。效果:本地得到该创作者完整作品库,且以后重复运行同一配置,增量机制会自动跳过已下载内容。
按时间窗口截取作品的配置
目标:只要某个创作者某个月份发布的内容。
start_time: "2024-06-01" end_time: "2024-06-30"效果:只有落在窗口内的作品会下载,其余直接跳过——适合做月度素材归档或活动期间的专项收集。
每周增量更新新作品的配置
目标:老粉丝追更,每周只补新作品。
increase: {post: true} database: true number: {post: 0}效果:每次运行先扫本地已有文件和数据库记录,只下载新出现的作品。它像一位自动归档的图书管理员——每周上架新书,旧书原样不动,重复内容不占空间。
录制直播间的配置
目标:把指定直播间录下来。
link: - https://live.douyin.com/123456789 live: max_duration_seconds: 3600效果:文件存入Downloaded/{作者}/live/,并附带直播间元数据 JSON;主播下播或你中途停止,已录的部分都会保留。
常见问题自查:Cookie、翻页、速度三大坑
先给一张错误对照表,再逐条说明:
| 现象 | 原因 | 解决 |
|---|---|---|
| 403 / 提示未登录 | Cookie 过期 | 重跑 cookie_fetcher 命令 |
| 只下载约 20 条就停 | 翻页触发风控 | 打开 browser_fallback |
| 速度慢、频繁中断 | 并发/网络瓶颈 | 调 thread、配 proxy |
| 想重下却总被跳过 | 磁盘+数据库双重判定 | 删文件并清数据库记录 |
Cookie 过期了怎么办?现象:批量任务报 403 或"未登录"。原因:Cookie 有效期通常只有 7-15 天。解决:重跑python -m tools.cookie_fetcher --config config.yml重新扫码即可。
下载到 20 条左右就停了?现象:翻页中途被掐断。原因:抖音对接口翻页有限流风控。解决:确认browser_fallback.enabled: true且headless: false,弹窗出现后手动完成验证,不要提前关窗。注意:兜底翻页目前只对post模式完整生效,like/mix/music仍依赖接口翻页。
下载速度慢?现象:进度条走得慢或频繁重试。原因:并发数保守或网络不稳。解决:把thread从 5 调到 8,必要时配置proxy: "http://127.0.0.1:7890"。
转写文件没生成?现象:开了转写却没有transcript.txt。原因:按顺序排查transcript.enabled是否为true、该作品是否为视频(图集不转写)、OPENAI_API_KEY是否有效。
进阶功能选装:转写、评论、REST API
视频语音转写
transcript: enabled: true model: gpt-4o-mini-transcribe api_key_env: OPENAI_API_KEY启用后每条视频下载完成会额外生成xxx.transcript.txt和xxx.transcript.json,API Key 建议用环境变量提供。适合:做内容摘要、素材二创的文字提取。
评论采集
comments: enabled: true include_replies: true max_comments: 500每个作品旁多生成一份*_comments.json,含评论内容、用户信息与点赞数。适合:选题调研和舆情分析。
REST API 服务模式
pip install fastapi uvicorn python run.py --serve --serve-port 8000服务起来后,POST /api/v1/download提交链接、GET /api/v1/jobs/{job_id}查状态。适合:把下载能力挂进自己的脚本或定时任务。此外项目还有一个图形界面客户端 Douzy(内测中),粘贴链接即可操作,不想敲命令可以关注它的发布。
文件去哪儿了:本地目录组织与数据查询
所有产物都在path指定的目录(默认./Downloaded/)下,层级固定:
Downloaded/ └── 作者昵称/ ├── post/ │ └── 2024-02-07_标题_aweme_id/ │ ├── xxx.mp4 # 无水印视频 │ ├── xxx_cover.jpg # 封面 │ ├── xxx_music.mp3 # 背景音乐 │ ├── xxx_data.json # 完整元数据 │ └── xxx_avatar.jpg # 作者头像 ├── like/ └── live/元数据 JSON 里存了标题、发布时间、点赞评论数等字段,配合dy_downloader.db让每个文件可检索、可追溯。想看历史,查库即可:
sqlite3 dy_downloader.db "SELECT aweme_id, author_name FROM aweme ORDER BY download_time DESC LIMIT 20;"- 去重靠"磁盘文件 + 数据库记录"双重判定:文件还在就跳过,文件删了会自动补下
- 想强制重下某条作品:删掉对应文件夹,并执行
sqlite3 dy_downloader.db "DELETE FROM aweme WHERE aweme_id = '<aweme_id>';"
更细的配置字段说明见 README.zh-CN.md,代码模块的架构总览在 PROJECT_SUMMARY.md。
📌 这个工具只适合个人学习、研究和本地备份场景,内容版权归原作者,请勿用于商业用途或二次传播。它处理的是接口和翻页策略,平台规则一变,某些功能可能短暂失效,属于此类工具的正常技术风险——遇到时更新依赖、重取 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),仅供参考