Hitomi.laダウンローダー「Hoppip」Ver 2.0.0 公開

前回の更新(Ver 1.7.0)で「自動的にHitomi.laの仕様変更に対応する機能」を追加しましたが、これは割と上手く行っていました。
実はVer 1.7.0の更新後、Hitomiの仕様は5、6回変わっています。
それでも仕様変更の範囲が僕の想定の範囲内だったので、なんとかHoppipは動かなくならずにすみました。
しかし、最近の仕様変更は正直想定外のもので、仕様変更自動対応機能が上手く働かず、Hoppipはまた動かなくなってしまいました……。

ではどうするか?

今回の仕様変更も考慮して、仕様変更自動対応機能を改善するという方法が一番簡単です。
でも、それだとまた「想定外の仕様変更」があった場合、同じことを繰り返さなければなりません。
それははっきり言って面倒です。Hoppipを使っている皆さんにとっても、更新を何度もするのは面倒でしょう。

そこで、全く新しいアプローチを試すことにしました。今回の変更点はそれだけです。ここからはそのアプローチについて説明するだけなので、興味のない人は飛ばしてください。

まず、Hitomiの画像のURLについて説明します。
Hitomiの画像のURLは下記のようになっています。

https://$1$2.hitomi.la/$3/$4/$5/$6.$7

$1はaかbかcのアルファベット1文字で、画像ごとに違い、ある計算で導かれます。この計算がころころ変わります。
$2はaかbです。現在のところは、avifとwebpがaで、それ以外(jpgとかpngとか)がbです。しかしこれもたまに変わります。
$3はimagesかwebpかavifの3種類です。これは画像のファイル形式で決まり、webpならwebp、avifならavif、それ以外なら全部imagesです。
$4と$5は$6から導かれます。では$6は何かというとハッシュです。具体的には、ランダムな64桁の16進数です。
そして$4はそのハッシュの最後の1桁で、$5は最後の1桁の隣の2桁です。
たとえばハッシュが「~875914df368」だった場合、$4は8で$5は36です。
つまり、$4と$5は$6が分かれば確定します。
$7は画像の拡張子です。つまりjpgとかwebpとかavifです。基本のファイル形式であるjpgやpngはどの画像にもありますが、webpとavifは存在する画像とそうでない画像があります。

で、ポイントはどれかというと、$1と$2です。なぜかというと、$1と$2以外は画像ごとに固定で、ダウンロードする際に簡単に調べられるからです。
$1と$2も調べようと思えば調べられます。実際、今までそうしてきました。
ただ、それではやはりきりがないので、今回でこの方法はやめ、新しい方法をとることにしました。

一言で言えば、「総当たり式」です。
つまり、$1と$2は全部で6パターンしかないので、正解のURLに当たるまで順番に試そうという作戦です。
この方法なら、上に記したURLの仕様が変わらない限りは、確実に画像を落とせます。
Hitomiの画像URLの仕様は僕が初めてHoppipを作ったときから一切変わっていないので、おそらく今後も変わらないと思います。変わらないことを祈る。

ただし、この方法には1つ欠点がありました。
1枚の画像をダウンロードするために最大で6回異なるURLにアクセスすることになるので、とても無駄が多いです。
つまり、ダウンロード速度が遅くなる、ということです。
実は、ずいぶん前にこの方法は思いついていて、実際に試してみたことがあるのですが、普通に落とすのとそれほど変わらないくらいに遅くなってしまい、ボツにした経緯があります。
しかし最近、総当たり式でも処理が遅くならない方法を思いつき、今回の更新ではその方法を用いていますので、たぶんダウンロード速度は今までとほぼ同じだと思います。

ということで、説明は以上です。

Hoopip Ver 2.0.0のダウンロードは下記のダウンロードリンクから自分のブラウザに合ったものを選んでダウンロードしてください。

Hoppip Ver 2.0.0のダウンロードリンク
Chrome版
Firefox版
Kiwi版

