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就是冲着这个痛点来的:一条命令,把视频、图文、合集、音乐(原声)去水印存进本地文件夹,作者主页支持整页批量下载。
更省心的是,它把工程化细节都内置好了:并发下载、指数退避重试、SQLite 去重、文件完整性校验、浏览器兜底——普通用户也能跑得踏实。
下载前可勾选作品类型(作品/喜欢/音乐、合集),并限定各模式数量上限与时间范围
30 秒看懂:这个抖音下载工具能干什么
一句话定位:把"看得到却存不下来"的抖音内容,变成躺在你硬盘里的本地文件。
它会自动挑选无水印、最高码率的视频源,顺带保存封面、音乐、作者头像和*_data.json元数据,方便归档或二次整理。
- 适合谁:想备份内容的普通用户、想沉淀素材库的创作者、需要批量取样的研究者。
- 覆盖范围:单个视频/图文、短链、合集、音乐、作者主页的发布/喜欢/合集/音乐,以及收藏夹。
- 附加能力:评论采集(含二级回复)、热搜榜导出、关键词搜索、直播录制、REST API 服务模式。
- 技术亮点:全异步 I/O、策略模式管理下载模式(见 core/user_modes/),并发队列 + 限速 + 重试由 control/ 模块统一调度。
最快上手指南:从克隆到第一条下载
核心流程就三件事:装环境、拿 Cookie、跑下载。跑通之后,后面的玩法全是在这个流程上叠加。
1. 拉取代码,装好依赖
需要 Python 3.9+,Windows / macOS / Linux 都支持。
git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader pip install -r requirements.txt浏览器兜底依赖 Playwright,建议一并装上:
pip install playwright && python -m playwright install chromium2. 让工具拿到你的登录凭证
抖音接口靠 Cookie 鉴权,这一步绕不开。好在工具自带自动抓取脚本,你不用在明文配置里手贴一大串字符:
cp config.example.yml config.yml python -m tools.cookie_fetcher --config config.yml脚本会打开浏览器,登录成功后回到终端按 Enter,Cookie 自动写入config.yml。
3. 下达第一条下载指令
把博主主页链接写进配置,最小可用片段如下(完整字段见 config.example.yml):
link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx path: ./Downloaded/ mode: [post] number: post: 10 # 0 表示不限数量python run.py -c config.yml命令行参数临时覆盖也行,-u追加链接、-t改并发、-p改目录:
python run.py -c config.yml -u "https://www.douyin.com/user/xxx" -t 8 -p ./Downloaded到这里,一个 douyin-downloader 批量下载任务就跑起来了。剩下的内容,只是换模式、加开关。
一个现实提醒:受平台风控影响,目前 CLI 对单个视频/合集/音乐/喜欢接口的可用性不保证,作者主页作品可尝试浏览器兜底;日常高频使用建议搭配同项目的 Douzy 桌面版。
能力拆解:从单个作品到整套内容库
按模式批量归档:一次搬空整页
想把某位博主的内容完整搬回来?把链接换成主页,mode里叠加你想要的模式即可:
mode: - post # 发布的作品 - like # 喜欢的作品 - mix # 创建的合集 - music # 使用过的原声跨模式自动去重,同一个作品绝不会重复占磁盘。
合集与音乐:素材一步到位
- 合集:链接指向
/collection/{mix_id}或/mix/{mix_id}。 - 单首音乐:链接指向
/music/{music_id},优先抓原声文件,缺失时回退到该音乐下的首条作品。 - 短链
https://v.douyin.com/xxxx无需展开,粘贴即用。
下载完的文件按 作者 → 模式 → 日期 自动分文件夹,每个作品一个目录:
Downloaded/作者名/post/2024-02-07_作品标题_aweme_id/ ├── video.mp4 ├── video_cover.jpg ├── video_music.mp3 └── video_data.json增量跟进:长期盯一位博主
配置increase.post: true配合database: true,之后每次只拉新作品,已下载的自动跳过;文件缺失或为空时还会补下。适合长期跟进内容更新。
采集模式:把"下载器"用成"采集器"
不下载媒体,只取数据,也内置了:
python run.py --hot-board 30 -p ./Downloaded python run.py --search "猫咪" --search-max 100 -p ./Downloaded搜索结果和热搜榜都落成 JSONL 文件,方便直接做后续分析。
进阶调优:让大批量下载更稳更快
当你开始成百上千条地跑,下面这些配置会明显改善体验:
thread:并发下载数,默认 5;命令行-t 8可临时调大。- 限速:默认约 2 请求/秒,主动规避风控,不建议无脑拉满。
retry_times:指数退避(1s、2s、5s)自动重试,网络抖动不用管。start_time/end_time:按发布时间过滤作品,YYYY-MM-DD格式,含结束日当天。browser_fallback.enabled: true:翻页被限时拉起真实浏览器,弹窗出现后手动过一下验证码即可继续。video_quality:默认highest自动挑最高码率无水印源;original尝试原片,失败自动回退。proxy:HTTP/HTTPS 代理,例如http://127.0.0.1:7890。- 通知推送:配置 Bark / Telegram / Webhook,任务一结束手机就收到提醒。
冷知识:目录默认按作者昵称命名,重名作者会合并目录。想"直观又唯一",把
author_dir设为nickname_uid即可。另外,download_manifest.jsonl会记录每次下载的日期、作品 ID、标签与文件路径,是二次整理的好帮手。
常用参数速查表
| 参数 / 配置 | 作用 | 示例 |
|---|---|---|
-u / --url | 追加下载链接,可重复 | -u "https://..." |
-t / --thread | 并发下载数 | -t 8 |
-p / --path | 指定保存目录 | -p ./Downloaded |
-v / --verbose | 输出详细日志 | python run.py -c config.yml -v |
mode | 下载模式 | post/like/mix/music |
number.post | 单模式数量上限 | 0表示不限 |
increase.post | 增量下载开关 | true |
database | SQLite 历史记录与去重 | true |
start_time / end_time | 按时间过滤作品 | 2024-01-01 |
--hot-board | 导出热搜榜条数 | --hot-board 30 |
--serve | 以 REST API 服务模式运行 | --serve --serve-port 8000 |
新手高频问题:卡住了先看这里
Cookie 失效了怎么办?接口突然拿不到数据,大概率是凭证过期。重跑一次python -m tools.cookie_fetcher --config config.yml,登录一下就好,不用清库。
主页只抓到 20 条就停了?这是翻页风控。确认browser_fallback.enabled: true且headless: false,浏览器弹出后手动完成验证,别急着关窗口;当前风控下仍可能受限,属已知限制。
怎么避免重复下载?开启database: true,工具同时比对数据库记录和本地文件名,已下载内容自动跳过;配合increase.post: true则只拉新作品。
下载的视频清晰度有保障吗?工具基于视频源信息自动挑选最高码率,且优先无水印版本,视频与实况图走同一套选择逻辑。
下载中途失败会留残文件吗?不用干预。指数退避重试会自动恢复,文件不完整(按 Content-Length 比对)会被清理并重新下载。
日志在哪里看?加个-v参数重新运行,详细日志会打到控制台;出问题时这是第一手现场。
现在就动手:把第一段内容存下来
回到开头那个场景:与其在"想保存却存不下来"里耗时间,不如花十分钟把 douyin-downloader 跑起来。批量下载、去重归档、增量更新、数据采集,全部免费开源、开箱即用。
git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader pip install -r requirements.txt使用中遇到问题或想提新功能,欢迎到仓库提交 Issue;如果你熟悉 Python,也欢迎直接参与贡献。现在就把那位博主的作品完整搬回本地吧 🎉
【免费下载链接】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),仅供参考