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

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

最終更新日:Aug 20, 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 回リトライします。

  • ドメインの適用範囲

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

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

コールバック管理

ストリーム取り込みのコールバック

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

コンソールでの設定

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

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

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

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

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

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

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

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

取り込み成功の追加の確認方法

アップストリーミングコールバックに加えて、以下の方法でストリームが正常にアップストリーミングされたかを確認できます。

  • Web プレーヤーで canplay イベントをリッスンする:Web プレーヤーを初期化した後、ストリームをアップストリーミングしてから再生します。ストリームが存在し、再生可能な場合、canplay イベントがトリガーされます。ストリームが存在しない場合は、エラーが返されます。

  • RTS デモページでストリームを検証する:[アップストリーミング] タブで、アップストリーミング URL を入力し、ローカルストリームを作成してからアップストリーミングを開始します。[ストリーミング] タブに切り替え、artc:// プロトコルを使用する必要があるストリーミング URL を入力し、再生を開始してストリームが正常に再生されるかを確認します。

これらの方法は補助的な確認手段です。アップストリーミングコールバックを使用してアップストリーミングステータスを判断することを推奨します。

API による設定

API

説明

SetLiveStreamsNotifyUrlConfig

取り込みコールバック構成を追加します。

DescribeLiveStreamsNotifyUrlConfig

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

DeleteLiveStreamsNotifyUrlConfig

インジェストコールバック構成を削除します。

アップストリーミングおよび中断イベント

コールバックロジック

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

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

説明

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

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

パラメーター

パラメーター

説明

action

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

  • publish:ストリームがアップストリーミングされます。

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

ip

取り込みクライアントの IP アドレス。

id

ストリーム名。

app

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

appname

ストリームの AppName。

time

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

usrargs

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

node

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

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 リクエストを使用します。

    • トリガーイベント[ファイル生成] または [ファイル生成と録画ステータス] を選択します。

    • オンデマンドコールバック 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 へのアクセス権限がないか、権限付与が取り消されています。

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

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

ライブストリームが事前に設定されたオンデマンド録画テンプレート (ドメイン、アプリ、またはストリームレベル) に一致すると、録画サービスはご利用の オンデマンドコールバック 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 は、ライブスナップショットのイベント通知をサポートしています。コンソールまたは API を介してコールバック URL を設定できます。

コンソールでの設定

  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 は、ビデオおよびオーディオのモデレーション結果に関するイベント通知をサポートしています。コンソールまたは API を介してコールバック URL を設定できます。

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

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

コンソールでの設定
  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:車内でのライブストリーミング。

logo のカテゴリ:

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. [コールバック設定] タブで、[オーディオモデレーションコールバック] スイッチを有効にし、コールバック 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 つ以上の要素が含まれ、各要素は文に対応します。構造については、「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 でコールバックレコードをフィルターできます。