抖音视频怎么存到本地?一个开源工具的单条与批量下载全指南
抖音视频怎么存到本地?一个开源工具的单条与批量下载全指南
【免费下载链接】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 就是干这个的:一个抖音视频下载工具,无水印、保原始画质,单条和按博主主页批量都能做,还带本地 SQLite 去重。它提供两条路:不想碰命令行的,用桌面版 Douzy;想写脚本自动化的,用 Python 命令行版。这篇按"先看清它有什么,再一步步跑起来"的顺序讲,读完你能独立完成单条下载、主页批量下载和增量追更三件事。
先看清工具箱:无水印批量下载靠什么
为什么它拿到的文件没有水印?说白了,抖音 App 播放视频时,本来就是从服务器下载一段无水印的原始文件到本地再解码播放。录屏软件拍的是屏幕,解析网站大多再转一茬码,所以越用越糊;而这个工具的做法是给脚本一张"门卡"(登录 Cookie),让它以登录用户的身份直接进库房取货,服务器里存的是什么画质,你拿到的就是什么画质。
它的核心能力可以记成四张牌:
- 无水印下载,默认挑码率最高的版本,也可以指定原片;
- 按博主主页批量抓取作品、喜欢列表、合集、原声音乐;
- 下载历史存本地 SQLite 数据库,重复作品自动跳过;
- 翻页被平台限流时,浏览器弹窗兜底,手动过一次验证就能继续。
不想用命令行的话,桌面版 Douzy 提供可视化界面:粘贴博主主页,勾选作品、喜欢、合集,设置数量上限就能开跑:
桌面版 Douzy 的任务配置页:勾选内容类型、设置数量上限即可开始
装依赖与浏览器组件
命令行版需要 Python 3.9 以上,Windows、macOS、Linux 都可以。在终端里执行:
git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader python -m pip install -r requirements.txt python -m pip install playwright python -m playwright install chromium前两条是拿代码、装依赖;后两条装一个无头浏览器 Chromium,它专门给"限流兜底"用,平时用不上,但没装的话兜底功能会缺席。
你应看到的结果:全部依赖安装成功,最后一行提示 Chromium 下载完成。如果pip报网络超时,换国内镜像源再跑一次即可。
扫码登录与最小配置
抖音接口需要登录态才能访问,工具提供了扫码登录工具,你只需要在浏览器里登录一次:
cp config.example.yml config.yml python -m tools.cookie_fetcher --config config.yml它会弹出一个浏览器窗口,你用抖音 App 扫码登录;登录成功后回到终端按 Enter,Cookie 就写进config.yml了,之后基本不用管。
Windows 用户注意:PowerShell 里复制文件要用Copy-Item config.example.yml config.yml。
然后打开config.yml,改这几处就够(其余保持默认):
link: - https://www.douyin.com/video/xxxx # 要下载的视频链接 path: ./Downloaded/ # 保存目录 mode: [post] # post 作品 / like 喜欢 / mix 合集 number: post: 1 # 0 表示不限数量单条视频落盘
运行核心命令:
python run.py -c config.yml终端里会实时打印每个文件的下载状态和进度,跑完后按作者名、模式自动建好文件夹。
你应看到的结果:Downloaded/作者名/post/下出现一个以日期和标题命名的文件夹,里面是视频文件、封面和元数据 JSON,视频无水印、原始分辨率。
很常见的情况:如果第一次运行提示 Cookie 无效或要求重新登录,不用慌,Cookie 有有效期。重新跑一遍
python -m tools.cookie_fetcher --config config.yml扫码即可,两分钟的事。
博主主页批量下载怎么配置
单个跑通了,接下来把link换成博主主页地址,一次拉全他的作品:
link: - https://www.douyin.com/user/你的sec_uid mode: [post, mix] # 作品+合集;加 like 可抓喜欢列表 number: post: 0 # 0 表示全量 thread: 5 # 并发数,默认即可 increase: post: true # 跳过已下载的作品再运行python run.py -c config.yml,多个线程并发抓,完成后自动汇总成功与失败数量。文件会按Downloaded/作者名/post/日期_标题_aweme_id/的结构排好,一个作品一个文件夹,找起来不用翻。
只抓到前 20 条左右就停了?这是批量翻页触发平台风控的常见现象,别急着反复重试。保持配置里
browser_fallback启用且headless: false,它会自动弹出浏览器窗口,你在窗口里手动完成一次验证,剩余内容就能继续抓。
追更博主的增量下载
长期关注某位博主的话,全量重下是浪费。打开增量开关increase.post: true后,工具会查 SQLite 里的下载历史,已下过的直接跳过,只拉新作品——下次运行同一份配置就行,不需要清空数据库。
想按时间补档也可以,配置里加两行:start_time: "2026-01-01"和end_time: "2026-06-30",格式是YYYY-MM-DD,结束日期当天算在内。平时想看完整参数列表,随时执行python run.py --help。
Cookie 失效与风控限流怎么办
排障基本就三种情况,都对应一个明确动作:
提示需要重新登录
Cookie 过期了,很常见的情况。重跑python -m tools.cookie_fetcher --config config.yml扫码,保存后继续。
批量抓取中途停下
多半是限流。确认browser_fallback.enabled: true且headless: false,在弹出的浏览器里手动过一次验证。若终端日志看不太明白,加个-v参数跑:python run.py -c config.yml -v,输出会更详细。
同一个作品想重下一遍
把increase.post改成false就行,它会重下并覆盖当前筛选范围内的文件,不需要动数据库。
边界与行动清单
最后说清这个工具的边界,免得你期待落空:
- 命令行版目前只支持抖音,且抖音接口风控正在拦截单条视频、图集、音乐、喜欢列表的下载,主页作品可走浏览器兜底但不保证成功;日常高频使用建议优先 Douzy 桌面版;
- 直播录制属于实验功能,HLS 源只保存播放列表,还不是可直接播放的视频。
行动清单:
- 按第二节命令装好依赖;
- 用 cookie_fetcher 扫码拿登录态;
- 单条试跑,确认
Downloaded/里有文件; - 再上批量配置和增量开关,交给它自动跑。
一句话总结:douyin-downloader 就是一个开源的抖音视频下载工具,单条、主页批量、增量追更都能做,无水印且自动分类去重。
- 完整配置样例:config.example.yml
- 中文文档:README.zh-CN.md
- 设计文档:docs/superpowers/specs/
只下载自己有权保存的内容,尊重创作者的劳动,别把作品拿去二次搬运。
【免费下载链接】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),仅供参考