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

ApsaraVideo Live:イベントコールバック

最終更新日:Jun 13, 2026

ApsaraVideo Live は、ライブストリームのアップストリーミング、録画(オンデマンド録画を含む)、スナップショット、コンテンツモデレーション、およびデュアルストリームディザスタリカバリに関するイベント通知を提供します。本トピックでは、これらのコールバックの設定方法、コールバックパラメーターの一覧、および使用例について説明します。

概要

ApsaraVideo Live は、HTTP コールバックを介してイベント通知を送信します。HTTPS もサポートされています。これらの通知を受信するには、HTTP サービスをデプロイし、ApsaraVideo Live コンソールまたは API を使用してコールバック URL を設定する必要があります。

  • HTTP GET: ストリームのアップストリーミングまたは中断イベントが発生すると、ApsaraVideo Live はコールバック URL に対して HTTP GET リクエストを送信し、イベントの詳細を URL パラメーターとして配信します。

  • HTTP POST: その他の種類のイベントが発生すると、ApsaraVideo Live はコールバック URL に対して HTTP POST リクエストを送信し、イベントの詳細を JSON 本文で配信します。

説明

一部の SSL 証明書は互換性がありません。証明書に関する問題が発生した場合は、HTTP コールバックをお試しください。

注意事項

  • 接続性: コールバック URL はパブリックにアクセス可能である必要があります。

  • タイムアウトとリトライ: サービスは 5 秒以内に応答を期待します。リクエストがタイムアウトした場合、1 秒間隔で最大 5 回リトライされます。

  • ドメインスコープ

    • ストリームアップストリーミングおよびデュアルストリームリカバリのコールバックは、アップストリーミングドメインでのみ設定できます。

    • 録画、スナップショット、およびコンテンツモデレーションのコールバックは、ストリーミングドメインでのみ設定できます。

コールバック管理

ストリームアップストリーミングコールバック

このコールバックは、ドメインのアップストリーミングステータス(アップストリーミング成功、ストリーム中断、アップストリーミング例外など)を通知します。コールバック URL はコンソールまたは API を使用して設定します。

コンソールでの設定

  1. ApsaraVideo Live コンソールにログインします。

  2. 左側のナビゲーションウィンドウで、機能管理 > イベントコールバック を選択します。

  3. 設定する アップストリーミングドメイン を選択します。

  4. コールバックの設定 タブで、プッシュストリーミングコールバック スイッチを有効にし、以下のパラメーターを設定します。

    • コールバックタイプ: アップストリーミングおよび中断イベント、または例外イベントのコールバックを設定します。

    • コールバック URL: 通知を受信するためのパブリックエンドポイントです。アップストリーミングおよび中断イベントには HTTP GET を、例外イベントには HTTP POST を使用します。

    • コールバック認証: 認証を有効にするかどうかを選択します。有効にした場合は、認証キーを入力します。認証プロセスについては、「コールバック認証」をご参照ください。

  5. [OK] をクリックします。

API による設定

API

説明

SetLiveStreamsNotifyUrlConfig

インジェストコールバックの構成を追加します。

DescribeLiveStreamsNotifyUrlConfig

インジェストコールバックの構成を照会します。

DeleteLiveStreamsNotifyUrlConfig

アップストリーミングコールバック構成を削除します。

インジェストおよび中断イベント

コールバックロジック

ストリームプッシュの場合、ApsaraVideo Live が OnPublish メッセージを受信した後、ライブソースが少なくとも 2 秒間接続されたままの場合、アップストリーミング成功のコールバックが送信されます。

ストリーミングドメイン(ドメイン B)に対してストリームフェッチング(固定時間またはオンデマンド)を使用し、コールバック通知が必要な場合は、関連付けられたアップストリーミングドメイン(ドメイン A)に対してストリームアップストリーミングコールバックを設定してください。ロジックは一貫しており、接続が確立され、ライブソースが少なくとも 2 秒間接続されたままの場合、ストリームフェッチングは成功と見なされます。

説明

ストリームが正常にアップストリーミングされたかどうかを判断するために、コールバック通知のみに依存しないでください。オンラインストリームリストを照会する API を呼び出すことを推奨します。再生用 URL をユーザーに配布する前に、ストリームがアクティブであることを確認してください。

