A privacy respecting frontend for Pixiv (WIP)
Go to file
2023-08-25 17:22:29 +07:00
configs Change default port #16 2023-08-19 19:18:05 +07:00
handler Add Accept-Language header for requests 2023-08-24 21:26:35 +07:00
models Feature: history rankings #20 2023-08-23 21:08:25 +07:00
template Feature: history rankings #20 2023-08-23 21:08:25 +07:00
views Feature: history rankings #20 2023-08-23 21:08:25 +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 Change default port #16 2023-08-19 19:18:05 +07:00
Dockerfile Fix: Golang version for Docker #24 2023-08-25 17:22:29 +07:00
go.mod Optimize: bump to Go 1.21 and clean some code 2023-08-14 19:41:26 +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 Custom startup message 2023-08-14 19:46:20 +07:00
nginx.conf Fix: temporary remove headers #14 2023-07-15 20:09:17 +07:00
README.md Some notes 2023-08-21 21:34:45 +07:00

PixivFE

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

Get it on Codeberg

Questions? Feedbacks? You can PM me on Matrix!

You can keep track of this project's development here.

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