抖音批量下载工具 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 命令行驱动的抖音批量下载工具,可解决单个视频、图集、合集的去水印下载与作者主页全量备份问题。本文从装环境讲到跑通第一个下载任务,并顺带演示直播录制与去重机制。
使用前提
- 已安装 Python 3.8 及以上版本,命令行运行,macOS / Linux / Windows 均可;
- 一个抖音登录 Cookie:项目自带自动获取工具,浏览器里扫码登录一次即可,不用手动复制字段;
- 时间预算:跑通第一个下载约 15 分钟;主页备份任务按 100~300 条作品预计 1~2 小时,取决于网速与并发数。
从克隆到第一次下载的 4 步
第一步,拉取代码:
git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader第二步,安装依赖:
pip install -r requirements.txt如果希望开启浏览器兜底(翻页受限时自动开浏览器过验证),需另外安装 playwright 与 chromium,具体两条命令见仓库 README.zh-CN.md 的快速开始部分。
第三步,复制示例配置并自动获取 Cookie:
cp config.example.yml config.yml && python -m tools.cookie_fetcher --config config.yml按提示在浏览器扫码登录,回到终端按回车,Cookie 会自动写入配置文件。
第四步,写一份最小配置并运行:
link: - https://www.douyin.com/video/7604129988555574538 path: ./Downloaded/ mode: - post thread: 5 database: truepython run.py -c config.yml跑完后在 Downloaded/ 里会看到一个按「日期_标题_作品ID」命名的子目录,视频 mp4、封面、原声、JSON 元数据都在里面。
核心能力实测
作者主页全量备份:274 条作品任务跑起来是什么样
我测了什么:把一个作者主页链接写进配置,mode 设为 post,数量设为 0(0 表示不限)。结果如何:程序先把作品全量拉完——截图里这次是 274 条——再排队下载,视频、封面、音乐、元数据一起入库。一条下午跑完 274 条全量作品(5 并发,具体看网速)。
断点续传怎么验证:重跑一次会发生什么
我测了什么:任务结束后,我直接重跑同一份配置。结果如何:已下载的作品被直接跳过,日志逐条显示「跳过已存在」,不产生重复流量。它靠 SQLite 数据库记录加本地文件名双重去重,同一作品即使同时出现在 post 和 like 两种模式里也只下载一次。并发线程默认 5 个,进度条实时展示每个任务状态,跑几百条作品不会乱。
直播录制:怎么选清晰度并拿到 FLV 流
我测了什么:传入 live.douyin.com 的直播间链接。结果如何:程序自动列出可选清晰度(1080P / 720P / 480P)并给出 FLV 流地址,输入数字即可选择。主播下播或网络中断时,已录制的字节会保留,不会全部作废。要诚实说明的是:直播仍属实验性功能,HLS 源只保存 playlist 文件,需要 ffmpeg 后处理。
容易卡住的 3 个问题
Q1:只能抓到 20 条作品,后面没有了?结论:这是抖音翻页风控的常见现象,开浏览器兜底即可。把配置里 browser_fallback.enabled 设为 true、headless 设为 false,翻页受限时会自动弹出浏览器,手动完成一次验证码后程序继续自己跑。
Q2:提示 Cookie 失效、需要登录?结论:重新登录最快。重跑 python -m tools.cookie_fetcher --config config.yml,扫码过一次即可。我保持每周刷新一次,基本不会在任务中途报错。
Q3:想重新下载某个作品,但它一直被跳过?结论:去重看的是「数据库记录 + 本地文件」两处。删掉 Downloaded/ 下对应的作品目录(目录名含作品 ID),再用 sqlite3 清掉 dy_downloader.db 里的这条记录,重跑就会重新下载。
能力边界与进阶方向
先说它做不到的:转写功能只对视频作品生效,图文不会生成转写;收藏夹模式(collect / collectmix)只能抓当前登录 Cookie 对应账号的收藏,且不能和其他模式混用;直播 webcast 接口未覆盖所有场景,官方标注为 experimental。想分析别人的收藏列表,目前只能用主页的 post 模式绕一下。
进阶方向有三个,点到为止:
- 增量备份:开启 increase.post 并保留 database,后续运行只拉新作品,适合长期追踪某个博主;配合 start_time / end_time 可只取某个时间段。
- REST API 服务:装好 fastapi 与 uvicorn 后,运行命令加 --serve --serve-port 8000,向 /api/v1/download 提交任务、用 /api/v1/jobs 查状态,方便接入自己的自动化流程。
- 桌面版 Douzy:基于同一套后端,粘贴链接即可开工,任务中心逐任务显示状态,目前处于内测期,截图如下。
另外两个小能力:配置里开启 comments.enabled 后,每个作品旁会多一个独立的评论 JSON 文件;用 --hot-board 30 参数还能把抖音热搜榜拉成 JSONL 落盘,做选题分析很方便,详情见 README.zh-CN.md。
从一条去水印视频到整个主页的全量备份,douyin-downloader 足够充当素材库和账号归档的工具箱。接口策略变化导致功能失效属于正常技术风险,更新 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),仅供参考