2.4.1 • Published 1 year ago
@ibaraki-douji/pixivts v2.4.1
Pixiv Downloader
Download pics from pixiv with or without an account
If you want to see a use case go into the Code tab and look for the lib/main.js
file !!
Getting started
npm i @ibaraki-douji/pixivts --save
Getting pixiv Tags
const Pixiv = require("@ibaraki-douji/pixivts");
const pixiv = new (Pixiv.Pixiv);
// or just const pixiv = new (require("@ibaraki-douji/pixivts").Pixiv);
pixiv.predict('a tag')
.then(tags => {
console.log(tags);
/* log an array of
{
tag_name: string,
access_count: string,
type: string,
tag_translation: string
}
------------
tag_name = the pixiv tag (in japanese)
access_count = number of time this tag is searched
type = type of the tag
tag_translation = the english traduction for the tag
*/
})
Search artworks by tag
pixiv.getIllustsByTag('YOUR PIXIV TAG').then(res => {
console.log(res);
/*
Returns an array of
{
id: string,
title: string,
illustType: number,
description: string,
tags: Array<string>,
userId: string,
userName: string,
width: number,
height: number,
pageCount: number,
createDate: string,
updateDate: string
}
*/
});
// You can also parse optionals parameters
pixiv.getIllustsByTag('YOUR PIXIV TAG', {mode: 'all', page: 2}).then(console.log);
/*
The mode is for selecting what you want : 'safe' = All age artworks | 'r18' = NSFW only | 'all' = both of them
And the page of the artworks
*/
Search Artworks by User
pixiv.getIllustsByUserID('THE ID', {limit: 100}).then(res => {
console.log(res);
/*
returns the same for the Search with TAG
*/
});
// You can edit the limit with the number of artwork you want (0 = unlimited)
Retriving All infos from an artwork
pixiv.getIllustByID('ID').then(res => {
console.log(res);
/*
Return an object :
{
AI: boolean,
restricted: number,
pageCount: number,
urls: Array<Image>,
illustID: string,
illustType: number,
description: string,
tags: Array<string>,
createDate: string,
uploadDate: string,
width: number,
height: number,
like: number,
bookmark: number,
view: number,
comment: number,
user: {
id: string,
name: string
},
title: string,
}
for the urls
Array<Image> = An array of that
{
mini: string,
thumb: string,
small: string,
regular: string,
original: string,
}
*/
});
Download the image
pixiv.download(new URL(artwork.urls[0].original)).then(res => {
fs.writeFileSync("./test.jpg", res);
/*
returns a buffer who contains the downloaded image.
*/
});
Login with credentials
⚠ You need to install puppeteer npm i puppeteer --save
This function will open a browser to login and the user can verify the captcha (if prompted)
pixiv.login('email or id', 'pass').then(logged => {
console.log(logged);
/*
returns true or false if logged or not
*/
});
Login with cookies
To get the cookies go to pixiv, login to your account.
Then open the dev tools Ctrl+Shift+I
or F12
, go in the network tab.
After select a line (a picture or anything), in the popup search Headers tab and find cookies. After that copy ALL cookies (this is a big cookie data) and parse it in the program. (btw don't take the cookies:
just take the value).
pixiv.staticLogin('cookies 🍪', 'the same useragent of the cookies');
Check the login
let loged = pixiv.isLoged();
// Retunrs true if logged, false if not.
Logout
pixiv.logout();
Get the current login infos
let creds = pixiv.getLogin();
console.log(creds);
/*
Returns an object ;
{
cookies: string,
agent: string
}
*/