ApsaraVideo Live ライブセンターが 10 秒間データを受信しない場合、サービスは自動的にアップストリーミング接続を終了します。

パラメーター

パラメーター

説明

action

コールバックをトリガーしたイベントの種類。

  • publish: ストリームが取り込まれます。

  • publish_done: ストリームが中断されました。

ip

インジェストクライアントの IP アドレス。

id

ストリーム名。

app

アップストリーミングドメイン。アップストリーミングドメインが関連付けられていない場合、このパラメーターはストリーミングドメインを返します。

appname

ストリームの AppName。

time

コールバックが送信されたときの UNIX タイムスタンプ(秒単位)。

usrargs

ユーザー定義のインジェスト パラメーター。

node

ストリームを受信するエッジノードまたはサーバー。

height

最初のコールバックでのみ提供される、ピクセル単位のビデオ高さ。

width

最初のコールバックでのみ提供される、ピクセル単位のビデオ幅。

インジェストイベントの例

http://1.1.X.X?action=publish&ip=192.168.0.1&id=world&app=example.aliyundoc.com&appname=liveApp****&time=1609220385&usrargs={user-defined-parameters}&node=cdnvideocenter01020711****.cm3&height=720&width=1280

中断イベントの例

http://1.1.X.X?action=publish_done&ip=192.168.0.0&id=world&app=example.aliyundoc.com&appname=liveApp****&time=1609220385&usrargs={user-defined-parameters}&node=cdnvideocenter01020711****.cm3&height=720&width=1280

例外イベントを取り込む

パラメーター

パラメーター

説明

action

publish_exception_notify

domain

アップストリーミングドメイン。

appname

ストリームの AppName。

stream

ストリーム名。

ip

インジェストクライアントの IP アドレス。

time

コールバックが送信されたときの UNIX タイムスタンプ(秒単位)。

type

例外イベントの種類。

event_time

例外が発生したときの UNIX タイムスタンプ(秒単位)。

例外タイプ

コード

イベントタイプ

1001

URL に無効な文字が含まれています。

2001

ビデオコーデックがブロックリストに登録されています。

2002

ビデオコーデックが許可リストに登録されていません。

2003

オーディオコーデックがブロックリストに登録されています。

2004

オーディオコーデックが許可リストに登録されていません。

3001

オーディオヘッダーの解析に失敗しました。

3002

ビデオヘッダーの解析に失敗しました。

3003

メタデータの解析に失敗しました。

4001

ビデオの幅と高さが一致しません。

4002

メタデータにはオーディオデータがないと記載されていますが、ストリームにはオーディオデータが含まれています。

4003

実際のオーディオおよびビデオデータがヘッダーと一致しません。

4004

メタデータにはビデオデータがないと記載されていますが、ストリームにはビデオデータが含まれています。

4005

ストリーム途中でオーディオコーデックが変更されました。

4006

ストリーム途中でビデオコーデックが変更されました。

4007

オーディオヘッダーの前にオーディオフレームが受信されました。

4008

ビデオヘッダーの前にビデオフレームが受信されました。

5001

CTS ジッターが過剰です。

5002

復号化タイムスタンプ (DTS) が単調増加ではありません。

5003

オーディオとビデオのタイムスタンプの差が大きすぎます。

5004

オーディオ DTS の増分が大きすぎます。

5005

ビデオ DTS の増分が大きすぎます。

5006

受信したオーディオフレームの間隔が長すぎます。

5007

受信したビデオフレームの間隔が長すぎます。

5008

キーフレーム間隔が長すぎます。

例外イベントの例

{
  "action": "publish_exception_notify",
  "domain": "demo.aliyundoc.com",
  "appname": "liveApp****",
  "stream": "liveStream****",
  "ip": "141.01.****",
  "time": "1739760710",
  "type": "5002",
  "event_time": "1739760710"
}

ライブ録画コールバック

ライブ録画コールバックは、録画ステータス、ファイル生成、および録画エラーを通知します。

