douyin-downloader 完整指南:5 分钟上手抖音无水印批量下载
2026/9/15 12:01:42 网站建设 项目流程

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 是一个抖音无水印下载工具,支持单条视频、图文、合集、音乐、直播录制和作者主页批量下载,内置进度条、失败重试与去重机制。适合需要归档素材的运营、做数据采集的研究者,以及想备份自己账号内容的个人用户。

什么场景会用到它

  • 运营批量存素材:盯着某位创作者的主页,把最近的发布作品整批拉下来做素材库。配合start_time/end_time时间过滤,只取指定区间的作品。
  • 研究者归档数据:开启comments.enabled采集评论(可含二级回复),或用--hot-board/--search把热搜榜和关键词搜索结果导出成 JSONL 文件。
  • 个人备份直播与收藏:把live.douyin.com/{room_id}写进配置即可录制直播;登录态下还能用collect/collectmix模式备份自己账号的收藏夹作品。

三步完成首次下载

环境要求 Python 3.8+,跨平台。按下面顺序执行即可:

pip install -r requirements.txt cp config.example.yml config.yml python -m tools.cookie_fetcher --config config.yml python run.py -c config.yml

前三步分别是装依赖、复制配置模板、自动获取 Cookie(会弹出浏览器,登录抖音后回终端按 Enter,Cookie 自动写回配置)。第四条命令读取config.yml开始下载。首次跑完,文件会落在path指定的目录(默认./Downloaded/)。

也可以不进配置文件,直接在命令行追加参数:

python run.py -c config.yml -u "https://www.douyin.com/video/7604129988555574538" -t 8 -p ./Downloaded

这条命令临时追加一个视频链接、把并发调到 8、指定下载目录,适合一次性任务。

链接分发:工具如何知道该下什么

整个下载主流程是:读配置 → 解析链接 → 按类型分发 → 拉取数据并过滤 → 并发下载 → 写清单与数据库。分发的核心在 core/downloader_factory.py:

if url_type == "video": return VideoDownloader(**common_args) elif url_type == "user": return UserDownloader(**common_args) elif url_type == "collection": return MixDownloader(**common_args) elif url_type == "music": return MusicDownloader(**common_args) elif url_type == "live": return LiveDownloader(**common_args)

人话解释:工具先看链接长什么样,视频走视频下载器、主页走用户下载器、合集走合集下载器、直播走直播下载器,每种链接各走各的通道,互不干扰。

两个机制保证批量任务跑得稳。其一是限速:control/rate_limiter.py 默认把请求压在每秒 2 次,并叠加随机抖动,避免请求节奏太整齐触发风控。其二是去重:SQLite 数据库记录已下载作品的aweme_id,同时扫描本地文件名做二次核对,两处都命中才跳过,详见 storage/database.py。

另外,post模式翻页如果被平台限制(比如只翻到 20 条),工具会启动浏览器兜底:用 Playwright 打开主页滚动收集aweme_id,弹窗里可人工完成验证码,再回到正常流程补全作品详情。

能力清单:哪些链接能直接下

以下每项对应一条可复制的配置或命令:

  • 单条视频link里填https://www.douyin.com/video/{aweme_id},短链https://v.douyin.com/...会自动解析。
  • 单条图文/note/{note_id}/gallery/{note_id},图片按分辨率择优保存。
  • 单条合集/collection/{mix_id}/mix/{mix_id},整辑作品逐个下载。
  • 单条音乐/music/{music_id},优先取原声音频,取不到时回退到使用该音乐的首条作品。
  • 作者主页批量:配mode指定下载哪类内容,number指定条数上限(0 为不限):
link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx mode: - post number: post: 50

这份配置表示只取该作者最新的 50 条发布作品。

  • 多模式并行mode同时写postlikemixmusic会依次执行,同一个aweme_id跨模式不会重复下载。各模式的采集逻辑由策略类实现,见 core/user_modes/。
  • 登录态收藏夹:链接填https://www.douyin.com/user/self?showTab=favorite_collectionmodecollect(收藏作品)或collectmix(收藏合集)。注意这两个模式只能单独使用,且只对当前 Cookie 对应账号生效。
  • 直播录制(实验性):链接填https://live.douyin.com/{room_id},FLV 直接保存;HLS 源只保存 playlist 文件,需要 ffmpeg 后处理。主播下播或手动 Ctrl+C 时,已录到的字节会保留。
  • 评论采集comments.enabled: true后,每个作品旁生成{date}_{title}_{aweme_id}_comments.json
  • 热搜与搜索python run.py --hot-board 30 -p ./Downloaded导出热搜榜,python run.py --search "猫咪" --search-max 100 -p ./Downloaded导出关键词搜索结果,均为 JSONL 格式。

调优:并发、限速与存储

常用调优项都在 control/ 和配置文件中,默认值可直接溯源到 README:

配置项默认值作用
thread5并发下载数,网络好可调高
rate_limit2每秒 API 请求上限,配合随机抖动
retry_times3失败重试次数,按 1s / 2s / 5s 指数退避
proxyHTTP/HTTPS 代理,如http://127.0.0.1:7890
databasetrue启用 SQLite 历史记录与去重
increase.post-增量开关:本地已有主文件则跳过
browser_fallback.headlessfalse浏览器兜底需可见窗口,方便人工过验证
progress.quiet_logstrue进度阶段静默日志,减少刷屏

存储结构上,folderstyle: true时按「作者名 / 模式 / 发布日期_标题_aweme_id」三层建目录,媒体、封面、音乐、元数据 JSON 放在同一子目录;download_manifest.jsonl逐行追加每次下载的可追溯清单。增量下载依赖磁盘检查:删掉媒体文件,下次运行就会重新下载该条。

五个高频故障与排查思路

  • 只抓到 20 条作品就停了:这是翻页风控的常见表现。确认browser_fallback.enabled: trueheadless: false,浏览器弹窗出现后手动完成验证,不要提前关闭窗口。
  • Cookie 失效:所有请求突然报未登录时,重新执行python -m tools.cookie_fetcher --config config.yml即可,工具源码见 tools/cookie_fetcher.py。
  • 请求被限流:把thread调低、rate_limit往下压,或给proxy配上代理分散出口。失败本身会按 1s / 2s / 5s 退避自动重试,不必手动干预。
  • 直播录制中断或下播live.max_duration_seconds: 0表示录到主播下播为止;网络空闲超过idle_timeout_seconds也会收尾。FLV 已录部分始终保留;注意 webcast 接口覆盖不全,属于实验功能,直播地址也可能随时过期,重新获取房间链接即可。
  • 想重新下载已下过的作品:去重是「数据库记录 + 本地文件」双重判断。只删文件会触发重下;只删数据库不删文件不会。彻底重置则同时清理Downloaded/dy_downloader.db

使用边界与合规

本项目定位为技术研究、学习交流与个人数据管理工具。下载频率请保持在默认限速之内,避免对平台服务造成压力;获取的内容受版权保护,重新分发或商用前需确认授权。平台接口策略变更导致功能失效属于正常技术风险,工具内置的重试与浏览器兜底是缓解手段,不是保证。

douyin-downloader 用几条命令把抖音内容变成结构化的本地档案。完整功能表、转写与通知等进阶配置,见 README.zh-CN.md 与 core/ 源码。

参考资料

  • README.zh-CN.md — 中文完整文档
  • PROJECT_SUMMARY.md — 架构与落盘策略说明
  • core/downloader_factory.py — 链接类型分发实现
  • control/rate_limiter.py — 限速器实现
  • tools/cookie_fetcher.py — 自动获取 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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询