すべてのプロダクト
Search
ドキュメントセンター

ApsaraVideo Live:クラウド録画のコールバック通知

最終更新日:Dec 07, 2025

このトピックでは、クラウド録画のコールバック通知のメッセージ形式とパラメーターについて説明します。

クラウド録画コールバックのリトライメカニズム

応答エラーコードが 500 以上の場合、またはリクエストがタイムアウトした場合、システムはコールバックメッセージを再送します。

クラウド録画コールバックのメッセージフォーマット

  • コールバックメッセージは、設定された URL に HTTP または HTTPS 経由で送信される POST リクエストです。

  • リクエストボディは JSON フォーマットです。

  • コールバックメッセージを受信した後、次の応答を返す必要があります:

    ヘッダー

    HttpStatus

    本文

    Content-Type: application/json

    200

    {

    "Code": 0,

    "Msg": "Success"

    }

クラウド録画コールバックのパラメーター

説明

現在、クラウド録画のコールバック通知は、タスクステータスの変更に関連するイベントのみをサポートしています。

コールバックメッセージヘッダー

パラメーター

Content-Type

application/json

ALI-LIVE-TIMESTAMP

このパラメーターは、NotifyAuthKey が有効な場合にのみ渡されます。 例:1748417138

ALI-LIVE-SIGNATURE

このパラメーターは、NotifyAuthKey が有効な場合にのみ渡されます。 例:abcdefgxxx

認証手順:クラウド録画タスクの作成時に有効な NotifyAuthKey を指定した場合、システムはコールバック通知の HTTP リクエストヘッダーに ALI-LIVE-TIMESTAMP および ALI-LIVE-SIGNATURE フィールドを含めます。これらのフィールドを使用して署名を検証できます。この検証により、コールバックメッセージが正当で安全であることが保証されます。

ALI-LIVE-SIGNATURE は次のように生成されます:

ALI-LIVE-SIGNATURE = MD5(MD5CONTENT)
MD5CONTENT = ALI-LIVE-TIMESTAMP + "|" + NotifyAuthKey
  1. コールバックリクエストを受信した後、リクエストヘッダーから ALI-LIVE-TIMESTAMPALI-LIVE-SIGNATURE をフェッチします。

  2. ローカルに保存されている NotifyAuthKey とリクエストヘッダーの ALI-LIVE-TIMESTAMP の値を連結して、MD5CONTENT 文字列を生成します。区切り文字としてパイプ文字 (|) を使用します。

  3. MD5CONTENT 文字列の MD5 ハッシュを計算して署名を取得します。

  4. 計算された署名をリクエストヘッダーの ALI-LIVE-SIGNATURE と比較します。

署名が一致しない場合、リクエストは信頼できないソースからのものです。システムのセキュリティを確保するために、リクエストを拒否する必要があります。

コールバックメッセージ本文

パラメーター

タイプ

説明

appId

string

アプリケーション ID。

channelId

string

チャネル ID。

taskId

string

録画タスク ID。

eventType

string

イベントタイプ。詳細については、「イベントタイプ」の表をご参照ください。

callbackTs

integer

コールバックが送信された時間。これはミリ秒単位の UNIX タイムスタンプです。

例: 1744774345595。

payload

json string

その他の情報。パラメーターの詳細については、「その他の情報」の表をご参照ください。

イベントタイプ (eventType)

説明

TaskCreated

タスクが作成されました。

TaskStarting

タスクが開始中です。

TaskRunning

タスクが実行中です。

TaskRecovering

タスクが例外から回復中です。

TaskStopping

タスクが停止中です。

TaskStopped

タスクが停止しました。

TaskStartFailed

タスクの開始に失敗しました。

TaskUpdated

タスクは正常に更新されました。

TaskUpdateFailed

タスクの更新に失敗しました。

RecordStart

録画が開始されました。

RecordFailed

例外からの回復に失敗し、タイムアウトしました。

RecordFileUploaded

録画ファイルがアップロードされました。

その他の情報 (payload)

