はじめに
みなさんお久しぶりです。去年の10月から更新をサボりにサボり年も明けてもう3月です。あ、あけましておめでとうございます。
私の近況としましては昨年12月に引っ越したり、年明けて1月には人生2回目のDJを回したりと色々やってました。2月は解放された快感から一生カードショップに潜ってEDHしまくったり。さて3月は何をしたのかというとMac用のツール作ってました。
Google Antigravity
みなさんは「Google Antigravity」というツールをご存知でしょうか。これはGoogleが出してるAI機能付きのVScodeです。VScodeはマイクロソフトの出してるコード書いたりするエディタと呼ばれるいわゆる高機能なメモ帳です。
件のAntigravityですが、画面の左っかわにあるチャットに「こういうアプリ作って~」と要件を投げたらなんと全自動でそれを作ってくれる夢のようなツールです。
そんな夢のツールで色々遊んでいて今回は私のお悩み解決として「Genre Auto Labeler」というMacbookのローカルで動作するツールを作りました。
Genre Auto Labelerとは?
まずはこのツールを作成するに至った背景についてお話しましょう。以前いつかの機会に秋葉原雷神にてプレイリストを作っていると「インテリジェントプレイリストで作ると良いよ」とお話を貰い、色々いじってみるとこれがまあ便利なこと。細かいバージョンはわかんないですが、Rekordboxの標準機能で「インテリジェントプレイリスト」という機能があり、曲名やアーティスト名、BPM、ジャンル等々楽曲のあらゆる情報でフィルターを掛け、合致する曲を自動で全部そのプレイリストに突っ込んでくれるという便利なものです。
こらぁ便利。そう思った次第ですがジャンルで引っ掛けようにも私の持ってる楽曲たちのほとんどは取り込んでそのまま使ってるものばかり。曲数も気づけば2000曲くらいあってその全部に手作業でジャンルを振り分けるのなんてとてもできやしません。
そこで本ツールの開発に至ったわけです。
この「Genre Auto Labeler」略して「GAL(ギャル)」はローカルにあるフォルダを指定し、フォルダの中にある音楽ファイルをAIに読み込ませ、AIの膨大なデータベースの中から類似の波形を持ってる楽曲らを見繕い、音楽ジャンルとして該当しそうな上位3つをファイルのメタタグに「/」区切りで登録してくれるというものです。
↓Github↓
https://github.com/roman-ease/Genre_Auto_Labeler
セットアップ
必要なもの
- macOS (Intel / Apple Silicon)
- Python 3.11 以上
Python がまだ入っていない場合:
# Homebrew(パッケージ管理ツール)でインストール brew install python@3.11
起動方法
- Finder で
run.commandをダブルクリック - 初回はターミナルが開き、自動で以下が実行されます:
- Python 仮想環境の作成
- 依存パッケージのインストール
- AIモデルのダウンロード(約20MB、初回のみ)
- ブラウザが自動で開き、GUI が表示されます
初回起動時の注意:
run.commandがダブルクリックで開けない場合、以下の手順で実行権限を付与してください:chmod +x run.commandその後、再度ダブルクリックしてください。
ターミナルから起動する場合
cd /path/to/pj_rhythm_labeler source venv/bin/activate python -m app.server
ブラウザで http://127.0.0.1:8080 を開いてください。
使い方
ジャンル解析
- GUIの入力欄に音楽ファイルが入ったフォルダのパスを入力
- 「ジャンル解析を開始」ボタンをクリック
- 進捗バーで状況を確認
- 結果テーブルで各ファイルの処理結果を確認


Genre更新ルール
- 既存ジャンルは必ず維持(消しません)
- AI推定ジャンルを最大3枠に収まる範囲で追記
- 区切り文字は
"/"に統一 - 例: 既存
"Rock"+ AI推定"Blues", "Pop"→"Rock/Blues/Pop"
ロールバック(元に戻す)
- 「実行履歴」タブを開く
- 戻したい実行の「↩ 戻す」ボタンをクリック
- 確認ダイアログで「ロールバック実行」をクリック
あとがき
という感じでこんなツールを作ってみました。
これのお陰で信じられないくらいインテリジェントプレイリスト作りが捗っております。
ご利用に際しては、各自の環境でビルドしていただく形になります。
あくまで「自分のMacで動けばOK」という超個人的な動機で、Antigravityという相棒に丸投げして作ったものです。そのため、不具合報告をいただいても「ごめん、わからん!」としか答えられないのが現状です。
動作保証はありませんが、インテリジェントプレイリストの精度に革命を起こしたい方は、ぜひフォークして自分好みに改造してみてください。
