☰
douyin-downloader 实用手册:批量去水印、主页备份与直播录制的快速上手指南
2026/10/7 16:05:49 网站建设 项目流程

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 是一个基于 Python 命令行运行的抖音下载工具,输入链接加一份 YAML 配置即可批量下载无水印视频、图文、合集与原声音乐,内置重试、SQLite 去重和浏览器兜底,适合需要长期归档个人抖音内容的普通用户和脚本爱好者。

能力速览:先看这张表再决定要不要读下去

能力入口方式适合场景注意事项
单条视频/图文去水印下载配置文件里的link或命令行-u保存某一条作品必须配好 Cookie
主页作品、喜欢、合集、原声批量下载mode勾选模式 +number限数备份整个博主各模式可混跑,收藏类collect只能单独用
直播录制link填live.douyin.com房间链接录整场直播官方标注 experimental
热搜榜 / 关键词搜索导出 JSONL--hot-board/--search参数只要数据不要文件结果落盘为 JSONL,可直接用 jq/pandas 筛选
失败重试 + SQLite 去重retry_times/database配置长任务断点续跑默认已开启,保持默认即可
下载完成通知notifications.providers挂机跑任务支持 bark / telegram / webhook

想跳过安装细节直接看场景:场景一:单条去水印、场景二:主页批量。

场景一:下载一条无水印视频

📌 解决的问题:把一条别人分享的抖音作品存成无水印 mp4,落到本地固定目录。

前置准备:登录态 Cookie 是最关键的一项,抖音大量接口只认登录用户。把 config.example.yml 复制为config.yml后运行自带的 Cookie 抓取脚本,它会弹出浏览器,你扫码登录、回终端按 Enter,Cookie 就自动写回配置文件:

cp config.example.yml config.yml pip install playwright && python -m playwright install chromium python -m tools.cookie_fetcher --config config.yml

然后把config.yml里的link换成目标作品链接,保留path与cookies区块不动,直接运行:

python run.py -c config.yml

成功长什么样:终端出现完成统计,path指定的目录(默认./Downloaded/)下出现以作者名命名的文件夹,里面是无水印 mp4;若配置里开了music、cover、json,原声、封面和元数据也会一并进作品文件夹。

高频翻车点:

  • 请求大面积失败、刚装好时单条都下不动 → 多半是 Cookie 没生效或已过期,重跑一次python -m tools.cookie_fetcher --config config.yml。
  • 进度和日志太安静,不知道卡在哪 → 加-v参数查看详细日志。

场景二:把博主的作品和合集一次备份

解决的问题:归档一个博主的存量内容,而不是每次手动贴单条链接。

前置准备:link填博主主页链接(douyin.com/user/...形式),mode勾选要抓的类型,number给每种模式设上限,0表示不限。测试阶段先把post设成 1~5,跑通后再放开:

link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx mode: - post - mix number: post: 5 mix: 20
python run.py -c config.yml

成功长什么样:内容按Downloaded/{作者}/post/与Downloaded/{作者}/mix/分目录归档;再跑同一份配置时,increase增量为true的已下载作品会被自动跳过,不会在硬盘上堆重复文件。注意collect/collectmix(收藏类)只能单独使用,不能与post/mix等混写在同一份mode里。

高频翻车点:

  • 主页只抓到 20 条左右就停了 → 翻页触发风控,确认browser_fallback.enabled: true且headless: false,在弹出的浏览器里手动过验证;仍不行就用start_time/end_time分段抓。
  • 想让某博主重下一批 → 把对应的increase.post改为false即可重下并覆盖当前筛选范围,无需清空数据库。
  • 目录按作者昵称建,遇到重名博主会合并 → 重度用户把author_dir改为nickname_uid,切换只影响后续下载。

场景三:只导出数据不下载文件

解决的问题:拿到热搜榜或关键词搜索结果做二次筛选,不产生任何媒体文件。

前置准备:Cookie 有效即可,下载目录参数-p指定 JSONL 落盘位置。两条命令各跑一次:

python run.py --hot-board 30 -p ./Downloaded python run.py --search "猫咪" --search-max 100 -p ./Downloaded

成功长什么样:Downloaded/hot_board/{时间戳}.jsonl里是热搜条目,Downloaded/search/猫咪_{时间戳}.jsonl里是搜索命中的作品元数据,一行一条 JSON,jq、pandas 可直接读;挑出感兴趣的链接再丢回下载器即可。

高频翻车点:

  • 搜索结果条数不够 →--search-max默认 50,按需调大。
  • 导出失败而单条下载正常 → 检查 Cookie 是否过期,抓取脚本重跑一遍。

参数速查:正文出现过的旋钮都在这里

字段默认值什么时候调调成什么
number.post等0(不限)测试阶段限量1~5,跑通后放回0
increase.post等true想重下某批作品false(重下并覆盖筛选范围内文件)
video_qualityhighest要原画 / 省流量original(额外探测原片)或lowest、指定720p等
thread5网速稳定想提速8,别一上来拉满
retry_times3网络抖动多3~5,配合内置指数退避
database/database_pathtrue/dy_downloader.db几乎不用动保持true,它是去重主开关
start_time/end_time空风控截断、分段抓取YYYY-MM-DD,含结束日当天
browser_fallback.headlessfalse翻页被风控截断保持false,留出手动过验证的机会
comments.enabledfalse想要作品评论true,每作品旁多一个*_comments.json
notifications.enabledfalse挂机跑长任务true,providers填 bark / telegram / webhook
live.max_duration_seconds0(录到下播)只想录固定时长3600之类
-t(命令行)同thread临时改并发python run.py -c config.yml -t 8

完整字段注释见 config.example.yml,全部命令行参数用python run.py --help查看。

故障排查:一张表对号入座

现象最可能原因一行解法预防方法
大面积请求失败Cookie 过期python -m tools.cookie_fetcher --config config.yml刷新把 Cookie 刷新当周期性维护
主页只抓到少量作品翻页触发风控保持browser_fallback.enabled: true且headless: false手动过验证用start_time/end_time分段
硬盘堆出重复文件去重开关被关database: true并保持increase为true增量任务常开增量
某条被跳过想重下增量机制判重对应increase.post改为false再运行用number.post圈定重下范围
速度慢并发偏保守-t 8临时提并发,retry_times给3逐步上调而非直接拉满
输出太吵或太安静日志级别问题排查时加-v或--show-warnings常态设progress.quiet_logs: true
直播录出来是 FLV 而非 mp4直播接口为 experimental重要场次人工再备份一份重要活动设max_duration_seconds留余量

落地前检查清单

  1. 先装依赖pip install -r requirements.txt,再用单条作品链接验证 Cookie 与网络,确认无水印 mp4 落盘后再上主页批量。
  2. 测试阶段number.post设 1~5,跑通后才放开为 0;不同任务分开用config_test.yml、config_daily.yml,别共用一份。
  3. 长任务开启notifications推送,跑完手机先收到结果再翻终端。
  4. Cookie 失效是常态:每次大面积失败先重跑 tools/cookie_fetcher.py,再怀疑别的环节。
  5. 更细的行为说明以仓库 README.zh-CN.md 为准,接口风控变化时以最新文档为准。

本项目仅供技术学习与个人数据管理使用,请在合法合规的前提下使用,尊重内容版权与创作者权益。

【免费下载链接】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),仅供参考

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

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

立即咨询