コンソールでの設定

  1. ApsaraVideo Live コンソールにログインします。

  2. 左側のナビゲーションウィンドウで、機能管理 > イベントコールバック を選択します。

  3. 設定する ストリーミングドメイン名 を選択します。

  4. コールバックの設定 タブで、録画コールバック スイッチを有効にし、以下のパラメーターを設定します。

    • コールバック URL: 通知を受信するためのパブリックエンドポイントです。録画コールバックには HTTP POST リクエストを使用します。

    • トリガーイベントFile Generation または File Generation and Recording Status を選択します。

    • オンデマンドコールバック URL: オンデマンド録画を設定している場合、ライブストリームが開始されるとサービスはこの URL に対して HTTP コールバックを送信します。ストリームを録画するかどうかを決定するために、サーバーはこのリクエストに応答する必要があります。デフォルトでは、このパラメーターは * に設定されており、オンデマンド録画機能が無効になります。

    • コールバック認証: 認証を有効にするかどうかを選択します。有効にした場合は、認証キーを入力します。認証プロセスについては、「コールバック認証」をご参照ください。

  5. [OK] をクリックします。

API による設定

API

説明

AddLiveRecordNotifyConfig

ドメインの録画コールバック構成を追加します。

DescribeLiveRecordNotifyConfig

録画コールバック構成を照会します。

DeleteLiveRecordNotifyConfig

ドメインの録画コールバック構成を削除します。

録画ステータスコールバック

録画セッションの開始または一時停止時に送信されます。

パラメーター

パラメーター

説明

domain

録画対象のストリーミングドメイン。

app

ストリームの AppName。

stream

ストリーム名。

event

イベント。

  • record_started: 録画が開始されました。

  • record_paused: 録画が一時停止されました。

{
  "domain": "demo.aliyundoc.com",
  "app": "liveApp****",
  "stream": "liveStream****",
  "event": "record_started"
}

ファイル生成コールバック

ファイル作成時に送信され、ファイルパス、持続時間、タイムスタンプなどの詳細を提供します。

パラメーター

パラメーター

説明

domain

録画対象のストリーミングドメイン。

app

ストリームの AppName。

stream

ストリーム名。

uri

OSS バケットまたは ApsaraVideo VOD バケット内の録画ファイルの相対パス。

record_id

インデックスファイルの ID。

file_url

録画ファイルの完全な URL。

duration

録画ファイルの持続時間(秒単位)。

start_time

録画開始時刻(UNIX タイムスタンプ、秒単位)。

stop_time

録画終了時刻(UNIX タイムスタンプ、秒単位)。

is_finished

録画が完了したかどうかを示します。このパラメーターは、ライブストリームが ApsaraVideo VOD に録画された場合にのみ返されます。

oss_endpoint

ストレージエンドポイント。

oss_bucket

ストレージバケットの名前。

push_args

callback_ で始まるアップストリーミング URL のユーザー定義パラメーター(例:callback_arg1 および callback_myid)。

説明
  • トランスコード済みストリームではカスタムパラメーターはサポートされていません。

  • 同じパラメーターに複数の値が渡された場合(例:callback_arg1=v1&callback_arg1=v2)、コールバックには最初の値のみが含まれます("callback_args1": "value1")。

アップストリーミング URL が rtmp://demo.aliyundoc.com/liveApp****/liveStream****?callback_args1=value1&callback_myid=1231389741 の場合、コールバックペイロードは次のようになります。

{
  "domain": "demo.aliyundoc.com",
  "app": "liveApp****",
  "stream": "liveStream****",
  "uri": "liveApp****/liveStream****/0_2017-03-08-23:09:46_2017-03-08-23:10:40.flv",
  "file_url": "http://****.oss-****.aliyuncs.com/liveApp****/liveStream****/0_2017-03-08-23:09:46_2017-03-08-23:10:40.flv",
  "duration": 69.403,
  "start_time": 1488985786,
  "stop_time": 1488985840,
  "push_args": {
    "callback_args1": "value1",
    "callback_myid": "1231389741"
  }
}

録画エラーコールバック

ソースストリームの例外またはストレージへの書き込み失敗(OSS)によってトリガーされます。

パラメーター

パラメーター

説明

domain

録画対象のストリーミングドメイン。

app

ストリームの AppName。

stream

ストリーム名。

event

イベントタイプ。

  • record_error: 録画エラーが発生しました。

  • transformat_error: リマックスエラーが発生しました。

