我写了个 Pixiv 批量下载工具,从此收图不用一张张右键

起因:收图太累了 😮‍💨

经常逛 Pixiv 的朋友大概都有体会:看到喜欢的插画想存下来,得先点进作品页、再点开原图、再右键保存。一两张还好,碰上一个作者几百张作品、或者想把某个排行榜整批存下来,纯手工就很折磨了。

更麻烦的是网页版的防盗链——直接复制图片链接下下来,多半是一张裂图。所以我干脆写了个桌面工具 pivixAutoTool,把”搜索 → 预览 → 批量下载”这条链路一次打通。

仓库地址:github.com/QinYe233/pivixAutoTool

工具主界面

功能一览

一句话概括:搜 Pixiv 作品、在线预览、批量下载原图。它提供了六个检索入口,覆盖大部分找图场景:

  • 按作者名:输入作者名,列出候选作者,点选后加载其全部作品;
  • 按作者 ID(UID):已知 UID 时直接定位到该作者;
  • 按关键词 / 标签:检索相关插画;
  • 按作品 ID:精确定位单张作品;
  • 排行榜:直接浏览日榜、周榜等热门作品;
  • 个人收藏:登录后拉取并下载自己收藏夹里的作品。

检索结果以网格缩略图呈现,可单选、也可整页全选,选好后加入下载队列。下载与检索互不阻塞——下载在后台进行的同时,你可以继续翻找、继续加任务。

网格预览与批量选择

另外几个实用功能:

  • 🔞 R18 过滤:可在”全部 / 隐藏 R18 / 只看 R18”间切换。(能否看到 R18 取决于你账号自身的设置,工具无法绕过 Pixiv 服务器端的年龄限制。)
  • 🎞️ 动图转 GIF:Pixiv 的 ugoira 动图会自动合成为 GIF,无需另找工具。
  • 📁 历史记录:记录每次下载,可随时打开对应文件夹或一键清理。
  • 🔑 一键登录:内置原生 Pixiv 登录窗口,登录后自动捕获 cookie,后续访问收藏、会员内容无需重复登录。

三个技术点,讲清楚原理 🤓

防盗链是怎么绕过去的

Pixiv 的图片服务器会校验请求头里的 Referer:如果请求不是来自它自己的站点,就返回一张裂图。桌面工具的优势在于,我们可以在发请求时手动带上正确的 Referer,让服务器认为这是站内的正常访问,图片自然就能取到。这也解释了为什么网页里直接复制链接不行、而工具可以——差别只在这一个请求头。

断点续传

批量下几百张、或者单张大图时,中途断网很正常。工具下载时先写入一个 .part 临时文件,并记录已下载的字节数;重连后,用 HTTP 的 Range 请求头告诉服务器”从第几个字节继续”,而不是从头重下。整张下载完成后,再把 .part 重命名为正式文件。

为什么要分三层:Electron 的进程模型

工具基于 Electron + React + Vite。Electron 简单说就是”用网页技术写桌面应用”,内部分成三层、各司其职:

  • 主进程(Node):负责重活——网络请求、文件读写等系统操作;
  • 预加载层(preload):一道安全隔离带,渲染层不能直接调用系统 API,只能通过它暴露的受限接口通信;
  • 渲染层(React):也就是你看到的界面。

这样分层是出于安全考虑:界面代码即使出问题,也无法越过预加载层直接操作你的系统。这是 Electron 应用的标准做法,不是多此一举。

安装与使用

想直接用的话,等我打好包发出来,下载 Windows 安装包安装即可。

想跑源码 / 二次开发:

1
2
3
4
5
6
7
8
# 安装依赖
npm install

# 开发模式
npm run dev

# 打包为 Windows 安装包
npm run dist

使用流程:登录 → 选择检索方式 → 输入内容 → 网格中挑选 → 下载到默认或自定义目录

写在最后

这工具纯粹是我自己收图收烦了的产物,能帮到有同样困扰的人就更好。⚠️ 也提醒一句:下载的作品请尊重作者版权,自己欣赏就好,不要随意传播、更不要商用。

有想法或遇到 bug,欢迎去仓库开 issue~ 🌿