☰
抖音批量下载实战指南:从扫码 Cookie 到主页增量归档
2026/10/21 20:39:43 网站建设 项目流程

抖音批量下载实战指南:从扫码 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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询