error_info

JSON 形式のエラー情報。以下のフィールドが含まれます。

  • code: エラーコード。

  • message: エラーメッセージ。

file_info

ファイル情報。このパラメーターは transformat_error の場合にのみ返されます。以下のフィールドが含まれます。

  • uri: リマックス済みファイルのストレージの場所。

  • start_time: ファイルの録画開始時刻。

  • stop_time: ファイルの録画終了時刻。

録画エラーの例

{
  "domain": "example.com",
  "app": "live",
  "stream": "stream123",
  "event": "record_error",
  "error_info": {
    "code": "TsSegmenterFail",
    "message": "ts segmenter error"
  }
}

エラーコード

コード

メッセージ

説明

BucketNotFound

Bucket not found

バケットが存在しないか、削除されています。

AccessDenied

Bucket not belong config userId

バケットが録画構成を追加したアカウントに属していません。

StreamFormatError

video stream format error

ライブストリームの形式が無効です。

UserDisable

Unauthorized access to OSS by user

ユーザーが OSS にアクセスする権限が付与されていないか、権限が取り消されています。

リマックスエラーの例

{
  "domain": "example.com",
  "app": "live",
  "stream": "stream123",
  "event": "transformat_error",
  "error_info": {
    "code": "PermissionDenied.ResourceAccess",
    "message": "MTS not authorized to operate on the OutputBucket"
  },
  "file_info": {
    "uri": "record/live/stream123/2025-11-19-03-17-03_2025-11-19-03-28-39.flv",
    "start_time": 1763493420,
    "stop_time": 1763494119
  }
}

エラーコード

コード

メッセージ

説明

InvalidParameter.ResourceNotFound

The resource operated cannot be found

バケットが存在しないか、削除されています。

InvalidParameter.ResourceContentBad

The resource operated InputFile is bad

ソースストリームの品質に関する問題により、リマックスに失敗しました。

PermissionDenied.ResourceAccess

MTS not authorized to operate on the OutputBucket

ユーザーが OSS にアクセスする権限が付与されていないか、権限が取り消されています。

オンデマンド録画コールバック

オンデマンド録画を使用すると、ストリームメタデータに基づいてライブストリームを録画するかどうかをプログラムで決定できます。

ライブストリームが事前に設定されたオンデマンド録画テンプレート(ドメイン、アプリ、またはストリームレベル)に一致すると、録画サービスはストリームの詳細を含めて On-demand callback URL に対して HTTP リクエストを送信します。その後、サーバーはストリームを録画するかどうかを示し、特定の録画設定を提供するために応答する必要があります。

リクエストパラメーター

パラメーター

タイプ

説明

domain

String

ストリーミングドメイン。

app

String

ストリームの AppName。

stream

String

ストリーム名。

codec

String

コーデック。有効な値:

  • h264

  • h265

vbitrate

String

ビデオビットレート。単位:kbps。

リクエスト例

GET /?app=seq_all&domain=demo.aliyundoc.com&stream=ondemand8&vbitrate=2000&codec=h264 HTTP/1.1
Host: pull.aliyundoc.com
User-Agent: Go-http-client/1.1
Accept-Encoding: gzip

レスポンスパラメーター

パラメーター

タイプ

必須

説明

ApiVersion

String

いいえ

API バージョン。デフォルト値は 1.0 です。

NeedRecord

Boolean

はい

ストリームを録画するかどうかを示します。

Interval

JSONObject

いいえ

特定のフォーマットの録画サイクル。範囲:5 ~ 21600。単位:秒。

Format

JSONArray

いいえ

録画フォーマット。サポートされているフォーマット:MP4、FLV、M3U8。

レスポンス例

{
  "ApiVersion": "1.0",
  "NeedRecord": true,
  "Interval": {
    "Mp4": 300,
    "Flv": 120,
    "M3U8": 180
  },
  "Format": ["mp4","flv"]
}

レスポンス処理

録画サービスは、既存の構成を上書きするためにレスポンスを処理します。

  • Interval: 提供された Interval 値は、録画テンプレートで設定された録画サイクルを上書きします。

  • Format: サービスは、要求された Format と録画テンプレートで事前設定されたフォーマットとの共通部分を計算します。共通のフォーマットがない場合、ストリームは録画されません。

