あっきぃ日誌

鉄道ブログのような技術系ブログのようななにか

Pixivの画像を作者のTwitterIDごとに振り分けるやつ

TwitterもしくはMastodonでの画像収集は、mikutterと拙作のmikutter_pictcollectプラグインでやっています。

github.com

mikutter_pictcollectプラグインではユーザー名ごとにフォルダを作って保存していますが、Pixivから保存した画像の保存も、このユーザー名のフォルダに手動で突っ込んでいました(なお、Twitterと同じ画像があればPixivから保存したものに手動で差し替え)。が、いちいちユーザー名を検索して放り込むのは手間で、1年くらいデスクトップの「名称未設定フォルダ」に溜め込むというバカをやらかしていました。

1000以上溜め込んだゴミ屋敷のようなフォルダを、最初は目grepで作者ごとに分類して片付けていましたが、ギブアップしたのでスクリプトを書きましたという話。

現在のPixivはcurlとかで叩くとJSONが帰ってくるっぽく、ブラウザで見てもJSONとかをもとにJavaScriptでページ生成してるっぽい気がしてます(あっとる?)。このせいか、2018年のMacBook Airでは相当しんどい閲覧体験なんですが、中の人は気づいているんでしょうか。。

さておき、JSONでデータが取れるということはスクリプトにできそう、というわけでPythonで雑に書いてみました。

Pixivの画像ファイルを作者のTwitterIDごとに振り分けるやつ · GitHub

urllibのUser Agentではなぜか弾かれ、curlではヨシとされていたのが謎ですが、コレを書いたことがきっかけで潰されないことを祈るばかりです。

pixiv_shiwake_config.pyで保存先と、プロフィールからTwitterIDが取れなかったけどTwitterやってる作者用の設定を書いて、>||python3 pixiv_auto_shiwake.py 12345678_p0.jpg||<みたいな感じで実行すれば仕分けられます。くそべんり。Macの場合、-oオプションをつけると移動先のフォルダを開いてくれます。

Automatorでちとょろっ作り込めば、画像ファイルの右クリックメニューにこんな感じで追加できます。Montereyになってからクイックアクション以下に移動してしまったのが悲しい。

social.mikutter.hachune.net

このスクリプトをゴリッと回すことで、ために溜め込んだ画像ファイルがスッキリ仕分けられました。めでたし。