パラメーター

タイプ

説明

eventTs

integer

イベントが発生した時間。これはミリ秒単位の UNIX タイムスタンプです。

例: 1744774345595。

taskStatus

string

タスクステータス。詳細については、「タスクステータス」の表をご参照ください。

説明

このパラメーターは、eventType が RecordFileUploaded の場合は返されません。

errorCode

string

エラーコード。詳細については、「エラー」の表をご参照ください。

errorMessage

string

エラーメッセージ。詳細については、「エラー」の表をご参照ください。

recordFileList

FileList

録画ファイルのリスト。パラメーターの詳細については、「FileList」の表をご参照ください。

説明

このパラメーターは、eventType が TaskRunning、TaskStopping、または TaskStopped の場合にのみ返されます。

recordFile

RecordFile

録画ファイル情報。このパラメーターは、eventType が RecordFileUploaded の場合にのみ返されます。パラメーターの詳細については、「RecordFile」の表をご参照ください。

format

string

録画ファイルのフォーマット。このパラメーターは、eventType が RecordFileUploaded の場合にのみ返されます。このコールバックのファイル形式を示します。有効な値:

  • SLICE (サポートされていません)

  • HLS

  • MP4

  • MP3

streamInfo

string

このパラメーターは、eventType が RecordStart の場合にのみ返されます。サブスクライブしたどのストリームの録画が開始されたかを示します。

  • 混合ストリーム録画の場合、値は常に Mix です。

  • シングルストリーム録画の場合、値は Single::{UserId}::{Suffix} です。UserId はストリームに対応するユーザーの ID です。Suffix は、サブスクリプション時に指定された StreamType と SourceType に依存します:

    • StreamType が 0 の場合:SourceType が 0 の場合は Suffix は AV::C、SourceType が 1 の場合は AV::S です。

    • StreamType が 1 の場合:Suffix は常に A です。

    • StreamType が 2 の場合 (シングルストリーム録画ではサポートされていません):SourceType が 0 の場合は Suffix は V::C、SourceType が 1 の場合は V::S です。

録画ファイルリスト (FileList)

パラメーター

タイプ

説明

mp3FileList

array<string>

MP3 録画ファイル名の配列。

mp4FileList

array<string>

MP4 録画ファイル名の配列。

hlsFileList

array<string>

HLS 録画ファイル名の配列。

vodMediaList

array<VodFileInfo>

VOD メディアリソースの配列。このパラメーターは、VOD に録画する場合にのみ空になりません。VOD に録画する場合、これはサブスクライブされた各ストリームの録画ファイルのコレクションです。各項目はサブスクライブされたストリームに対応します。VodFileInfo パラメーターの詳細については、「VodFileInfo」の表をご参照ください。

VOD ファイル情報 (VodFileInfo)

パラメーター

タイプ

説明

stream

string

サブスクライブされたストリーム。

  • 混合ストリーム録画の場合、値は常に Mix です。

  • シングルストリーム録画の場合、値は Single::{UserId}::{Suffix} です。

    • UserId はストリームに対応するユーザーの ID です。

    • Suffix は、サブスクリプション時に指定された StreamType と SourceType に依存します。

      • StreamType が 0 の場合:SourceType が 0 の場合は Suffix は AV::C、SourceType が 1 の場合は AV::S です。

      • StreamType が 1 の場合:Suffix は常に A です。

      • StreamType が 2 の場合 (シングルストリーム録画ではサポートされていません):SourceType が 0 の場合は Suffix は V::C、SourceType が 1 の場合は V::S です。

mediaIds

array<string>

録画中に生成されたメディアリソース ID の配列。

mergedIds

array<string>

録画終了後に自動的にマージされるメディアリソース ID の配列。このパラメーターは、VOD に録画し、自動マージを有効にし、複数のメディアリソースを録画した場合にのみ空になりません。

録画ファイル情報 (RecordFile)

パラメーター

タイプ

説明

sliceFile

string

このフォーマットが NotifyFileUploadedFormat パラメーターで指定されている場合にのみ返されます。

