本番環境

Mixanalytic APIドキュメント

https://mixanalytic.comの公式APIリファレンス。このAPIで音声をアップロードし、モジュールの選択とコンパクト/完全レスポンスモードに対応したAIミックス分析を受け取れます。

ベースURL: https://mixanalytic.com/api

認証

すべてのリクエストで、X-API-KeyヘッダーにAPIキーを含めて送信してください。

curl -X GET "https://mixanalytic.com/api/test-data" \ -H "X-API-Key: YOUR_API_KEY"
  • 401 キーが未指定または無効
  • 403 APIアクセス権のない無料プランのキー
  • 429 レート制限超過

スコープ: writeはMix Analyzerへのアップロード/分析用です。contentは機密情報を除去したコンテンツ調査データを読み取ります。content_writeは非公開コンテンツ下書きを保存します。コンテンツ用のスコープは管理者専用です。

エンドポイント

メソッド パス 用途
GET/api/test-data接続/認証の確認。
POST/api/upload音声ファイルのアップロード+分析。
GET/api/analyze/<file_id>ファイルIDを指定して再分析(元のファイルが残っている場合)。
GET/api/content/analysis-feedコンテンツエージェント向けの、管理者専用で機密情報を除去した調査フィード。
POST/api/content/draftsコンテンツエージェント向けの、管理者専用の下書き保存/更新エンドポイント。
GET/api/ai-stats?days=30AI分析の使用統計。

アップロードリクエスト

POST/api/upload

フィールド 型 必須 備考
filemultipart fileはい対応形式:mp3、wav、flac、m4a、aac、ogg。最大100MB。
modulesstring/listいいえ省略すると、既定ですべてのモジュールを使用します。
detail_levelstringいいえfull(既定)またはsummary。

detail_levelが無効な場合は400を返します。サイズ超過のファイルは413を返します。

モジュールの選択

modulesで、返される分析モジュールと計算対象の分析モジュールを指定します。

対応形式:

  • カンマ区切りの文字列:modules=frequency_balance,clarity,mood
  • JSON配列の文字列:modules=["frequency_balance","clarity","mood"]
  • 同じキーの繰り返し(クエリ/フォーム):modules=frequency_balance&modules=clarity
  • すべてのモジュール:modules=allまたはmodules=*
モジュール 説明
frequency_balance7帯域の周波数・バランス評価。
dynamic_rangeダイナミックレンジ、クレストファクター、PLR。
stereo_field広がり/位相/相関の指標。
clarityスペクトルの明瞭度・輪郭の指標。
harmonic_content調性と倍音の複雑さ。
transientsアタック、トランジェント密度、低域のパンチ感のデータ。
3d_spatial高さ/奥行き/幅の一貫性。
surround_compatibilityモノラル互換性+位相スコア。
headphone_optimizationヘッドホン再生の最適化スコア。
speaker_optimizationスピーカー再生の最適化スコア。
genreジャンル分類と信頼度。
voiceボーカルの存在感と声の特性。
instruments楽器検出とアレンジ情報。
moodエネルギー/感情価を含むムードプロファイル。
keywords意味に基づくキーワードとタグ。
loudnessLUFS、トゥルーピーク、クリッピング、ストリーミングの目標を測定し、歪み、コーデックによるピーク、プラットフォームでの想定外の変化を避けながら、マスターに十分な音量を持たせましょう。
noiseノイズフロア、電源ハム、ヒス、アーティファクトを測定し、マスタリングで音量や明るさが増して隠しにくくなる前に録音をクリーンにしましょう。
format_quality非可逆圧縮、スペクトルのカットオフ、ビット深度を確認し、リリース前に劣化したMP3、AAC、またはアップスケールされた音源を誤ってマスタリングに使わないようにしましょう。
referenceリファレンス
visualizations生成された分析用ビジュアル素材のURL。
ai_insightsLLMが生成した要約と推奨事項。

レスポンスサイズの制御

detail_levelを使用:

  • full(既定):完全なペイロード
  • summary:フロントエンド/モバイルクライアント向けのコンパクトなペイロード

使用例

1) アップロード+完全な分析

curl -X POST "https://mixanalytic.com/api/upload" \ -H "X-API-Key: YOUR_API_KEY" \ -F "file=@/path/to/track.mp3"

2) アップロード+選択したモジュール

curl -X POST "https://mixanalytic.com/api/upload" \ -H "X-API-Key: YOUR_API_KEY" \ -F "file=@/path/to/track.mp3" \ -F "modules=frequency_balance,dynamic_range,genre,mood,keywords"

3) アップロード+選択したモジュール+要約ペイロード

curl -X POST "https://mixanalytic.com/api/upload" \ -H "X-API-Key: YOUR_API_KEY" \ -F "file=@/path/to/track.mp3" \ -F "modules=frequency_balance,stereo_field,clarity,ai_insights" \ -F "detail_level=summary"

4) テストエンドポイント

curl -X GET "https://mixanalytic.com/api/test-data" \ -H "X-API-Key: YOUR_API_KEY"

5) クライアント側JavaScript

const formData = new FormData(); formData.append('file', fileInput.files[0]); formData.append('modules', 'frequency_balance,dynamic_range,mood,ai_insights'); formData.append('detail_level', 'summary'); const res = await fetch('https://mixanalytic.com/api/upload', { method: 'POST', headers: { 'X-API-Key': 'YOUR_API_KEY' }, body: formData }); const data = await res.json(); console.log(data.analysis, data.returned_modules);

標準レスポンスメタデータ

分析成功時のレスポンスに含まれる内容:

  • requested_modules
  • returned_modules
  • detail_level
  • available_modules

エラーコード

状態 意味 よくある原因
400不正なリクエストmodule/detail_levelが無効、ファイルフィールドが未指定、空のファイル。
401認証されていませんAPIキーが未指定、無効、または期限切れ。
403アクセス禁止アカウントのプランでAPIアクセスが許可されていません。
404見つかりません/api/analyze/<file_id> ファイルは利用できなくなりました(プライバシー保護のための削除)。
413ペイロードが大きすぎますファイルが100MBを超えています。
429レート制限超過分・時間・日ごとのリクエスト数が多すぎます。
500サーバーエラー分析/実行時の失敗。

フロントエンドに関する注意

  • ウェブ/モバイルクライアントには、detail_level=summaryを推奨します。
  • 遅延とペイロードサイズを減らすため、初回表示に必要なモジュールだけをリクエストしてください。
  • 429と500には、再試行とバックオフで対応してください。
  • 有効期間の長い本番環境のキーを、公開バンドルに含めないでください。