Tsuk1ko / pxder

🖼 Download illusts from pixiv.net P站插画批量下载器
https://moe.best/projects/pxder.html
GNU General Public License v3.0
742 stars 78 forks source link
downloader illust pixiv pixiv-downloader

pixiv downloader

由于 Pixiv 已不再支持客户端的登录 API,请更新到 v2.12.0 及以后的版本以使用新的登录方式(详见下文)

本项目因本人不再使用且摸了而进入仅维护状态,暂不考虑任何非必要的 Feature Request

运行示例

简单写下说明(主要针对 Windows 用户)

准备

首先你需要先安装 Node.js >= 16

Windows / Mac

打开官网 => 下载左边的 LTS 版本 => 安装一路确定

Linux

# Ubuntu
curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt-get install -y nodejs

# Debian
curl -sL https://deb.nodesource.com/setup_16.x | bash -
apt-get install -y nodejs

# Centos
curl -sL https://rpm.nodesource.com/setup_16.x | bash -
yum install -y nodejs

安装/更新/卸载

Windows 打开“命令提示符”或者“Powershell”,执行下面的命令,即可安装或者更新(注:后续命令皆为在此执行)

npm i -g pxder

如需卸载,执行

npm uninstall -g pxder

配置

不同计算机用户的数据是独立储存的,互不影响

登录

pxder --login

Windows

正常情况下应该会自动弹出浏览器访问一个登录授权页面,如果没有的话请手动打开“Login URL”,操作下去即可

登录成功时浏览器会弹出如下图所示的一个对话框,选择“打开”即可,这时 pxder 应该会显示登录成功

打开应用

如果你的体验与上述情况不一致,请使用 pxder --login --no-protocol 命令进行登录,并参考下面的“其他系统”部分进行操作

其他系统

正常情况下应该会自动弹出浏览器访问一个登录授权页面,如果没有的话请手动打开“Login URL”,不要急着登录或授权,按以下步骤操作:

  1. 按下 F12 打开“开发者工具”,切换到“Network”选项卡,勾选“Preserve log”
  2. 进行登录或授权操作,最终会进入一个空白页面
  3. 点击“Doc”进行筛选,找到(一般是)最后一个请求,将 code 参数复制出来,粘贴到程序中并回车

以上步骤尽量快速完成,太慢的话验证可能会过期

开发者工具

登出

pxder --logout

仅会删除计算机当前用户储存的 refresh token,在其他计算机或用户上登录的不受影响

登录态复制

如果你有一个已经登陆了的 pxder,那么你可以通过以下步骤将登录态复制到另一个 pxder 上

  1. 在已经登录了的设备上执行 pxder --export-token,保存好该 token
  2. 在另一个设备上执行 pxder --login TOKEN,将 TOKEN 替换成上一步输出的 token

设置

进入 Pxder 的设置界面

pxder --setting

有六项设置,按下数字键选择一项进行设置

[1] Download path           # 下载目录,必须设置
[2] Download thread         # 下载线程数
[3] Download timeout        # 下载超时
[4] Auto rename             # 自动重命名(文件夹)
[5] Proxy                   # 使用代理

说明

开始使用

如果需要终止程序,请在命令行中按下 Ctrl C 或者直接关闭命令行窗口

请不要吐槽为什么在 Windows 下 Ctrl C 后提示的 终止批处理操作吗(Y/N)? 不管是 Y 还是 N 都依然会终止,因为 Node 捕捉到 Ctrl C 就自己终止了,Windows 晚了一步(。

欲查看完整命令帮助请执行 pxder -h

(1) 下载或更新某画师的所有插画作品

使用 -u--uid 参数,后跟画师的 UID,可单个可多个,如果多个则用英文半角逗号隔开

pxder -u uid1,uid2,uid3,...

例如

pxder -u 5899479,724607,11597411

(2) 下载或更新你关注的所有画师的所有插画作品

该操作同时也会更新已下载的关注画师的作品,并且效率远高于 (3),比较推荐使用

会自动排除 pixiv事務局 (uid=11)

由于收集关注信息需时较久,因此特地针对该功能做了信息缓存:如果你在下载中途退出,那么下次使用该功能时并不需要重新收集,而是利用上次的缓存立即继续下载。

公开关注的画师

pxder -f
# 或
pxder --follow

私密关注的画师

pxder -F
# 或
pxder --follow--private

(3) 更新已下载的画师的画作

会对下载目录中检测到的所有下载过的画师的插画进行增量更新下载

与 (2) 的区别是可以更新你使用 (1) 下载了的但是未关注的画师的插画,但是效率远低于 (2)

pxder -U
# 或
pxder --update

(4) 下载或更新你的收藏中的插画作品

公开收藏

插画会被下载至 [bookmark] Public 文件夹中

pxder -b
# 或
pxder --bookmark

私密收藏

插画会被下载至 [bookmark] Private 文件夹中

pxder -B
# 或
pxder --bookmark--private

(5) 根据指定 PID 下载插画

插画会被下载至 PID 文件夹中

pxder -p pid1,pid2,pid3,...

例如

pxder -p 70593670,70594912,70595516

其他参数说明