hlsFile

string

このフォーマットが NotifyFileUploadedFormat パラメーターで指定されている場合にのみ返されます。

mp4File

string

このフォーマットが NotifyFileUploadedFormat パラメーターで指定されている場合にのみ返されます。

mp3File

string

このフォーマットが NotifyFileUploadedFormat パラメーターで指定されている場合にのみ返されます。

タスクステータス (taskStatus)

説明

タスクステータスは、更新の成功または失敗の影響を受けません。したがって、`taskStatus` フィールドにはこれらのステータスは含まれません。

ステータス

説明

CREATED

タスクが作成されたときに返されます。

STARTING

タスクが開始中のときに返されます。

RUNNING

タスクが実行中のときに返されます。

RECOVERING

タスクが例外から回復中のときに返されます。

STOPPING

タスクが停止中のときに返されます。

STOPPED

タスクが停止した後に返されます。

FAILED

タスクの開始に失敗した後に返されます。

エラー

説明

これらのパラメーターには、`eventType` が `TaskRecovering`、`TaskStartFailed`、または `TaskUpdateFailed` の場合にのみ値が含まれます。他のすべてのイベントタイプでは、これらのパラメーターは空です。

イベントタイプ (eventType)

エラーコード (errorCode)

エラーメッセージ (errorMessage)

説明

タスクの開始に失敗しました (TaskStartFailed)

StartTaskError

Channel already closed

チャネルは閉じられています。

Start task error

その他の理由。

異常状態からの回復 (TaskRecovering)

RunTaskError

The rms task failed

混合ストリームモジュールが異常に実行されています。

The record task failed

録画モジュールが異常に実行されています。

タスクの更新に失敗しました。(TaskUpdateFailed)

UpdateTaskError

Update task error

タスクの更新に失敗しました。

RecordFailed

RunTaskError

Recovering status timeout

例外からの回復がタイムアウトしました。

コールバックの例

TaskStopped イベント:

{
    "appId": "mytestappid",
    "callbackTs": 1755504873034,
    "channelId": "room1047",
    "eventType": "TaskStopped",
    "payload": "{\"eventTs\":1755504873014,\"taskStatus\":\"STOPPED\",\"errorCode\":\"\",\"errorMessage\":\"\",\"streamInfo\":\"\",\"recordFileList\":{\"mp3FileList\":[],\"mp4FileList\":[\"mp4/fe60a6e3-cecb-3fae-a8cf-3d2391f507a5/mytestappid_room1047_2025-08-18-15:59:16.mp4\",\"mp4/fe60a6e3-cecb-3fae-a8cf-3d2391f507a5/mytestappid_room1047_2025-08-18-16:02:16.mp4\"],\"hlsFileList\":[\"hls/fe60a6e3-cecb-3fae-a8cf-3d2391f507a5/mytestappid_room1047_2025-08-18-15:59:16.m3u8\",\"hls/fe60a6e3-cecb-3fae-a8cf-3d2391f507a5/mytestappid_room1047_2025-08-18-16:02:16.m3u8\"],\"vodMediaList\":[]}}",
    "taskId": "fe60a6e3-cecb-3fae-a8cf-3d2391f507a5"
}

RecordFileUploaded イベント:

{
    "appId":"mytestappid",
    "callbackTs":1764301584289,
    "channelId":"room1406",
    "eventType":"RecordFileUploaded",
    "payload":"{\"eventTs\":1764301584265,\"errorCode\":\"\",\"errorMessage\":\"\",\"streamInfo\":\"Single::userA::AV::C\",\"format\":\"MP4\",\"recordFile\":{\"sliceFile\":\"\",\"hlsFile\":\"\",\"mp3File\":\"\",\"mp4File\":\"mp4/07c2e845-630d-36a1-b2d1-3b546efdea90/mytestappid_room1406_userA_2025-11-28-11:46:03.mp4\"}}",
    "taskId":"07c2e845-630d-36a1-b2d1-3b546efdea90"}