把抖音视频变成私有素材库: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 是一个面向实用场景的抖音批量下载工具:贴一条作品链接或主页链接,就能去水印下载视频,也支持图文、合集、音乐(原声),并且自带数据库去重、增量更新和按作者归档。
十分钟跑起来
整个过程四步:装依赖、复制配置、拿 Cookie、跑一次。
git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader pip install -r requirements.txt需要 Python 3.8 及以上。再装一下 playwright 浏览器:pip install playwright && python -m playwright install chromium。2026 年 9 月起抖音风控收紧,工具在读取作品列表、翻页时会按需打开真实浏览器兜底,提前装好能避免跑到一半失败。
cp config.example.yml config.yml python -m tools.cookie_fetcher --config config.yml浏览器弹出后登录你的抖音账号,回终端按回车,Cookie 会自动写进config.yml,认证信息只存在本地。跑之前把配置里的link改成想下载的抖音链接;示例配置的number.post: 1表示先只下 1 条,确认成功再改成 0(不限)。其余选项都有可直接用的默认值,完整说明见配置文件示例。
python run.py -c config.yml接下来你会看到进度条跑起来,作品落到Downloaded/下按作者建好子目录,文件名形如2024-02-07_作品标题_aweme_id.mp4。同一套后端还做了 Douzy 桌面客户端(目前内测中),粘贴链接即可开始,带可视化任务队列:
核心能力逐一拆解
一条链接下载整个主页
在link里放一个/user/...主页链接,工具会翻页拉取全部作品并逐条下载。mode: [post]表示下载该用户发布的作品,number.post: 0表示不限量,还能用start_time/end_time圈定时间段。主页下载的主流程在 core/user_downloader.py。
适合想把某个博主作品完整备份下来的场景。
下载过的内容自动跳过
批量任务往往要反复跑,重复下同一个作品浪费流量和磁盘。工具用 SQLite 数据库记录加本地文件双重校验去重:作品 ID 在库里有记录、或文件已存在,就直接跳过。把increase.post: true打开后,每次运行只会拉新增作品。
适合跑定时任务、素材库很大的用户。
文件按作者自动归档,不再手动整理
folderstyle: true让每个作品独立成文件夹,文件名由filename_template决定(默认{date}_{title}_{id},日期取的是作品发布时间而不是下载时间)。作者目录由author_dir控制:默认用昵称,改成nickname_uid会加唯一后缀,避免两个同名博主的文件夹合并到一起。
适合素材文件很多、之后要按作者快速定位的人。
挑最高画质,无水印落盘
下载时自动选无水印源。video_quality按码率档位挑选:默认highest选最高转码档,original会额外探测上传原片(找不到才回退),也可以直接指定720p、1080p等。打开cover: true、music: true、json: true后,封面、原声音频和元数据 JSON 会一并保存。
适合需要原画素材做二次剪辑的场景。
翻页被限时自动开浏览器接管
API 翻页被风控挡住、只能取到前 20 条时,工具会自动打开一个真实浏览器读取作品列表,默认有头模式,弹出窗口里可以手动完成验证码。滚动上限和等待时长在browser_fallback.max_scrolls与wait_timeout_seconds里调。
适合大批量下载、翻页不顺畅的用户。
按需求选方案
如果你想持续跟进某个博主的更新
link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx mode: [post] number: {post: 0} increase: {post: true} database: true把它保存成一份固定配置,隔一段时间跑一次(比如每周),只下载新作品。用 Douzy 桌面版的话,关注列表里还能看到每个博主的新作品数并打备注:
如果你只要某段时间的作品
link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx mode: [post] start_time: "2026-06-01" end_time: "2026-08-31" number: {post: 200}只下载时间范围内的作品。建议先给number设个小值验证下载效果,再放掉数量限制拉全量,这样最稳。
如果你想把作品连同元数据一起存档
json: true cover: true music: true comments: enabled: true max_comments: 200每个作品目录里会多一份完整的点赞/评论/分享数据 JSON,外加*_comments.json评论文件;include_replies: true会多拉二级回复(请求量会增加)。之后要做内容分析或素材统计时,数据都是现成的。
踩坑与排错
- 只抓到 20 条作品— 翻页被风控挡住了。确认
browser_fallback.enabled: true且headless: false,浏览器弹出后手动过验证码,别急着关窗口。 - 请求全部失败— Cookie 失效了。重跑
python -m tools.cookie_fetcher --config config.yml重新登录写入即可。 - 想重新下载某个作品— 去重是"数据库记录 + 本地文件"双重判断,删文件还不够。先删掉对应作品目录,再执行
sqlite3 dy_downloader.db "DELETE FROM aweme WHERE aweme_id = '<aweme_id>';",然后重跑。 - 单个作品链接下不动— 2026-09 起抖音风控已覆盖单作品接口,CLI 直连 API 会返回 403。开启浏览器兜底试试,或改用内测中的 Douzy 桌面版,它通过内置登录窗口代发请求,不受该门禁影响。
用久之后的进阶技巧
- 挂到半夜跑完自动通知:
increase配定时任务,睡觉时自动捡新作品;再配上notifications(Bark / Telegram / Webhook 都支持),完成或失败才推一条,终端不用一直开着。
- 早点把
author_dir换成nickname_uid:一开始觉得无所谓,素材库变大后,昵称重名导致目录合并、改名导致目录分裂的问题才会暴露。切换只影响后续下载,已存在的目录不会迁移。 - 用一条 SQL 查历史:
sqlite3 dy_downloader.db "SELECT aweme_id, title, author_name FROM aweme ORDER BY download_time DESC LIMIT 20;"快速确认上次抓了哪些;download_history表还记录每次任务的配置快照。
douyin-downloader 的定位是"可以长期挂着的下载工具":去重、增量、文件组织都由它管,你只管决定下载节奏。把config.yml里的link换成你最近常看的那个博主,跑一次看看效果。记得只用于个人学习、研究和备份,未经允许别把别人的作品搬去二次发布。
【免费下载链接】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),仅供参考