douyin-downloader 无水印抖音批量下载:3 步从 0 到博主作品全量存档
【免费下载链接】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
默认配置模板只下 1 条作品,扫出来的登录凭证 Cookie 几天就过期,这两个细节坑掉几乎所有第一次用的人。提前知道它们,douyin-downloader 这个抖音批量下载工具一晚就能跑通:无水印视频、图文、合集、原声音乐全覆盖,主页链接粘进去就能整页跑,带 SQLite 去重和增量补档,命令行新手照着做即可。
🔗 怎么把代码和依赖装好
先python --version确认 Python 3.9 以上,再按顺序执行:克隆代码、进入项目目录、装依赖。
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成功信号:全程不报 ModuleNotFoundError,最后一条命令把 Chromium 下完退出。机器同时装了 Python 2 和 3 时,把 pip 换成python -m pip更稳。
🔑 怎么拿到抖音登录凭证
工具靠 Cookie 这张"门票"向抖音要数据。项目自带脚本会直接帮你打开浏览器扫码,不用翻浏览器开发者工具:
cp config.example.yml config.yml python -m tools.cookie_fetcher --config config.ymlWindows PowerShell 把第一行换成Copy-Item config.example.yml config.yml。命令跑起后弹出浏览器窗口,扫码登录抖音,回终端按 Enter 保存。成功信号:config.yml 里cookies段的YOUR_xxx占位值全部变成真实字符串。
Cookie 等同于你的登录态,只存在本地配置、不会上传,但别把带 Cookie 的 config.yml 发给任何人。不习惯自动获取的话,手动从浏览器复制 Cookie 粘进这一段的写法也行。
🚀 第一条下载怎么跑通
任挑一条作品链接,用-u追加,配置文件不动:
python run.py -u "https://v.douyin.com/xxx/" -c config.ymlv.douyin.com 短链会自动解析成真实地址,无水印下载源自动挑选,默认取最高码率。文件落在Downloaded/下"作者昵称/作品目录"结构里,目录按日期_标题_作品ID 自动命名。
成功信号:终端汇总显示"成功 1",目录里多出一个能正常播放的 mp4。想长期固定目标,就把链接写进 config.yml 的link字段,改用python run.py -c config.yml,后续任务都走这个入口。
📚 怎么从单条扩展到博主批量下载
这是最常用的场景:把link换成博主主页地址,mode保持 post,number.post改 0——0 才是"不限数量",不改它只下 1 条(示例值,以项目实际默认值为准)。
link: - https://www.douyin.com/user/xxx mode: - post number: post: 0python run.py -c config.yml -t 2参数背后的原因:主页动辄上百条作品,-t 2压低并发,节奏慢才不容易触发风控;带宽好的机器用默认 5 也行。
截图来自同源的桌面版 Douzy,作品、喜欢、合集、音乐的模式划分和命令行mode一一对应,概念可直接复用。另外按 README 现状说明,抖音风控较严时部分入口会被拦,主页的浏览器兜底不保证成功,大批量开跑前先看一眼最新版本说明。
🔁 长期跑怎么维护:增量、去重、时间过滤
首次全量跑完后,日常就是"补新作品"。默认database: true和increase.post: true都已开启,每条已下作品记进dy_downloader.db,再和本地文件双重核对,重跑同一任务自动跳过存量、只补新增。
只想要某段时期的作品,加两行(示例值,以项目实际默认值为准):
start_time: "2026-01-01" end_time: "2026-06-30"格式 YYYY-MM-DD,含结束当天。想强制重下时把increase对应项改 false 即可,不用清数据库。music、cover、json 这些附带产物默认全关,确认要原声或封面再打开,否则文件和请求都多出几倍。
节奏参数(示例值,以项目实际默认值为准):thread 默认 5,rate_limit 2 请求/秒,retry_times 3 次自动重试,下载不完整会比对 Content-Length 自动清理重下。
🩺 出错了怎么反应
第一是最高频的:终端提示登录态失效、需要登录。第一反应是重跑python -m tools.cookie_fetcher --config config.yml扫码刷新。验证方法:配置里cookies段不再有YOUR_xxx占位值,再跑任务。
第二:只抓到 20 条左右就停。第一反应是确认browser_fallback.enabled为 true、headless为 false,弹窗出现后手动完成验证,别急着关窗口。验证方法:验证通过后终端恢复翻页输出。
第三:下载中断或速度骤降。第一反应是把 thread 降到 2~3。验证方法:看日志里失败条目是否自动重试,汇总里有失败计数。
第四:某条作品不重新下载。第一反应是别慌,这是 SQLite 加本地文件双重去重的正常行为。验证方法:确实要重下时,把increase对应项改 false 再跑。
第五:目录里没有 mp3 原声。第一反应是 music 开关默认关闭。验证方法:配置里改music: true重跑。
想深挖的话,先读 config/default_config.py,所有默认开关和取值都在里面,再看完整示例 config.example.yml 与 core/ 目录下的下载逻辑。
最后提醒:Cookie 就是登录态,换机器或怀疑泄露就扫码刷新或改账号密码;下载内容用于个人存档与研究,不做二次商用或搬运。先跑通单条这个最小场景,再开主页批量,长期归档流程就稳了。
【免费下载链接】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),仅供参考