200 以外の HTTP ステータスコードは、API エンドポイントへの呼び出しが失敗したことを示します。

レスポンスボディは 2,048 バイトを超えることはできません。セキュリティ上の理由から、この制限を超えるコンテンツはシステムによって切り捨てられます。

ライブスナップショットコールバック

ApsaraVideo Live は、ライブスナップショットのイベント通知をサポートしています。コールバック URL はコンソールまたは API を使用して設定できます。

コンソールでの設定

  1. ApsaraVideo Live コンソールにログインします。

  2. 左側のナビゲーションウィンドウで、機能管理 > イベントコールバック を選択します。

  3. 設定する ストリーミングドメイン名 を選択します。

  4. コールバックの設定 タブで、スナップショットコールバック スイッチを有効にし、以下のパラメーターを設定します。

    • コールバック URL: 通知を受信するためのパブリックエンドポイントです。スナップショットコールバックには HTTP POST リクエストを使用します。

    • コールバック認証: 認証を有効にするかどうかを選択します。有効にした場合は、認証キーを入力します。認証プロセスについては、「コールバック認証」をご参照ください。

  5. [OK] をクリックします。

API 構成

API

説明

AddLiveSnapshotNotifyConfig

ライブスナップショットコールバック構成を追加します。

UpdateLiveSnapshotNotifyConfig

ライブスナップショットコールバック構成を変更します。

DescribeLiveSnapshotNotifyConfig

ライブスナップショットコールバック構成を照会します。

DeleteLiveSnapshotNotifyConfig

ライブスナップショットコールバック構成を削除します。

スナップショットコールバックパラメーター

パラメーター

説明

Event

イベントの種類。値は Snapshot です。

DomainName

ストリーミングドメイン。

AppName

ストリームの AppName。

StreamName

ストリーム名。

OssBucket

スナップショットを保存する OSS バケットの名前。

OssEndpoint

スナップショットが保存される OSS エンドポイント。

OssObject

OSS バケット内のスナップショットファイルの名前。

CreateTime

スナップショットが作成されたときのタイムスタンプ。

SnapshotUrl

OSS バケット内のスナップショットファイルの完全な URL。

Size

画像のサイズ(バイト単位)。

Width

画像の幅(ピクセル単位)。

Height

画像の高さ(ピクセル単位)。

{
  "Event": "Snapshot",
  "DomainName": "demo.aliyundoc.com",
  "AppName": "liveApp****",
  "StreamName": "liveStream****",
  "OssBucket": "liveBucket****",
  "OssEndpoint": "oss-cn-shan****.aliyuncs.com",
  "OssObject": "1****.jpg",
  "CreateTime": "2015-12-01T17:36:00Z",
  "SnapshotUrl": "http://liveBucket****.oss-cn-shan****.aliyuncs.com/1****.jpg",
  "Size": "36291",
  "Width": "1280",
  "Height": "720"
}

コンテンツモデレーションコールバック

ApsaraVideo Live は、ビデオおよびオーディオのモデレーション結果に関するイベント通知をサポートしています。コールバック URL はコンソールまたは API を使用して設定できます。

ビデオモデレーションコールバック

問題があると判断されたビデオコンテンツに対してのみトリガーされます。

コンソールでの設定
  1. ApsaraVideo Live コンソールにログインします。

  2. 左側のナビゲーションウィンドウで、機能管理 > イベントコールバック を選択します。

  3. 設定する ストリーミングドメイン名 を選択します。

  4. コールバックの設定 タブで、動画レビューのコールバック スイッチを有効にし、コールバック URL を設定します。URL はご利用のエンドポイントを指す必要があります。ビデオモデレーションイベントがトリガーされると、ApsaraVideo Live は指定された URL に対して HTTP POST リクエストを送信し、イベントの詳細を JSON 本文で配信します。

  5. [OK] をクリックします。

API による設定

API

説明

AddLiveDetectNotifyConfig

ビデオモデレーションコールバック構成を追加します。

DescribeLiveDetectNotifyConfig

ビデオモデレーションコールバック構成を照会します。

UpdateLiveDetectNotifyConfig

ビデオモデレーションコールバック構成を変更します。

DeleteLiveDetectNotifyConfig

