抖音批量下载与去水印: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.9+ |
| 运行平台 | Windows / macOS / Linux |
| 核心能力 | 去水印单作品下载、作者主页批量下载、合集与音乐原声、直播录制、SQLite 去重增量 |
| 许可证 | MIT |
| 仓库地址 | 见「快速上手」的 git clone 命令 |
去重基于 SQLite 数据库加本地文件名双重校验,重复运行只会补录新作品,已保存的文件不会再次下载。
快速上手
环境准备分三步:克隆、装依赖、配 Cookie。
git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloaderpip install -r requirements.txt关键在 Cookie,它相当于你访问抖音的凭证,缺失时拿不到视频源地址。先用cp config.example.yml config.yml把示例配置复制为 config.example.yml 同款结构的 config.yml,再运行自动抓取脚本:
python -m tools.cookie_fetcher --config config.yml脚本会拉起浏览器,登录一次抖音后回到终端按 Enter,Cookie 自动写入配置。然后编辑 config.yml:把link指向要下载的主页或作品,用mode选择 post/like/mix/music,path决定输出目录,database控制是否启用 SQLite 去重。
不想敲命令的话,项目配套了桌面版 Douzy(内测中),同一套后端,粘贴链接即可识别作品并开始下载。
典型使用场景
三个场景共用同一入口,改配置即可切换。
批量保存作者主页
你想把某位创作者的作品一次收齐。
python run.py -c config.yml -u <你的主页链接>config.yml 里设mode: [post]、number.post: 0(0 为不限),程序会翻页遍历主页、默认 5 并发下载,每个作品落到Downloaded/{作者}/post/{日期}_{标题}_{id}/,产物含视频、封面、音乐、头像与元数据 JSON,百条作品通常耗时 10~30 分钟。
批量下载合集与收藏夹
你想同步自己收藏的合集,或某个创作者的整组合集。
python run.py -c config.yml # link 填 /user/self?showTab=favorite_collection,mode 改 collect运行后收藏夹内容逐个落盘到Downloaded/{作者}/collect/与collectmix/目录,collect 模式只支持当前 Cookie 对应的登录账号,且需与 post/like/mix 单独使用。
挂机录制直播流
你不想错过一场直播,想让机器替你挂机。
python run.py -c config.yml # link 填直播间地址,live.max_duration_seconds 填 0 表示录到停播工具先解析直播间标题、主播与在线人数,再开始录制 FLV/HLS 源,文件保存在Downloaded/{作者}/live/下并附带房间元数据快照,主播下播后已录制的字节会自动落盘。
进阶配置与避坑
长期用下来,下面几个开关最容易踩坑。
- 增量下载:开启
increase.post: true并保证database: true,再次运行只保存新作品;增量仅支持 post/like/mix/music 四种模式。 - 输出路径:配置里的
path字段或用-p命令行参数覆盖,默认./Downloaded/。 - 失败重试:
retry_times默认 3 次,指数退避间隔 1s、2s、5s;翻页被风控时会触发browser_fallback浏览器兜底,弹出窗口后手动过验证再关闭。 - Cookie 过期:重跑
python -m tools.cookie_fetcher --config config.yml重新登录保存,无需改代码。 - 并发与限速:
thread默认 5,请求限速 2 次/秒,机器富余时可用-t 8临时提高并发。 - 时间与命名:
start_time/end_time按日期过滤(格式 YYYY-MM-DD),filename_template自定义文件名,模板中必须保留{id}防止同名覆盖。
高频问题
先对照这五种情况排查。
问:为什么只能抓到 20 条作品?
答:这是翻页风控的常见表现。把browser_fallback.enabled设为 true、headless设为 false,浏览器弹出验证后手动完成再关窗,翻页会继续。
问:Cookie 失效了怎么刷新?
答:重新执行 tools/cookie_fetcher.py 对应的python -m tools.cookie_fetcher --config config.yml,登录一次即可写回配置。
问:之前下过的作品为什么不重复下载?
答:程序用 SQLite 数据库加本地文件名双重去重。确实想重下时,需要同时删除dy_downloader.db里的记录和Downloaded/下对应目录,只删一边不会触发重下。
问:文件到底存在哪里?
答:默认在Downloaded/{作者}/{模式}/{日期}_{标题}_{id}/,每个作品含视频、封面、音乐、头像与 JSON 元数据,根目录另有一份download_manifest.jsonl归档清单。
问:如何查看下载历史?
答:用sqlite3 dy_downloader.db查询 aweme 表,字段包括 aweme_id、title、author_name 与下载时间,可按时间倒序筛选。
douyin-downloader 的定位是一个务实的抖音去水印批量下载工具,覆盖单作品、主页批量、合集、音乐原声与直播录制。配置细节可查 README.zh-CN.md,下载行为默认由 config.example.yml 中的字段控制。如果你有想归档的作品,按前文三步配好后就能跑起来。
【免费下载链接】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),仅供参考