0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Suno SDK シリーズ 02:ポーリングとダウンロードの落とし穴、404/502 から audio_url 成功まで

0
Posted at

Suno SDK シリーズ 02:ポーリングとダウンロードの落とし穴、404/502 から audio_url 成功まで

Suno API result validation

Suno のような音楽生成 API では、タスクが succeeded になっても、最終ファイルがすぐに取得できるとは限りません。今回の実測では、公開 /content URL は 404/502 になりましたが、上流の audio_url は正常にダウンロードできました。

実測結果

対象タスク:

task_ac90b23619334516

ポーリング結果:

{
  "status": "succeeded",
  "format": "mp4",
  "url": "https://crazyrouter.com/v1/videos/task_ac90b23619334516/content"
}

公開 content URL の検証:

HEAD crazyrouter.com content URL: HTTP 404
HEAD api.crazyrouter.com content URL + Authorization: HTTP 404
GET api.crazyrouter.com content URL + Authorization: HTTP 502

この時点だけを見ると、「生成結果のダウンロードは使えない」と判断しがちです。しかし、管理側のタスク詳細には上流の実メディア URL が含まれていました。

data.data.resultJson.data[0].audio_url
data.data.resultJson.data[0].image_url

audio_url の検証結果:

HEAD audio_url: HTTP 200, Content-Type: audio/mp3
GET audio_url: HTTP 200, Content-Type: audio/mp3, 412326 bytes

何が失敗し、何が成功したのか

項目 結果
タスク送信 成功
タスクポーリング 成功、succeeded
公開 /v1/videos/{task_id}/content 失敗、404/502
上流 resultJson.data[0].audio_url 成功、MP3 を取得
実用可否 生成結果は可用。ただし公開プロキシは修正または補完が必要

この違いをログに残さないと、原因を誤って「Suno の生成失敗」と分類してしまいます。正しくは「生成は成功、公開 content プロキシが上流 audio_url を解決できていない」です。

実装で必要なチェック

ダウンロード処理では、少なくとも次を確認します。

HTTP status: 200 または許容する 206
Content-Type: audio/* などのメディア型
Content-Length または実ダウンロードサイズ: エラーページより十分大きい
必要なら ffprobe などで再検証

エラーページを .mp3.mp4 として保存してしまう実装は避けるべきです。

推奨リトライ戦略

1回目: succeeded 直後にダウンロード
2回目: 10 秒後
3回目: 30 秒後
4回目: 60 秒後
最後: resultJson.data[0].audio_url を再確認

それでも失敗する場合は、task_failed ではなく content_unavailable のように分類すると、運用上の切り分けがしやすくなります。

まとめ

今回のポイントは単純です。

公開 /content の失敗 = Suno 生成失敗

ではありません。

Suno の実メディアは resultJson.data[0].audio_url にあり、そこからは正常に MP3 を取得できました。プロダクションでは、この URL を明示的に解析し、必要に応じて自社ストレージへ保存するのが安全です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?