ビデオモデレーションコールバック構成を削除します。

コールバックパラメーター

通知には、モデレーションの詳細と問題のあるコンテンツから取得されたスナップショットの保存場所が含まれます。

パラメーター

タイプ

説明

DomainName

String

ストリーミングドメイン。

AppName

String

ストリームの AppName。

StreamName

String

ストリーム名。

OssEndpoint

String

OSS エンドポイント。

OssBucket

String

OSS バケット。

OssObject

String

オブジェクト名。

Result

JSONArray

モデレーション結果。詳細については、「Result」をご参照ください。

Result

パラメーター

タイプ

説明

BizType

String

ビジネスタイプ。このパラメーターはモデルを選択するために使用できます。デフォルト値はドメイン名です。

Scene

String

検出シーン。

  • porn: ポルノグラフィー。

  • terrorism: テロおよび政治的に敏感なコンテンツ。

  • ad: テキストおよび画像違反。

  • live: 不適切なシーン。

Label

String

結果のカテゴリ。カテゴリは検出シーンによって異なります。

porn のカテゴリ:

  • normal: 正常。

  • sexy: セクシー。

  • porn: ポルノグラフィー。

terrorism のカテゴリ:

  • normal: 正常。

  • bloody: ブラッディ。

  • explosion: 爆発または煙。

  • outfit: 特殊な服装。

  • weapon: 武器。

  • politics: 政治的に敏感。

  • violence: 闘争。

  • crowd: 群衆。

  • parade: パレード。

  • carcrash: 自動車事故。

  • flag: 旗。

  • location: ランドマーク。

  • others: その他。

カテゴリ(ad):

  • normal: 正常。

  • ad: その他の広告。

  • npx: スパム広告。

  • qrcode: QR コード。

  • programCode: ミニプログラムコード。

live のカテゴリ:

  • normal: 正常。

  • meaningless: 画像にコンテンツがない(例:黒画面または白画面)。

  • PIP: ピクチャーインピクチャー。

  • smoking: 喫煙。

  • drivelive: 車内ライブ配信。

ロゴのカテゴリ:

Rate

Float

信頼度スコア。範囲:0 ~ 100。

説明

この値は参考情報です。ビジネスロジックでこの値を使用しないでください。Label の結果を使用して、コンテンツが準拠していないかどうかを判断してください。

Extent

String

予約パラメーター。

説明

このバージョンは新規ユーザー向けにデフォルトで提供されます。既存のユーザーは現在のバージョンのままです。このバージョンを使用するには、チケットを送信してください。

{
  "DomainName": "demo.aliyundoc.com",
  "AppName": "liveApp****",
  "StreamName": "liveStream****",
  "OssEndpoint": "oss-cn-hang****.aliyuncs.com",
  "OssBucket": "liveBucket****",
  "OssObject": "example.jpg",
  "Result": [
    {
      "BizType": "demo.aliyundoc.com",
      "Result": [
        {"Label": "Porn", "Rate": 11, "Suggestion": "review", "Scene": "porn", "Extent": {}},
        {"Label": "Ad", "Rate": 11, "Suggestion": "review", "Scene": "ad", "Extent": {}}
      ]
    }
  ]
}

オーディオモデレーションコールバック

問題があると判断されたオーディオコンテンツに対してのみトリガーされます。

コンソールでの設定
  1. ApsaraVideo Live コンソールにログインします。

  2. 左側のナビゲーションウィンドウで、機能管理 > イベントコールバック を選択します。

  3. 設定する ストリーミングドメイン名 を選択します。

  4. Callback Settings タブで、Audio Moderation Callbacks スイッチを有効にし、コールバック URL を設定します。URL はご利用のエンドポイントを指す必要があります。ビデオモデレーションイベントがトリガーされると、ApsaraVideo Live は指定された URL に対して HTTP POST リクエストを送信し、イベントの詳細を JSON 本文で配信します。

  5. [OK] をクリックします。

API による設定

API

説明

AddLiveAudioAuditNotifyConfig

オーディオモデレーションコールバック構成を追加します。

DeleteLiveAudioAuditNotifyConfig

オーディオモデレーションコールバック構成を削除します。

UpdateLiveAudioAuditNotifyConfig

