セーブポイント

特にジャンルの決まってない雑記です。

技術日記 9月26日号

最近こんなツールを書いた。

github.com

gallery-dl自体高機能なので、保存先のディレクトリいじったりするだけならこんなの要らないんじゃないか、とも思いつつ、コマンドの入力がgdwだけで済むのが気に入ってるので使っている。
まあ、メインの機能はむしろdanbooruのURLを渡したときにソースのURLを参照するようにした部分の方なので。

これだけでも普通に使えるCLIツールなんだけども、pixivからイラストを落とすとき自動でブックマークに入れたいなあと思った。

ちょうど都合よくPythonからpixivを操作できるっぽいPixivPy3というライブラリがあり、これを使うことにした。

で、ブックマークを操作するということはログイン処理を入れないといけないわけだけど、ログイン処理にちょっと沼ポイントがある。
まず、ユーザーIDとパスワードのセットでログインというスタンダードなやつは認証が通らない。pixivがこの方式でのログインを許可していないみたい。

じゃあどうするのかというと、リフレッシュトークンとかいうのが必要でそれでログインする形になっている。詳しくは以下のサイトなどを参照。

zenn.dev

トークンとるだけなら良かったんだけど、このトークンは1時間で失効するようになっていて、ゆえに初回だけログイン処理をすればいいわけではなくてめんどくさい。pixiv、スクレイピングとかにも厳しいので自動化とかあんま考えない方がいいのかも。

あと、wrapperに追加しようとした別の機能として作品につけられたキャラクターのタグに応じて画像の保存先の勝手な振り分けをしようとしたんだけども、PixivPy3で作品のタグを取得しようと思うとログインが必要らしい。なんでやねん。

作品のタグは普通にスクレイピングで取れそうなので、こっちは実装してみようかな。

以上、なんでpixivよりdanbooruの方が便利やねんという話でした。