Magic Chords 公開 API

コード認識・歌詞文字起こし・楽譜エクスポートのためのバージョン付き REST API。すべてのエンドポイントは /api/v1/ 配下にあり、JSON の送受信に対応します(アップロードと生成ファイルを除く)。公正な利用枠の範囲で匿名の開発者に開放されています。

各エンドポイントは、実装から直接生成され常に最新の埋め込みリファレンスで対話的に確認できます。

仕組み

分析と文字起こしは非同期で実行されます。ジョブを送信すると job_id が返り、ステータスを確認し、処理が完了したら結果全体を取得します。

クイックスタート

曲の URL でコード分析を送信する:

curl -X POST https://magic-chords.dev/api/v1/analyze/url \
  -H "Content-Type: application/json" \
  -d '{"url": "https://www.youtube.com/watch?v=VIDEO_ID"}'

レスポンスにはジョブ ID が含まれます:

{"job_id": "bBm3Zx8kQ7...", "status": "processing"}

ステータスが complete になるまでポーリング:

curl https://magic-chords.dev/api/v1/jobs/bBm3Zx8kQ7...

コード・テンポ・キー・構成を取得:

curl https://magic-chords.dev/api/v1/jobs/bBm3Zx8kQ7.../result

またはエクスポート成果物を直接ダウンロード(pdf, midi, musicxml, txt, csv, json):

curl -o chords.pdf \
  "https://magic-chords.dev/api/v1/jobs/bBm3Zx8kQ7.../export?format=pdf"

URL の代わりにローカル音声ファイルを分析する:

curl -X POST https://magic-chords.dev/api/v1/analyze \
  -F "file=@song.mp3"

エンドポイント

メソッドとパス用途
POST /api/v1/analyzeアップロードした音声のコード分析を送信(マルチパートフォーム)
POST /api/v1/analyze/urlメディア URL でコード分析を送信
POST /api/v1/transcribeアップロードした音声の歌詞文字起こしを送信
POST /api/v1/transcribe/urlメディア URL で歌詞文字起こしを送信
GET /api/v1/jobs/{job_id}ポーリング用の簡潔なステータス
GET /api/v1/jobs/{job_id}/result完全な結果(コード、単語、テンポ、キー…)
GET /api/v1/jobs/{job_id}/export?format=…完了した分析を pdf/midi/musicxml/txt/csv/json でエクスポート
GET /api/v1/limits現在の quota ポリシー(カウント対象外)

レート制限

匿名クライアントは IP アドレスごとに制限されます。現在の既定値(/api/v1/limits でも確認できます):

バケット制限
ジョブ送信(heavy)1 時間あたり 20 件/クライアント
ステータス・結果・エクスポートの取得(light)1 分あたり 60 回/クライアント
同時実行ジョブ数クライアントごとに 2 件

課金対象のレスポンスには X-RateLimit-LimitX-RateLimit-RemainingX-RateLimit-Reset ヘッダーが付きます。上限に達すると Retry-After ヘッダー付きの 429 が返るので、従ってください。

エラー

ステータス意味
400リクエストが不正(誤った URL・不明な形式)
404job_id が存在しない
409ジョブは存在するが未完了またはエクスポート不可
413アップロードが最大サイズを超えている
415音声ファイルとして認識できない
429レート制限または同時実行数の上限に到達
503一時的に利用不可(quota バックエンド停止)

注意事項とマナー

対話型APIリファレンス

完全なリファレンスを下に読み込みます — すべてのエンドポイントを閲覧し、このページから直接リクエストを試せます。

対話型リファレンスを読み込んでいます…