オーディオモデレーションコールバック構成を変更します。

DescribeLiveAudioAuditNotifyConfig

オーディオモデレーションコールバック構成を照会します。

コールバックパラメーター

通知には、問題のあるオーディオの文字起こしテキストと次の 1 分間のコンテキスト情報が含まれます。

パラメーター

タイプ

説明

DomainName

String

ストリーミングドメイン。

AppName

String

ストリームの AppName。

StreamName

String

ストリーム名。

Timestamp

Int

タイムスタンプ(秒単位)。

Result

JSONArray

モデレーション結果。詳細については、「Result」をご参照ください。

Result

パラメーター

タイプ

説明

Scene

String

検出シーン。

Label

String

検出結果のカテゴリ。有効な値:

  • normal: 正常

  • spam: スパム

  • ad: 広告

  • politics: 政治的に敏感なコンテンツ

  • terrorism: テロ

  • abuse: 悪口

  • porn: ポルノグラフィー

  • flood: 無意味な内容

  • contraband:違法物品

  • meaningless: 無意味

Suggestion

String

推奨アクション。有効な値:

  • pass: 結果は正常です。これ以上のアクションは必要ありません。

  • review: 結果が不確実です。手動レビューが必要です。

  • block: コンテンツが準拠していません。コンテンツを削除するか、公開を制限してください。

Rate

Float

信頼度スコア。範囲:0 ~ 100。

説明

この値は参考情報です。ビジネスロジックでこの値を使用しないでください。Label の結果を使用して、コンテンツが準拠していないかどうかを判断してください。

Details

JSONArray

文字起こしされたオーディオの詳細。配列には 1 つ以上の要素が含まれ、各要素は 1 文に対応します。構造については、「Detail」をご参照ください。

Detail

パラメーター

タイプ

説明

StartTime

Int

文の開始タイムスタンプ(秒単位)。

EndTime

Int

文の終了タイムスタンプ(秒単位)。

Text

String

文字起こしテキスト。

Label

String

検出結果のカテゴリ。有効な値:

  • normal: 正常

  • spam: スパム

  • ad: 広告

  • politics: 政治的に敏感なコンテンツ

  • terrorism: テロ

  • abuse: 不正使用

  • porn: ポルノグラフィー

  • flood: 無意味な内容

  • contraband: 密輸品

  • meaningless: 無意味

{
  "DomainName": "example.aliyundoc.com",
  "AppName": "liveApp****",
  "StreamName": "5d9747eba39b44769852d276f9ff****",
  "Timestamp": 1572248095,
  "Result": [
    {
      "Scene": "antispam",
      "Label": "ad",
      "Suggestion": "block",
      "Rate": 99.91,
      "Details": [
        {
          "StartTime": 1572248023,
          "EndTime": 1572248040,
          "Text": "ホテルでは 120 日間の無料宿泊が提供されます。友人や家族と共有できます。団結街 96 番地のレセプションセンターまでお越しください。ホットライン:2285699。",
          "Label": "ad"
        },
        {
          "StartTime": 1572248040,
          "EndTime": 1572248070,
          "Text": "温泉リゾートタウンの中心部に位置する、希少なクラシックヴィラのコレクションをご発見ください。有名な龍多温泉や歴史的な梁河金塔の隣にあり、贅沢と自然が融合する場所です。",
          "Label": "normal"
        },
        {
          "StartTime": 1572248072,
          "EndTime": 1572248077,
          "Text": "楽しいひとときと居心地のよい日々を、美しい皆さまと共に、より気楽にお過ごしください。",
          "Label": "normal"
        },
        {
          "StartTime": 1572248078,
          "EndTime": 1572248086,
          "Text": "fme043 忙しさから少し離れて、居心地のよい音楽と映画でお過ごしください。",
          "Label": "normal"
        }
      ]
    }
  ]
}

デュアルストリームディザスタリカバリコールバック

このコールバックは、フェールオーバーのためにストリームスイッチが発生したときに通知します。

コンソールでの設定

  1. ApsaraVideo Live コンソールにログインします。

  2. 左側のナビゲーションウィンドウで、機能管理 > イベントコールバック を選択します。

  3. 設定する アップストリーミングドメイン を選択します。

  4. コールバックの設定 タブで、デュアルストリームディザスタリカバリコールバック スイッチを有効にし、コールバック URL を設定します。

  5. [OK] をクリックします。

