7 releases (4 breaking)

0.5.2 Jul 25, 2025
0.5.1 Nov 28, 2022
0.4.0 Nov 4, 2022
0.3.0 Sep 18, 2022
0.1.0 Jan 17, 2022

#905 in Images

MIT license

34KB
840 lines

pixivcrab

A pixiv AppAPI in Rust.

Example

use pixivcrab::{AppApi, AppApiConfig, AuthMethod};
use reqwest::ClientBuilder;
use std::env::var;

#[tokio::test]
async fn example() {
    let mut config = AppApiConfig::default();
    config.set_language("en-us").unwrap();
    let api = AppApi::new_with_config(
        AuthMethod::RefreshToken(var("PIXIV_REFRESH_TOKEN").unwrap()),
        ClientBuilder::new(),
        config,
    )
    .unwrap();
    let user = api.user_detail("123456").await.unwrap();
    println!("{:?}", user);
    let mut pager = api.illust_bookmarks("123456", false);
    while let Some(r) = pager.next().await.unwrap() {
        for i in r.illusts {
            println!("{} {:?}", i.title, i.tags);
        }
    }
}

Get Tokens

There is a script pixiv_auth.py in the project root. Use it to login and get access token & refresh token.

Usage:

# To login
$ python ./pixiv_auth.py login
# Here the script opens your browser and ask you to signin.
# Open the dev tools and navigate to Network tab, and complete the auth.
# You should be able to find a request `pixiv://account/login?code=...&via=login`.
# Copy the value of `code` and paste it into the terminal.
code: <code_found_in_dev_tools>

# To use refresh token to get access token
$ python ./pixiv_auth.py refresh <your_refresh_token>

Dependencies

~8–24MB
~297K SLoC