Pixiv ダウンローダー

📢 この記事は ChatGPT によって翻訳されました

2025-05-18 更新
SQLite版も書いた。もうデータベース設定しなくていい: https://blog.yexca.net/archives/248

3日かけてとりあえず動くやつを作ってみた。
ただしエラー処理はしてないから、バグったら 再起動してね

GitHub リポジトリはこちら: https://github.com/yexca/PixivDownloader-MySQL

はじめに

これは ダウンロード済みのイラストを DB に記録する ってところから始まってて、
ずっと同じ作業してるのアホらしくなって「コンピュータにやらせよう」ってなったんだよね。

たまたま最近「プログラム作りたいな」って思ってたし、
ついでにこの前作ってたやつ( https://github.com/yexca/yasumiProject )にも満足してなかったし、
年末年始で時間あったから、よっしゃやるかって感じで。

説明

一応形にはなったけど、エラー処理はないし、
GUI アプリとしては初めてちゃんと作ったやつだから、コードはぐちゃぐちゃ。
なので整理も多言語対応も放棄した(笑)

しかも作ってる途中で「これ SQLite でよくね?」って気づいたんだけど、
もう半分以上作っちゃったから「まあ最後までやるか」って流れに。

本当は exe にもしたかったけど、設定ファイル使ってるから面倒だし、
しかも最初ビルドしたやつがウイルス扱いされて焦ったし
ってことで放置。

UI

背景画像出典: https://www.pixiv.net/artworks/83273073

  • ホーム画面:

home

  • 設定画面:

settings

設定

もともとの DB をベースに作ったので、カスタマイズ性はほぼない。

DB のテーブル作成 SQL は以下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
CREATE TABLE pic (
    ID varchar(99),
    -- 一意な識別子
    name varchar(255),
    -- 作者の名前
    downloadedDate datetime,
    -- ダウンロード/更新日
    lastDownloadID varchar(255),
    -- 最新の作品ID
    platform varchar(50),
    -- プラットフォーム名
    url varchar(255),
    -- リンク
    PRIMARY KEY(ID)
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
~~~

Pixiv  API はログインが必要だけど、
 IDとパスワードでのログインは不可
 この方法で Auth Token を取得する:https://gist.github.com/ZipFile/c9ebedb224406f4f11845ab700124362

背景画像は Git に入れてない。パスは `app\resources\images\background.png`

あと Python が必要。依存関係は pip で:

```bash
pip install -r requirements.txt

使い方

実行:

1
python main.py

Pixiv の認証画面と設定画面で必要な設定を済ませたらホームへ戻る。

画面に Pixiv の ユーザーID または 作品ID を入力すると、 そのユーザーのすべての作品を自動で取得してくれる。

おわりに

正直、自分でもこのアプリ使ってないけど、 開発経験の一歩としてはなかなか良かったと思ってる。

yexca-211

This post is licensed under CC BY-NC-SA 4.0 by the author.
最終更新 2025-05-18 16:20 +0900

Visits Since 2025-02-28

Hugo で構築されています。 | テーマ StackJimmy によって設計されています。