抖音批量下载实战指南:从扫码 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
想把某位博主主页的作品全部攒成本地档案,手动逐条保存并不现实。douyin-downloader 是一个命令行的抖音批量下载工具:扫码拿 Cookie,去水印下载视频、图文、合集与原声,SQLite 去重,风控时浏览器兜底。
先看边界:抖音批量下载能做什么、不能做什么
- 只支持抖音 CLI:单条视频、图文、博主主页(post)、合集(mix)、喜欢(like)、原声音乐(music)都能下,
v.douyin.com短链会自动解析成真实地址 - 无水印且自动选档:默认取多档码率里的最高转码档(
video_quality: highest),可指定original、720p等 - 默认 5 并发(
thread: 5)、失败自动重试 3 次(retry_times: 3),每页请求限速 2 次/秒 - 增量不重下:下载记录进
dy_downloader.db,配合increase.post: true再跑只补新增 - 风控兜底:翻页被拦时 Playwright 拉起真实浏览器(
headless: false,最多滚动 240 屏)留给你手动过验证 - 不适合的场景:官方 README 明确说抖音请求验证目前会拦截单条/合集/音乐/喜欢/收藏的 CLI 下载,主页作品也只是"浏览器兜底、不保证成功"——日常零散下几条视频建议用同源的桌面版 Douzy
同一套后端也封装成了桌面版 Douzy,粘链接就能下载:
开工前的清单:Python、依赖与浏览器内核
- Python 3.9+(Windows / macOS / Linux)——
python --version输出 3.9 及以上 - 代码与依赖——clone 后装依赖:
git clone https://gitcode.com/GitHub_Trending/do/douyin-downloader cd douyin-downloader python -m pip install -r requirements.txt验证:python -c "import aiohttp, yaml, rich"一行命令没有任何输出就算装齐
- 浏览器内核——扫码登录和风控兜底都靠 Playwright 驱动的真实浏览器:
python -m pip install playwright python -m playwright install chromium验证:看到 chromium 下载完成的进度提示走完即可
- 配置文件——复制模板:
cp config.example.yml config.yml(Windows PowerShell 用Copy-Item config.example.yml config.yml)验证:目录下多出一个 config.yml
- 登录凭证(Cookie)——见下节扫码流程,验证:终端打出
Updated config file,且config.yml的cookies段不再是YOUR_XXX占位值
第一次下载:扫码拿 Cookie 与第一条无水印 mp4
复制好配置后,跑项目自带的取 Cookie 脚本,它会弹出浏览器让你手动登录:
python -m tools.cookie_fetcher --config config.yml在弹出的浏览器里完成抖音登录,等主页显示已登录后回终端按 Enter。成功信号有两个:终端打印[INFO] Updated config file: ...,以及打开config.yml能看到msToken、ttwid、odin_tt、passport_csrf_token等键已经填入真实值。
Cookie 就位后用-u临时传一条视频链接试跑,不必改配置文件:
python run.py -u "https://www.douyin.com/video/你的视频ID" -c config.yml跑起来的标志是Found 1 URL(s) to process和Database initialized;收尾处出现=== Overall Summary ===的 Download Summary 表格,Success行 ≥ 1。磁盘上则会在./Downloaded/<作者昵称>/<日期>_<标题>_<作品ID>/下看到一个.mp4,命名跟随filename_template默认的{date}_{title}_{id}。-u传的链接不会写回配置,跑完不留痕。
进阶玩法:主页整页批量、定期追更与时间段归档
主页整页批量下载——最高频的场景。改哪里:打开config.yml,把link换成博主主页地址、mode保持post、number.post改成0(模板默认是 1,不改只会下 1 条):
link: - https://www.douyin.com/user/某博主的sec_uid mode: - post number: post: 0跑什么:
python run.py -c config.yml -t 2-t 2把并发从默认的 5 压到 2,请求慢一点更不容易触发风控。成功判据:汇总里Success大于 0,./Downloaded/<博主昵称>/post/下出现一批按日期+标题命名的文件夹。
定期增量追更——database: true和increase.post: true在模板里默认就是开的,什么都不用改。跑什么:以后把number.post保持 0,定期重跑同一份python run.py -c config.yml即可。怎么判断增量在工作:增量下载先查数据库、再核对磁盘主文件,已下过的计入Skipped、新发的才计入Success——所以汇总里Skipped明显大于 0 就是预期行为,Success那几条就是博主新发的作品。想强制重下并覆盖某个范围内的作品时,把increase.post改成false再跑,不需要手动清数据库。
只归档某个时间段——改哪里:start_time/end_time(默认空字符串),格式YYYY-MM-DD,包含结束日期当天。跑什么:还是python run.py -c config.yml。成功标志:落盘的作品全部落在时间窗内,窗口外的不会出现在Success计数里。
值得动的参数:画质、并发与增量开关
video_quality(默认highest):默认只在码率阶梯里挑最高转码档、不发额外请求。改成original会去探测上传原片,原片更大才优先用,代价是每条作品多一次探测请求(10 秒超时),找不到自动退回最高档;省流量可写720p、540p,匹配不到会降级到最接近的可用档thread(默认 5):批量跑上百条作品的主页时建议降到 2~3,用速度换风控概率;-t参数可临时覆盖配置retry_times(默认 3):中断或失败的下载按此次数自动补,网络不稳就调大music/cover/json(默认全false):原声、封面、作品数据三类附带产物默认全关——一开文件数和请求量会翻几倍,确认要原声时把music改true再重跑redownload_missing_files(默认true):磁盘主文件缺失或为空时重新下载;改false则数据库有有效记录就继续跳过filename_template/folder_template(默认{date}_{title}_{id}):改命名模板时务必保留{id}变量,否则会重名覆盖
排障清单:登录失效、风控拦截与中断重试
- 症状:提示登录失效或需要登录 → 第一反应:重跑
python -m tools.cookie_fetcher --config config.yml重新扫码 → 兜底:Cookie 有效期通常只有几天,定期重扫是常态,别指望一次管一年 - 症状:主页只抓到少量作品就停 → 第一反应:确认
browser_fallback.enabled: true且headless: false,在弹出的浏览器窗口里手动完成验证 → 兜底:验证过了仍被拦,就降并发重跑python run.py -c config.yml -t 2 - 症状:下载中断或速度骤降 → 第一反应:直接重跑同一命令,未完成的作品会按
retry_times自动重试,增量机制只补缺的部分 → 兜底:换python run.py -c config.yml -t 3降并发再跑 - 症状:目录里找不到原声音频 → 第一反应:
music开关默认是关的 → 兜底:配置里改music: true后重跑该博主 - 症状:想确认具体卡在哪一步 → 第一反应:默认控制台只报错误级日志,加
-v重跑python run.py -c config.yml -v→ 兜底:python run.py --help可复查所有参数
最后一步:推荐操作顺序与合规提醒
推荐路径:先用-u跑通一条单视频,确认./Downloaded/里出现无水印 mp4,再上主页整页批量,最后把number.post保持 0 定期重跑做增量追更。Cookie 是你的登录凭证,别把带 Cookie 的config.yml发出去;下载内容建议仅限个人存档与研究。入口:配置模板 · 默认配置值 · 核心下载逻辑
【免费下载链接】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),仅供参考