抖音下载完整指南: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 是一个命令行抖音下载工具:一条链接加一份 YAML 配置,无水印视频、图文、合集与音乐就批量落盘归档。它把去水印挑源、SQLite 去重、失败重试这些杂活做成了默认行为,适合想长期存档抖音内容、会一点命令行的你;只想要点按钮式体验、完全不碰终端的用户不适合。
5 分钟跑通:clone 到第一条文件落地
git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader pip install -r requirements.txt跑完没有红色报错,环境就就绪了(Python 3.9+,Windows / macOS / Linux 通吃)。
前置提醒:Cookie 是命门。抖音大量内容只对登录用户开放,Cookie 没配好,后面请求基本都会失败。好在项目内置了抓取脚本,不用手动复制字符串:
cp config.example.yml config.yml pip install playwright && python -m playwright install chromium python -m tools.cookie_fetcher --config config.yml浏览器弹出后扫码登录,回终端按 Enter,Cookie 自动写进config.yml。跑完应看到抓取完成的提示,cookies区块不再是YOUR_*占位符。✅
link: - https://www.douyin.com/video/xxxxxxxx path: ./Downloaded/把 配置模板 里的示例link换成一条真实链接,然后:
python run.py -c config.yml跑完应看到=== Overall Summary ===完成统计,Downloaded/下多出以作者命名的目录,里面的 mp4 就是无水印的;再开music、cover、json三个开关,原声、封面、元数据也会一并进作品文件夹。
按需求挑场景
想下载一条无水印视频,不想动配置文件
单条视频是最低成本场景,命令行参数直接追加快捷链接或分享链接,短链会自动解析:
python run.py -c config.yml -u "https://v.douyin.com/xxxxx/" -t 8跑完应在终端看到下载完成统计,新视频落在path指向的目录里。-t临时调并发,不写回配置。
想备份一个博主主页:作品、合集一次跑完
适用边界:博主主页链接走mode勾选内容,number给每种模式设上限(0不限),post / like / mix / music 可混着跑且跨模式自动去重;收藏类collect/collectmix只能单独使用,不能与其他模式混写。
link: - https://www.douyin.com/user/MS4wLjABxxxx mode: [post, mix] number: post: 50 mix: 20跑完该博主内容按作者/post/、作者/mix/分目录归档,文件名默认日期_标题_id,不会互相覆盖。
想录一整场直播
直播间链接直接填进link,程序自动拉流,不用开录屏软件。边界先说清:官方标注这是实验功能,HLS 源保存的是播放列表而不是可直接播放的视频,极端直播场景建议人工同时备份。
link: - https://live.douyin.com/123456789 live: max_duration_seconds: 00表示录到主播下播;录满时长、主播下播或你手动 Ctrl+C,已录下的字节都保留成 FLV,落在Downloaded/{作者}/live/下,附带一份房间元数据 JSON 方便回溯。
只要数据不要文件:热搜和关键词
只做数据收集时,两条命令搞定,产物是 JSONL,pandas、jq 可直接二次筛选:
python run.py --hot-board 30 -p ./Downloaded python run.py --search "猫咪" --search-max 100 -p ./Downloaded跑完应在Downloaded/hot_board/与Downloaded/search/下各多出一个 JSONL 文件。想要评论或字幕转写,在配置里开comments.enabled: true、transcript.enabled: true(转写走 OpenAI 接口,图文笔记不生成转写)即可,每个作品旁会多一个*_comments.json或转写文件。
去重、续跑、挂了不白跑:开完就不用再管
- database:每条下载记录写进 SQLite,默认
dy_downloader.db。坑:只删库不清文件不会触发重下,判断是"库记录 + 本地文件"双重检查,两者都清才会重新下载。 - increase.post:默认
true,按磁盘上的非空主文件跳过已下作品;redownload_missing_files默认true,文件缺了会自动补下。坑:想重下某条时把increase.post设false即可覆盖重下,不用手动清库。 - retry_times:默认 3 次,内置指数退避与 2 请求/秒限速,下载带 Content-Length 完整性校验,残文件自动清理重试。坑:网络抖动不用管它,但别把限速也调没了。
- browser_fallback:默认
enabled: true、headless: false,主页翻页被风控截断时自动开浏览器,你手动过验证码。坑:别设headless: true,否则验证卡死只能干等超时。 - thread:默认 5,网络稳定再提到 8。坑:一上来拉满容易触发风控,反而比慢一点更慢。
长任务可顺手开notifications(Bark / Telegram / Webhook),跑完手机收推送。
卡住了先查这张表
| 现象 | 最可能原因 | 一条命令或配置解决 |
|---|---|---|
| 突然大面积失败 | Cookie 过期 | 重跑python -m tools.cookie_fetcher --config config.yml |
| 主页只抓到 20 条左右 | 翻页触发风控 | 确认browser_fallback.enabled: true且headless: false,弹窗手动过验证 |
| 硬盘堆出重复文件 | 去重没生效 | 确认database: true,increase.post保持默认true |
| 想重下某一条被跳过的 | 被去重机制拦下 | increase.post: false再跑一次 |
| 进度输出很吵 | 日志未静默 | progress.quiet_logs: true;排查时临时加-v |
| 速度慢 | 并发偏保守 | thread提到 8、retry_times: 3,逐步上调 |
上线前自查三条:
- 先用单条视频验证 Cookie 和网络,再上主页批量;
- 测试阶段把
number.post设 1~5,跑通后再放开到 0; - 不同任务分配置文件(如
config_test.yml、config_daily.yml),别共用一份;Cookie 失效是周期性的维护项,不是故障,长任务记得开notifications。
本项目仅供技术学习与个人数据管理使用,请在合法合规前提下使用,尊重内容版权与创作者权益。
【免费下载链接】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),仅供参考