Pixiv的图片反代最近好像寄了,所以决定自己搭一个,记录一下。

使用 CloudFlare Workers 搭建

去Cloudflare创建一个Worker,然后将代码替换为如下:

export default {
  async fetch(request) {
    const url = new URL(request.url);
    url.hostname = 'i.pximg.net';

    const proxyRequest = new Request(url, request);
    proxyRequest.headers.set('Referer', 'https://www.pixiv.net/');

    return fetch(proxyRequest);
  },
};

使用Vercel加速

在Github创建一个仓库,名称随意,在里面新建一个文件 vercel.json,内容如下:

{
    "version": 2,
    "routes": [
      {"src": "/(.*)","dest": "https://{DOMAIN}"}
    ]
}

记得将代码中的 {DOMAIN} 部分替换为你自己的域名或者默认域名

默认域名查看位置:打开你的 Worker 界面,转到 设置触发器路由
自定义域名在同页面的 自定义域 处添加。

随后打开 Vercel ,选择新建项目,再选择你刚刚创建的仓库,部署即可。
然后转至 SettingsDomains,添加你的自定义域名。然后你的Pixiv图片代理就搭建完成了。

这玩意有什么用

Pixiv 在大陆被墙,并且图片服务器域名 i.pximg.net 有盗链保护,只要 Referer 不是来自 Pixiv 的请求都会返回 403。
而我们可以通过自建图片反代来获取Pixiv的图片。
例如,这是一张 维尔汀 的 Pixiv 作品,Pixiv页面链接是 https://www.pixiv.net/artworks/115663906
图片链接是 https://i.pximg.net/img-master/img/2024/02/01/12/59/30/115663906_p0_master1200.jpg
(你们可以打开图片链接看看能否访问
搭建好图片反代后,链接可以写为这样以获取图片:

https://你的反代域名/img-master/img/2024/02/01/12/59/30/115663906_p0_master1200.jpg

例如我的就是

https://pximg.sakou.xyz/img-master/img/2024/02/01/12/59/30/115663906_p0_master1200.jpg

我是维尔汀的狗!!!

又比如,如果你正在使用 PixEz,那么你可以在 偏好设置 中将图片域名更换为你的
这样就能使图片正常加载了。

参考链接