okaponta / bms_download_helper

BMS譜面収集を効率化するためのスクリプト

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

概要

BMS譜面収集を効率化するツールです。

難易度表のURLを入力すると曲一覧を取得し、
リストビュー上で選択した曲の本体・差分のURLをブラウザで開きます。
また、ブラウザのダウンロードフォルダからBMS用のファイルを検出し、
自動で展開します。差分ファイルも適切な本体フォルダに移動します。

同様な機能を持つ既存のソフトが私のPCでは動かなかったので、
多くの環境で動作するPython3(+tkinter)で書いています。

image

動作環境

下記の環境で確認しています。

OS Windows10 64bit (22H2)
CPU Core i7-12700F
GPU NVIDIA RTX3050

注意点

  • 32bitOSでは動作しません。

使用方法

  1. Releaseページから最新のbms_download_helper.zipをダウンロードし、好きな場所に展開する。
  2. bms_download_helper.exeを実行する。
  3. メニューバーの「ファイル」->「設定」より、ブラウザのファイル保存先、BMSデータ保存先を選択する。
    ファイル保存先は本体・差分のzipファイルを置くフォルダを指定してください。(例: C:\Users\(ユーザ名)\Downloads)
    BMSデータ保存先は解凍後のデータを置くトップフォルダを指定してください。その下に各曲のフォルダが作成されます。
  4. RARファイルを扱う場合、WinRARをインストールし、Windowsの環境変数設定からPathにWinRARがインストールされたフォルダのパスを追加してください。
    (RARファイルを本ソフトから展開するのは推奨しておらず、あまり詳しく書いていません。)
  5. メイン画面で難易度表のURL入力欄に所望の難易度表のURLを入力し、読み込みボタンを押す。
  6. ダウンロードしたい曲名を選択し、「DL」ボタンを押す。選択した曲の本体・差分ファイルのURLがブラウザで開かれるので、すべて保存してください。
  7. ファイルのダウンロードが完了後に「parse」ボタンを押すと、3.で設定したBMSデータ保存先にダウンロードしたデータが展開される。

WinRARがショボいのかRARファイルの展開があまり得意ではありません。
zipの10倍以上遅い上に、BGAのような大容量のファイルが展開できないバグがあるようです。
LhaplusやExplzhのようなソフトから手動で展開した方が良いかもしれません。 RARファイルの展開を全てスキップするオプションも用意しています。

設定画面で展開完了したファイルをdoneフォルダに移動する設定にしておくと、
展開に成功したものは勝手に移動してくれるので楽です。
(=展開に失敗したファイルはDLフォルダに残ります)

対応している難易度表フォーマットについて

beatorajaで受け取れるjson形式のフォーマットのみとなります。

発狂BMS難易度表の場合は、オリジナルのものではなく最新フォーマットに対応した下記を使ってください。
http://www.ribbit.xyz/bms/tables/insane.html

このページにある難易度表であれば多分問題ないです。
http://www.ribbit.xyz/bms/tables/table_list.html

注意点

本ツールで扱える圧縮ファイルについて

基本的には、お行儀の悪いやつはケアしない方針です。
1曲分の本体・差分を含むだけのzipファイルの入力を想定しています。

  • 圧縮ファイルの形式はzipとrarのみ対応(7z, lzhや自己解凍形式exeなどには非対応
  • 1階層以内にwav/ogg/bms/bme/bmlファイルがある圧縮ファイルにのみ対応
    • 000.wav(フォルダなし), song_title/000.wav などはOK
    • package/song_title000/000.wav, package/song_title001/000.wav…のような中身には非対応
  • 含まれるファイル数が多すぎる(1万以上)場合、解析・解凍にかなりの時間がかかるので注意
    • GENOCIDE2018のスターターパッケージなどは実質的に扱えないので、手動でのインストールをお願いします
  • チェックサムエラーが出るRAR内ファイルはスルーします(解凍できません)
  • パスワード付きのファイルには非対応

設定画面で指定するフォルダについて

ブラウザのファイル保存先、BMSデータ保存先について、
それぞれに置いてあるファイル・フォルダの数が多いと検索にかかる時間が非常に大きくなってしまいます。
(作者はこまめに整理するタイプなため気付いてませんでした…)

このような場合の対策としては、下記のような対策を取ると良いです。

  • zipファイル保存先についてはブラウザ用DLフォルダdir_Aとは別に新しいzip置き場dir_Bを用意し、
    • 本ツールにはdir_Bを設定する
    • ダウンロードしたファイルをdir_Aからdir_Bに移動してからparseを行う
  • BMSデータ保存先についても全体のBMS置き場dir_Xとは別の置き場dir_Yを用意して、
    • 本ツールにはdir_Yを設定する
  • 一通りparseし終わってからdir_Y内の全フォルダをdir_Xに移動する

現状、それなりにPCの扱いに慣れている人向けツールになってしまっているので、
もう少しツールの機能でどうにかできないかは考えてみます。

ライセンス

Apache License 2.0に準じるものとします。

連絡先

気になった点などありましたら、本リポジトリのIssueやTwitterあたりにお願いします。

Twitter: @cold_planet_

About

BMS譜面収集を効率化するためのスクリプト


Languages

Language:Python 100.0%