如何快速批量下载抖音作品: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 的抖音批量下载工具,解决的核心问题有两类:单条视频、图文、合集、音乐的快速无水印保存,以及作者主页作品的完整或增量获取。程序默认内置并发下载、指数退避重试、SQLite 去重与文件完整性校验,API 翻页受限时还能自动切换到浏览器兜底。下文按安装、配置、实战场景与进阶用法依次介绍,每个环节都附上可直接改用的配置示例。
它能做什么:核心下载能力
- 多类型下载:视频、图文、合集(mix)、音乐(原声)都能处理,
v.douyin.com短链会自动解析,视频源默认优先选择无水印地址。 - 主页批量获取:给出作者主页链接后,按
post/like/mix/music模式分别拉取作品,各模式数量用number单独控制。 - 去重与增量下载:SQLite 记录加本地文件双重判断,已下载内容自动跳过;增量模式下重复运行只取新作品。
- 元数据档案:每个作品可附带封面、音乐、头像与 JSON 元数据,输出统一写入下载清单
download_manifest.jsonl,评论也能随作品一并采集。
快速安装与 Cookie 认证配置
环境上只需要 Python 3.8 以上,macOS、Linux、Windows 均可运行。克隆仓库后安装依赖:
git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader pip install -r requirements.txt若计划使用浏览器兜底或自动获取 Cookie,再补装可选依赖:pip install playwright后执行python -m playwright install chromium。接着把config.example.yml复制为config.yml作为起点。Cookie 推荐用内置脚本获取:运行python -m tools.cookie_fetcher --config config.yml,浏览器打开后扫码登录抖音,回到终端按 Enter,认证信息会自动写入配置并保存在本地,无需手动复制。全部就绪后,用python run.py -c config.yml即可启动下载。
核心功能详解:批量下载、去重与元数据管理
模式化批量下载
主页链接配合mode字段决定抓取范围,多个模式可同时勾选,同一个作品在不同模式间不会重复落盘。
number按模式设置数量上限,0 表示不限制。start_time/end_time(YYYY-MM-DD格式)可把范围收窄到指定时间段。
SQLite 去重与增量下载
开启database: true后,下载记录默认写入dy_downloader.db,实现见 storage/database.py。每次下载前程序先做“数据库记录 + 本地文件”双重检查:两边都在则跳过,文件缺失则重新下载。
increase.post: true等增量开关让重复运行只取新作品,适合定期维护资料库。- 除媒体文件外还会追加写入
download_manifest.jsonl,一行一条 JSON,便于后续核对与统计。
浏览器兜底机制
API 翻页受限时(典型现象是只能抓到 20 条左右作品),程序会启动真实浏览器,读取页面自己发出的作品列表请求继续翻页,期间支持人工处理验证码。
- 建议保持
headless: false,让窗口可见以便手动完成验证。 max_scrolls、idle_rounds、wait_timeout_seconds控制滚动轮数、空闲判定与总超时,可按网络状况调整。
元数据与评论采集
作品默认按“每作品一个子目录”组织(folderstyle: true),目录名由发布时间create_time渲染为日期_标题_作品ID形式,日期取自作品发布时间而非下载时间。
comments.enabled: true时按作品采集评论,include_replies控制是否展开二级回复,结果输出为*_comments.json。- 封面、背景音乐、头像、JSON 元数据各自独立开关,默认只下载视频本体,避免不必要的请求。
真实使用场景与配置示例
场景一:归档特定作者的全部作品。把作者主页放入link,number.post: 100表示取最近 100 条,mix: 0表示合集全量:
link: - https://www.douyin.com/user/MS4wLjABAAAAxxxx mode: - post - mix number: post: 100 mix: 0若担心昵称与他人重名导致目录合并,把author_dir改为nickname_uid可获得唯一且直观的作者目录。
场景二:定期增量收集关注账号。同一份配置周期性运行,去重机制自动跳过已下载内容,资料库随时间累积而不产生重复文件:
link: - https://www.douyin.com/user/MS4wLjABAAAAyyyy mode: - post increase: post: true database: true start_time: "2025-01-01"场景三:主题作品与评论采集。搜索接口把结果存成带时间戳的 JSONL 文件,配合评论开关可以沉淀某个话题下的热门作品及其讨论:
python run.py --search "咖啡探店" --search-max 100 -p ./Downloaded需要某个时点的热门快照时,--hot-board 30可导出热搜榜 JSONL,用法与搜索一致。
进阶功能用法:通知、转写与 API 服务
完成通知。notifications支持 Bark、Telegram、Webhook 三类通道并发推送,成功或失败均可触发,单个通道失败不会阻塞下载主流程,适合无人值守的长任务。
语音转写。transcript.enabled: true时,视频下载完成后调用 OpenAI Transcriptions API(默认模型gpt-4o-mini-transcribe),在视频旁生成.transcript.txt与.transcript.json;密钥通过环境变量OPENAI_API_KEY提供。注意图文作品不生成转写。
REST API 服务。安装fastapi uvicorn后运行python run.py --serve --serve-port 8000,可提交下载任务并轮询 job 状态,方便接入自动化流水线。
其他常用调优项:thread并发数(默认 5)、video_quality画质档位(原画 / 最高转码 / 指定分辨率)、proxy代理地址,所有默认值可在 config/default_config.py 中查看。
常见问题与排查指南
现象:主页作品只能抓到 20 条左右。原因是 API 翻页被风控拦截。解决:确认browser_fallback.enabled: true且headless: false,浏览器窗口弹出后手动完成验证,不要立即关闭窗口。
现象:单个视频、合集或音乐下载返回 403 / 风控提示。原因是抖音 Argus 风控自 2026 年 8、9 月起对这类接口的非浏览器请求一律拒绝,CLI 直连无法携带所需签名。解决:保持浏览器兜底开启(主页作品翻页仍可能取到),或改用桌面版 Douzy——它通过内置登录窗口代发请求,不受此限制,详见 README.zh-CN.md 的限制说明。
现象:下载中途登录态失效或请求异常增多。原因是 Cookie 超过有效期。解决:重新执行python -m tools.cookie_fetcher --config config.yml刷新认证,脚本源码在 tools/cookie_fetcher.py。
现象:进度条反复刷新、日志刷屏。原因是日志级别偏高。解决:保持progress.quiet_logs: true静默进度阶段日志,需要排查时再临时加--show-warnings或-v。
开始使用:三个立即可执行的动作
- 先用单条视频链接跑一遍
python run.py -c config.yml,确认 Cookie 有效、目录结构与命名符合预期,再扩展到主页批量任务。 - 对需要长期跟进的作者主页,开启
increase与database并交给定时任务定期重跑,资料库保持持续更新且无重复。 - 需要沉淀完整档案时,同时打开
json、cover与comments,并保留download_manifest.jsonl用于事后核对与导出。
本工具适用于技术研究、学习交流与个人数据管理场景,请在使用中遵守相关法律法规与平台规则,尊重创作者的合法权益。
【免费下载链接】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),仅供参考