手動リリース登録 運用ドキュメント
概要
MusicBrainz に登録されていないリリース(2023年以降のライブアルバム等)を
data/inputs/manual-releases.json に手動で追加・管理するための手順書。
sync-discography で取得できる MusicBrainz 登録済みリリースとは別ファイルで管理し、
アプリ起動時にマージして表示する(#612 で実装予定)。
ID 命名規則
手動登録リリースの id は以下の形式で付与する。
manual-<slug>
| 要素 | 説明 |
|---|---|
manual- |
手動登録であることを示すプレフィックス(必須) |
<slug> |
リリースタイトルを kebab-case に変換した文字列 |
slug の変換ルール
- 日本語タイトルは ローマ字または英語に意訳 する(例: 「コンサートツアー」→
concert-tour) - スペース・記号は
-(ハイフン)に置換する - 英数字は小文字に統一する
- 年度・開催地などの識別情報は末尾に付加する
例
| リリースタイトル | id |
|---|---|
| Morning Musume. Concert Tour 2023 Autumn | manual-concert-tour-2023-autumn |
| モーニング娘。’23 コンサートツアー秋 | manual-concert-tour-23-autumn |
| Hello! Project 2024 Winter Kanshasai | manual-hp-2024-winter-kanshasai |
JSON テンプレート
ファイル構造
{
"releases": [
{
"id": "manual-<slug>",
"title": "リリースタイトル",
"releaseDate": "YYYY-MM-DD",
"format": "<format>",
"source": "manual",
"sourceUrl": "https://...",
"tracks": [
{
"id": "manual-<slug>-1-1",
"mbTrackId": "manual-<slug>-1-1",
"trackNumber": 1,
"discNumber": 1,
"title": "曲タイトル",
"length": 240000
}
]
}
]
}
フィールド説明
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
id |
string |
✅ | manual-<slug> 形式(命名規則を参照) |
title |
string |
✅ | リリースの正式タイトル |
releaseDate |
string |
✅ | リリース日(ISO 8601 形式: YYYY-MM-DD) |
format |
ReleaseFormat |
✅ | リリース種別(下記の選択肢を参照) |
source |
string |
✅ | 常に "manual" を指定する |
sourceUrl |
string |
✅ | 参照元 URL(公式サイト・Wikipedia 等)。不明な場合は "" を指定する |
tracks |
Track[] |
— | 収録曲一覧(任意。記入できる場合のみ設定する) |
format の選択肢
| 値 | 用途 |
|---|---|
single |
シングル |
album |
アルバム(スタジオ録音) |
ep |
EP |
live |
ライブアルバム・コンサート映像 |
soundtrack |
サウンドトラック |
compilation |
コンピレーション |
other |
その他 |
ライブアルバム・コンサート映像は "live" を使用する。
トラック ID の命名規則
手動登録リリースのトラック id / mbTrackId は以下の形式とする(MusicBrainz UUID の代替)。
manual-<slug>-<disc番号>-<track番号>
例: manual-concert-tour-2023-autumn-1-1(ディスク1・トラック1)
id と mbTrackId には同じ値を指定する。
記入手順
1. 情報収集
以下の情報を公式サイト・Wikipedia・CDジャーナル等で確認する。
- リリースタイトル(正式表記)
- リリース日
- 種別(シングル / アルバム / ライブアルバム 等)
- 収録曲一覧(曲名・曲順・ディスク番号)
- 曲の長さ(秒数・ミリ秒):不明な場合は
lengthを省略する
2. ID を決定する
命名規則に従い manual-<slug> 形式の ID を決定する。
既存の ID との重複がないことを確認する。
grep '"id"' data/inputs/manual-releases.json
3. エントリを追加する
data/inputs/manual-releases.json を編集し、releases 配列にエントリを追加する。
- トラック情報がない場合は
tracksフィールドを省略してよい - 収録曲が複数ディスクにわたる場合は
discNumberを設定する
4. 動作確認
JSON の構文に誤りがないことを確認する。エディタの JSON バリデーション機能、または以下のコマンドを使用する。
bun -e "JSON.parse(require('fs').readFileSync('data/inputs/manual-releases.json', 'utf8')); console.log('OK')"
記入例
{
"releases": [
{
"id": "manual-concert-tour-2023-autumn",
"title": "Morning Musume.'23 Concert Tour Autumn ~Nonstop!~",
"releaseDate": "2024-03-27",
"format": "live",
"source": "manual",
"sourceUrl": "https://www.up-front-works.jp/release/detail/EPBE-5632",
"tracks": [
{
"id": "manual-concert-tour-2023-autumn-1-1",
"mbTrackId": "manual-concert-tour-2023-autumn-1-1",
"trackNumber": 1,
"discNumber": 1,
"title": "OVERTURE ~Nonstop!~",
"length": 120000
},
{
"id": "manual-concert-tour-2023-autumn-1-2",
"mbTrackId": "manual-concert-tour-2023-autumn-1-2",
"trackNumber": 2,
"discNumber": 1,
"title": "恋愛レボリューション21",
"length": 246000
}
]
}
]
}
カバーアートについて
manual- プレフィックスの手動登録リリースは MusicBrainz のリリースグループ MBID を持たないため、
scripts/patch/fetch-release-images.ts(Cover Art Archive 経由)によるカバーアート自動取得の対象外。
カバーアートを表示したい場合は、タイムラインの events テーブルの imageUrl フィールドに
直接画像 URL を登録すること(Vercel Blob にアップロード後、DB を手動更新する)。
関連ファイル
| ファイル | 説明 |
|---|---|
data/inputs/manual-releases.json |
手動登録リリースデータ |
Neon releases テーブル |
MusicBrainz 同期リリースデータ(lib/releases.ts の fetchReleasesFromDB() 経由で参照) |
docs/design/common/data-design.md |
データ設計書 |
types/release.ts |
Release / Track / ReleaseFormat 型定義 |
docs/operations/discography-operations.md |
MusicBrainz 同期リリースのカバーアート取得手順 |