Chrome版のインストール方法
1. 古いバージョンのHoppipを削除する
2. 上記のダウンロードリンクからzipファイルをダウンロード
3. ダウンロードしたzipファイルを拡張機能のページ(chrome://extensions/)にドラッグ&ドロップ

Firefox版のインストール方法
1. 古いバージョンのHoppipを削除する
2. 上記のダウンロードリンクからxpiファイルをダウンロード
3. ダウンロードしたxpiファイルをアドオンのページ(about:addons)にドラッグ&ドロップ

変更ログ
Ver 2.0.0
・Hitomi.laの仕様変更に自動的に対応する機能を廃止
・画像のダウンロードリンクを生成する処理を大幅に書き換え
・一部コードの最適化

あと、今後Hoppipの更新はバグの報告や新機能の要望、あるいは今回のようなHitomi.laの大幅な仕様変更などによるHoppipの死亡でもない限りは基本的にいたしません。
もう機能的には十分だと思うので。
それに正直最近モチベーションが下がっている……。

バグの報告やリクエスト(新しい拡張機能でも可)、質問などはコメントでお願いします。

コメント

  1. Hitomi.laまた変更になったんですね。

  2. 数日前から利用させてもらってます!
    とても欲しかった機能なのでありがたいです!
    更新大変だとは思いますが頑張ってください。

    • kiwi版は無事機能してくれました!!
      更新ありがとうございます!

  3. エラー等もなく素晴らしい拡張機能だと思いました。
    勝手な要望で申し訳ないのですが、アーティスト名を追加する機能が
    ほしいです。検討していただけないでしょうか。

    • アーティスト名を追加する機能というのは、具体的にどのような機能でしょうか。
      もう少し具体的に説明していただければ、こちらも検討しやすくなります。

  4. ご返信ありがとうございます。今だと作品をダウンロードした際、フォルダ名が
    「作品タイトル」のみで保存されると思うのですが、「作者名+作品タイトル」の形で
    保存する選択肢がほしいと思いました。

    • なるほど。
      それくらいならできると思います。
      検討してみます。

  5. 初めて拡張機能を使う者です。hitomi.laのダウンロード方法を調べていたところあなたのサイトにたどり着きました。kiwi browserというアプリを入れて拡張機能のデベロッパーモードをオンにしてHoppip2.0.0をロードした結果、DownloadがFastDownloadに変わり背景も紺色になりました。これでやり方は合っているでしょうか?ちなみに最初はFastDownload押しても紺色の螺旋模様のままでゲージは進みませんでしたが、このコメントを書いている間にもう一度押して見るとすごいスピードでダウンロードされ、作品名の書かれたフォルダに画像が順番通りに整理されてました。

    • 僕はスマホを持っていないので実機で動作確認していませんが、画像がダウンロードできているのであればHoppipは正常にインストールされていると思います。

      Hoppipの使い方は単純で、Fast Downloadボタンを押して、あとはボタンの表示がDoneに変わるまで待てばいいだけです。
      ゲージが縞模様のときはダウンロード準備中ですので、しばらく待てばダウンロードが勝手に進みます。

      あと、注意点として、ダウンロード中はタブを閉じたり、同じタブで違うページにアクセスしないでください。ページの更新も駄目です。ダウンロードが止まってしまいます。

  6. ご返信ありがとうございます。おかけさまでモヤモヤしていた点がハッキリとしたので安心して使えます。hoppipしばらく愛用させていただきます!

  7. url_from_url_from_hash関数だけそのまま利用出来ないのでしょうか?

    • 拡張機能の仕様上、それはできません。
      つまり、ページに存在する変数や関数を、自分が定義したもののように呼び出すというのは、基本的にはできないようになっています。

      参考リンク
      https://note.com/kkotaro0111/n/nd527d31957a7

      • そうなんですねTampermonkeyのユーザースクリプトで出来るので勘違いしていました

タイトルとURLをコピーしました