A privacy respecting frontend for Pixiv (WIP)
Go to file
2023-08-10 21:23:16 +07:00
configs Feature: Open Graph meta tags 2023-07-27 20:58:25 +07:00
handler Feature: latest by followed page 2023-07-25 20:55:32 +07:00
models Feature: Open Graph meta tags 2023-07-27 20:58:25 +07:00
template New logo design from @NNB #4 2023-08-10 21:23:16 +07:00
views Fix: error page not working 2023-07-28 10:38:50 +07:00
.gitignore Testing out the settings page 2023-06-20 21:21:27 +07:00
Caddyfile README: wiki page and instances table 2023-06-08 18:54:17 +07:00
docker-compose.yml harden docker 2023-07-15 04:22:56 +00:00
Dockerfile Feature: Docker 2023-06-13 16:07:28 +07:00
go.mod Optimization: Pass in queries in an organized way #9 2023-07-05 21:32:00 +07:00
go.sum Optimization: Pass in queries in an organized way #9 2023-07-05 21:32:00 +07:00
LICENSE License: switch to AGPL3 2023-05-15 07:28:10 +07:00
main.go Remove limiter 2023-08-03 19:47:48 +07:00
nginx.conf Fix: temporary remove headers #14 2023-07-15 20:09:17 +07:00
README.md README: added a note 2023-07-25 10:57:56 +07:00

PixivFE

A privacy-respecting alternative front-end for Pixiv that doesn't suck

Get it on Codeberg

Features

  • Lightweight - both the interface and the code
  • Privacy-first - the server will do the work for you
  • No bloat - we only serve HTML and CSS
  • Open source - you can trust me!

Hosting

Check out this page.. We currently have guides for Docker and Caddy.

Many thanks to dragongoose for writing the Docker guide!

Instances

Name Cloudflare? URL
exozyme (Official) No https://pixivfe.exozy.me
dragongoose No https://pixivfe.dragongoose.us
WhateverItWorks Yes https://art.whateveritworks.org

Hosted one yourself? Create a pull request to add it here!

License

AGPL3

Note

Features like following an user, bookmarking and/or liking an artwork won't be added anytime soon.

API routes:

  • Following an user: https://www.pixiv.net/bookmark_add.php
  • Bookmarking an artwork: https://www.pixiv.net/ajax/illusts/bookmarks/add

This is because for these endpoints to work, we must pass in a header called x-csrf-token. The token was stored directly inside any Pixiv's pages (ex: https://www.pixiv.net) in a variable called pixiv.context.token. We could easily get this token using curl:

curl https://www.pixiv.net --silent | grep pixiv.context.token

The problem is, we cannot use this token, because when we were using curl to fetch the page, we weren't authenticated. Each user has their own token, generated every time they logout (i think). If we try to authenticate with PHPSESSID, Cloudflare will stop us and we get a challenge page.

Challenge page

Unless we find out a way to fetch a x-csrf-token that works, these features will probably never be added.

If you found out a way to fetch it, please tell me. You can test the token using this command: curl -H "x-csrf-token: your_csrf_token" -X POST -d "mode=add&type=user&user_id=36055573&tag=&restrict=0&format=json" "https://www.pixiv.net/bookmark_add.php" --cookie "PHPSESSID=your_token" -A "Mozilla/5.0"

It will return an empty JSON array if success, like this: Successfully followed