pppixiv
Get links to pixiv illustrations and links to download illustrations via our api. Please note that this project is a subproject of tg-dumb-bot. Since the current api is designed for tg-dumb-bot, you don't have easy access to the links we return (telegram comes with previews). For example, you need to call the pixivAPI variable inside our service to use the download link. Also you can modify our source code directly. We will provide more features for this project later.
Usage
For users in mainland China, please enable vpn service.
Build with Docker
Build your docker image and run it.
# build locally
$ docker build . -t pixiv
# run on detach
# -v will specify the folder where the illustrations will be downloaded
$ docker run -d -p 3333:5000 \
-e username="your_pixiv_accout_name" \
-e password="your_pixiv_account_password" \
-v /Your/local/path/dir:/APP/Illusts pixiv
If you successfully run this image up, you can run the test.py file to see the output. The first time will be slower because you have to get the pixiv token.
$ python3 test.py # Make sure you have the requests library installed
Use DockerHub Image
Pull our built image directly.
$ docker pull godmountain/pppixiv:latest
$ docker run -d -p 3333:5000 \
-e username="your_pixiv_accout_name" \
-e password="your_pixiv_account_password" \
-v /Your/local/path/dir:/APP/Illusts godmountain/pppixiv:latest
Run outside the docker container
Create .env file and Illusts folders.
.
βββ .env ππ» Paste your pixiv account and password into the .env file.
βββ Illusts ππ» Create the Illusts folder in the root directory of the project.
βββ Dockerfile
βββ LICENSE
βββ README.md
βββ app.py
βββ image
βββ main.py
βββ requirements.txt
βββ router
βββ run.sh
βββ services
βββ static
βββ templates
βββ test.py
.env should like ππ»
username=xxx
password=xxx
port=xxx
Add chromedriver to your environment variable. (Notice : The chromedriver version should be the same as the chrome browser you downloaded.) Please google how to set chromedriver environment variables by yourself. Then execute the following two commands after you have set up chromedriver.
$ pip3 install -r requirements.txt
$ python3 main.py
Solution for get token failure
If you encounter this problem below. ππ»
DEBUG in main: =====================================================================================
DEBUG in main: Authorized on pixiv account your_account_name. Please wait for authentication.
DEBUG in pixiv: getToken error!
DEBUG in pixiv: getToken error!
DEBUG in pixiv: getToken error!
DEBUG in pixiv: getToken error!
DEBUG in pixiv: getToken error!
DEBUG in main: Failed to get token, please check if you are blocked by pixiv or possibly because of reCAPTCHA v2 detection.
DEBUG in main: Application ends gracefully.
DEBUG in main: =====================================================================================
You can try setting headless to False and then manually validate reCAPTCHA. Please note that when you use this approach, make sure you are running the pppixiv outside a docker container.
Visit our dashboard
Visithttp://ip:port/dashboard
.You will see ππ»
Then enter the uid and click the search button, all the illustrations of the user with the specified uid will be searched and displayed on the right side.
Click the download button and all illustrations will be downloaded. If the download is successful, the gray dot on the right will turn green. Failed downloads will turn red.
After the illustration is downloaded successfully you will see the following message.
Click the Preview button to preview the illustration you just downloaded.
The artist in this example is referenced from δ»δΊε¦.
Api for accessing our pixiv services
Visithttp://ip:port/getIllustListByUid
and post data {"uid":"xxx"}
.You will get ππ»
status : 0 stands for failure while 1 stands for success
message : error message
list : returned data
{
"status": 1,
"message": "message",
"list": [
{"title": "title1", "url": "preview_url", "download_url": "download_url"},
{},
{},
]
}
Visithttp://ip:port/getIllustRanking
and post data {"mode":"xxx"}
. (We have mode: day, week, month, day_male, day_female, week_original, week_rookie, day_manga) You will get ππ»
{
"status": 1,
"message": "message",
"list": [
{"title": "title1", "url": "preview_url", "download_url": "download_url"},
{},
{},
]
}
Visithttp://ip:port/getTrendingTags
.
You will get ππ»
{
"status": 1,
"message": "message",
"list": [
{"tag": "JP version(Unicode)", "translated_tag": "EN version"},
{},
{},
]
}
Visithttp://ip:port/getIllustDownloadUrl
and post data {"illust_id":"xxx"}
.
You will get ππ»
{
"status": 1,
"message": "message",
"list": [
{"title": "title", "url": "preview_url", "download_url": "download_url"},
]
}
Contributing
Contributions must be available on a separately named branch based on the latest version of the main branch.