バトガのカードは全部で1131枚?

背景

バトガがサービス終了するのでカードデータを全て保存することにした。

ただし、パケットキャプチャからファイル名をリスト化しただけでは持っていないカードについてはダウンロード用のURLを得ることができない。

そこで今回は “存在しそうな” 連番URLを全て叩いて実際にファイルが存在するURLを取得することにした。

カードの種類

  • card.unity3d
    • 最も基本的なファイル
    • 1.0.52向けと1.1.0向けがある
    • 合計1131枚(のはず)
  • card_full.unity3d
    • 初期のレアリティがノーマルのものにだけ存在
    • 全94枚(のはず)
  • card_small.unity3d
    • 不明
  • card_middle.unity3d
    • 不明
  • card_bust_up.unity3d
    • 多分アイコン画像みたいなやつ

まあぶっちゃけるとcard.unity3dがこの中で一番ファイルサイズが大きいのでこれだけ取得できれば問題ないはずである。

全通り試して検索した

どうも1.1.0と1.0.52で配信されているカードの種類が違うようだ。

ある種類のカードはバージョン指定を1.0.52にすると取得できず、逆もまたしかりというわけである。

全件取得プログラムを書いた

全部取得するのに四時間ほどかかったが、なんとか取得することに成功した。

バトガの非公式wikiによると全1131枚とのことなので、多分合っていると思う。

取得したファイルをリストして、それにダウンロード用のURLを貼り付ければファイルが存在するURLを全て一気にリスト化できるというわけだ。

ここまで書いてアレなんですが

パケットキャプチャを眺めていたら “Card-Common_V2-1040074-card.unity3d?v=100100010” というファイルが見つかりました。

あれ、カードって18種類じゃないの??

というわけで再度プログラムを走らせて取得したカード枚数は1755枚!!

おい、600枚くらい増えたんだが???

というわけで1755枚について取得可能なURLを全部生成しました!!!

約700KBのテキストファイル

こんなURLだけが書かれたテキストが延々と7000行くらい続きます…

ついでにBGDownloaderもバグがあったのでv1.01にアップデートしました。

更新点

  • URLチェックを厳密にした
    • テキストファイルからの改行コードを削除するようにした
    • これによってURLを自分で指定できるように
  • ファイル名生成チェック
    • 以前は適当にファイル名をつくっていたが、それを厳密に
    • どんなURLを入れてもちゃんと動くはず
  • Windows向けに対応
    • バグをちょっと減らしました
  • URLリストチェック機能
    • 誤って違うURLなどを入力した場合にパスするように

サーバ負荷を考えて一秒に一回のリクエストしか送れないので、全部ダウンロードするには二時間くらいかかります。

任意のURLに対応しているので、URLがリスト化できればBASIC認証とかCOOKIE認証がないならなんでもダウンロードできます。

まだできてないこと

  • GirlVoiceIdol-01-voice_036.unity3d
    • 音声データと思われる
    • 多分各キャラ187種類くらいある
  • Card-Model-Body-c_body_04_op_01.unity3d
    • Headも似たようなファイルがある
    • ファイル名の命名規則がよくわからない
    • 全部コンプはめんどうかも…

最後に

とりあえずバトガデータ収集記事は一旦終了かな。

また、気が向いたらやります。次はウェブスクレイピングがしたいので。