コールバックパラメーター

パラメーター

説明

action

イベントタイプ。固定値:multistream_set_master_result

domain

アップストリーミングドメイン。

appname

ストリームの AppName。

streamname

ストリーム名。

upstreamsequence

スイッチ後のプライマリストリームの識別子。

upstreamip

スイッチ後にプライマリストリームをプッシュするクライアントの IP アドレス。

upstreamtime

スイッチ後のプライマリストリームのアップストリーミング開始時刻。これは UNIX タイムスタンプ(秒単位)です。

changereason

スイッチオーバーの理由。

changetime

ストリームスイッチオーバーが発生した時刻。これは UNIX タイムスタンプ(秒単位)です。

time

コールバック通知が生成された時刻。これは UNIX タイムスタンプ(秒単位)です。

{
  "action": "multistream_set_master_result",
  "domain": "demo.aliyundoc.com",
  "appname": "liveApp****",
  "streamname": "liveStream****",
  "upstreamsequence": "main",
  "upstreamip": "203.**.***.10",
  "upstreamtime": 17*****710,
  "changereason": "merge_cut_manually",
  "changetime": 17*****705,
  "time": 17*****706
}

コールバック認証

ApsaraVideo Live は、ストリームアップストリーミング、録画、スナップショット、およびデュアルストリームディザスタリカバリイベント に対してコールバック認証をサポートしています。有効にすると、認証は次のように機能します。

ApsaraVideo Live は、コールバックリクエストに ALI-LIVE-TIMESTAMP ヘッダーおよび ALI-LIVE-SIGNATURE ヘッダーを含めます。これにより、受信サーバーはコールバックリクエストが真正であり、改ざんされていないことを検証できます。

ALI-LIVE-SIGNATURE の計算
ALI-LIVE-SIGNATURE=MD5SUM(MD5CONTENT)
MD5CONTENT=Domain|ALI-LIVE-TIMESTAMP Value|Auth KEY

ここで:

  • Domain: ドメインソースはコールバックタイプによって異なります。

    • ストリームアップストリーミングおよびデュアルストリームディザスタリカバリコールバックの場合: コールバック URL が設定されているアップストリーミングドメインを使用します。

    • 録画およびスナップショットコールバックの場合: コールバック URL のドメインを使用します。たとえば、コールバック URL が https://learn.aliyundoc.com/your/callback の場合、ドメイン値は learn.aliyundoc.com です。

  • ALI-LIVE-TIMESTAMP: リクエストが送信されたときの UNIX タイムスタンプ。単位:秒。

  • Auth KEY: 対応するコールバック URL に設定された認証キー。

受信サーバー認証

コールバックメッセージを受信する際、コールバックメッセージ受信サーバーはコールバックタイプに基づいてコールバックドメインを決定します。その後、コールバックドメイン、ALI-LIVE-TIMESTAMP ヘッダーの値、および認証キーを連結し、この文字列の MD5 ハッシュを計算します。計算されたハッシュ値をリクエストの ALI-LIVE-SIGNATURE ヘッダーの値と比較します。値が一致しない場合、リクエストは未認証となります。

コールバックレコード

ApsaraVideo Live コンソールでは、ライブストリームのアップストリーミングおよび録画コールバックイベントの履歴とペイロードを表示できます。その他のコールバックタイプはサポートされていません。

制限事項

  1. 新しいコールバック構成または更新されたコールバック構成が有効になるまでに最大 5 分かかります。有効になると、コールバックレコードが期待どおりに表示されます。

  2. 過去 7 日間のコールバックレコードを最大 1,000 件まで利用できます。

操作手順

  1. ApsaraVideo Live コンソールにログインします。

  2. 左側のナビゲーションウィンドウで、機能管理 > イベントコールバック をクリックします。

  3. コールバック URL が設定されているアップストリーミングドメインまたはストリーミングドメインを選択します。

  4. コールバックの記録 タブで、プッシュストリーミングコールバック または 録画コールバック を選択します。

  5. 時間範囲、AppName、および StreamName でコールバックレコードをフィルターできます。