コード認識・歌詞文字起こし・楽譜エクスポートのためのバージョン付き 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-Limit・X-RateLimit-Remaining・X-RateLimit-Reset ヘッダーが付きます。上限に達すると Retry-After ヘッダー付きの 429 が返るので、従ってください。
| ステータス | 意味 |
|---|---|
400 | リクエストが不正(誤った URL・不明な形式) |
404 | job_id が存在しない |
409 | ジョブは存在するが未完了またはエクスポート不可 |
413 | アップロードが最大サイズを超えている |
415 | 音声ファイルとして認識できない |
429 | レート制限または同時実行数の上限に到達 |
503 | 一時的に利用不可(quota バックエンド停止) |
完全なリファレンスを下に読み込みます — すべてのエンドポイントを閲覧し、このページから直接リクエストを試せます。
対話型リファレンスを読み込んでいます…