MP3 のジャンル分けをどう決めたか ― 134 項目の一覧から、Discogs の「ジャンル+スタイル」にたどり着くまで
家の NAS に MP3 をためています。これを一覧・検索できるデータベースを作っているのですが、いちばん悩んだのがジャンルの分け方でした。DJ もするので細かく分けたい一方、MP3 のタグや音楽サービスのジャンルは、ソースごとに名前も細かさもばらばらです。9月から10月末まで、AI と相談しながら考えが何度か変わったので、その経緯をまとめます。まだ決まっていないことも、そのまま書いています。
全体の流れ

- 9月はじめ:よく使われるジャンルを並べた(134 項目)
- 9月:大分類 > ジャンル > サブジャンル > スタイルの4階層に整理
- 9月:各サービスのジャンルとの対応表を持つ「統合ジャンルマスター」を作った
- 10月末:Discogs のジャンル(15)> スタイル(757)を基本にする方向に切り替えた
1. まず「よく使うジャンル」を並べた
最初は、MP3 のジャンルタグ(ID3 タグの TCON。曲のジャンルを入れる欄)によく入る値を、英語と日本語の表にしました。Pop・Rock・Hard Rock から House・Techno、J-Pop・K-Pop まで、全部で 134 項目です。
ところが並べてみると、ジャンルではないものが混ざっていました。
Japanese・Koreanは地域や言語の分け方Instrumental・Vocal・Acousticは演奏の形Film・Game・Fitness & Workoutは用途やメディアの分け方Podcast・Spoken Wordはそもそも音楽ではないHip-HopやR&Bが、別々の大分類の下に重なって出てくる
ここで「音楽のジャンル」と「地域・用途・演奏の形」は分けて持つ、という考えが出てきました。これは最後まで変わっていません。
2. 階層にする(3階層 → 4階層)
ID3 の TCON には親子関係の決まりがなく、文字を1つ入れるだけです(古い ID3v1 には 0〜79 の番号付きのジャンル一覧があり、Winamp というソフトが 80 番以降を独自に足しています)。そこで、アプリの中では階層を持たせることにしました。最初は「大分類 > ジャンル > サブジャンル」の3階層、続いて「スタイル」を足した4階層にしました。
あわせて、1つの欄に Electronic > House > Deep House とまとめて入れるのではなく、データベースでは項目を分け、MP3 に書き込む値は別に持つ形にしました。
| 項目 | 例 | 使い道 |
|---|---|---|
category | Electronic | 大分類 |
genre | House | ジャンル |
subgenre | Deep House | サブジャンル |
id3_genre | Deep House | MP3 の TCON に実際に書く値 |
3. Apple Music などのジャンルを取り込む
手で全部付けるのは無理なので、音楽サービスのジャンルを参考にします。Apple Music の API では、アルバムや曲に genreNames というジャンルの配列が付いてきます。ただ、そのまま使えるわけではありませんでした。
["R&B/Soul", "Music"]のように、どの曲にも付くMusicが混ざる → 分類には使わないMusic Videos・Fitness & Workoutはジャンルではない → メディアの種類や用途のタグへ回すElectronicとだけ返ってきても、House なのか Techno なのかは分からない
3つ目が大事なところで、分からない階層を推測で埋めると、誤った分類になります。そこで「確定できる階層までだけ確定し、残りは空のままにする」ことにしました。
| 返ってきた値 | 大分類 | ジャンル | サブジャンル |
|---|---|---|---|
| Electronic | Electronic | (空) | (空) |
| House | Electronic | House | (空) |
| Deep House | Electronic | House | Deep House |
また、ジャンルの情報源は Apple Music だけにせず、MusicBrainz・Discogs・今の MP3 のタグなども同じ表で対応させられる形にしました。
4. 統合ジャンルマスターを作った
ここまでの考えを、表の形にまとめたのが「統合ジャンルマスター」です。
- 内部のジャンル:121 件(4階層)
- 各サービスの値との対応:1,313 件(Apple Music・Discogs・MusicBrainz・ID3v1・ID3v2・rekordbox・Serato)
- 別名(英語・日本語の言い換え):596 件
決めたルールは次のとおりです。
- 元のジャンルの値は捨てない(どのサービスの何という値だったかを残す)
- 大まかなジャンルしか返ってこないときは、上の階層までだけ対応させる。下の階層を作り上げない
- 対応表に無い値は、勝手に近いものへ変えず「未対応」として残し、あとで人が対応を決める
- ID3v1 の本来の番号(0〜79)と Winamp の追加分(80〜147)は、別のものとして扱う
- rekordbox・Serato のジャンルは自由入力の文字で、決まった一覧は無いものとして扱う
5. 使ってみて見えた問題
実際の曲(ZZ Top や The Zombies のフォルダなど)のタグを読み出して照らし合わせると、統合ジャンルマスターには次の問題がありました。
- DJ で使うには細かさが足りない:House 系や Soul / Funk 系の細かいジャンルが無い
- サブジャンルとスタイルの区別があいまい:どちらに置くべきか迷うものが多い
6. Discogs を基本にする(2026年10月末)
そこで、自分で階層を作るのをやめ、レコードのデータベースとして知られる Discogs のジャンル分けを基本にする方向に切り替えました。Discogs は「ジャンル」と、その下の「スタイル」の2段で、ジャンルは 15、スタイルは 757 あります。一覧は、Discogs の公式のデータから抜き出した公開データを元に Excel にしました。
- 基本は Discogs の2段の木構造。Discogs に無いものだけ独自に足す(方針案)
- スタイルの中には、どのジャンルの下か分からないものが 176 件ある → 必要になったものから決める
- Discogs のジャンルは作品(レコード)単位で、1枚に複数付く → 取り込むときに主なものを1つ選び、元の値はすべて残す
7. ジャンルの付け方(方針案)

- 受け継ぎ:アーティスト → アルバム → 曲の順に受け継ぐ。ふだんはアーティスト単位で付け、例外の曲だけ上書きする
- 数:曲の主ジャンルは1つ。アーティストは複数付けられ、そのうち1つを主ジャンルにする
- 集計しない:曲のジャンルを数えてアーティストのジャンルにはしない。アーティストのジャンルは人が決める値として別に持つ
- タグを分ける:地域・年代・シーン(Rare Groove など)・用途は、ジャンルとは別の「タグ」として複数付けられるようにする
1. で出てきた「ジャンルと、地域・用途を分ける」という考えが、ここでタグという形になりました。
8. まだ決まっていないこと
- MP3 の
TCONや DJ ソフトに書く値を、スタイル名(例:Boogie)にするか、ジャンル名(例:Funk / Soul)にするか - 統合ジャンルマスターを、対応表として残すか、Discogs の形に置き換えるか
- Discogs に無いスタイル(Rare Groove・Northern Soul・Modern Soul・Soulful House・Afro House など)を、タグにするか、独自のスタイルとして足すか
まとめ
- ジャンルの一覧には、地域・用途・演奏の形が混ざりやすい。最初に分けておくと後が楽になる
- サービスから取ったジャンルは、元の値を捨てずに残し、分からない階層は推測で埋めない
- 自分で階層を作るより、細かい分け方がそろっている Discogs を土台にして、足りない分だけ足すほうが進めやすかった
- 細かい付け方と、MP3 に書く値は、これから実際の曲で試しながら決める
