Live Stationで発生したイベントを受信する Callback Endpointを登録する APIです。
Callback Endpointは、全チャンネルのコールバック設定と個別チャンネルのコールバック設定を分けて利用することができます。
Callback送信データ
Callback endpointを登録すると、Live Stationでイベントが発生するたびに設定された endpoint URLに以下の形式のデータが転送されます (HTTP POSTを使用)。
Callback送信レスポンスボディ
フィールド名 | 必須の有無 | タイプ | 制限事項 | 説明 |
---|
id | Yes | String | | |
logLevel | Yes | String | | |
channelId | Yes | String | | |
event | Yes | String | | |
timestamp | Yes | String | | |
Callback送信レスポンス例
{
"id": 1234,
"logLevel": "INFO",
"channelId": "ls-20200327140131-aBCD3",
"event": "STREAM_UPDATE",
"timestamp": 1599218791425
}
リクエスト
Endpoint | Description |
---|
[POST https://livestation.apigw.ntruss.com/api/v2/events/callbackEndpoint] | 全チャンネルコールバック設定 (N(チャンネル): 1(コールバックエンドポイント)) |
[POST https://livestation.apigw.ntruss.com/api/v2/channels/{channelId}/callbackEndpoint] | 一般チャンネルのチャンネル別コールバック設定 (1(チャンネル): 1(コールバックエンドポイント)) |
[POST https://livestation.apigw.ntruss.com/api/v2/re-stream/channels/{channelId}/callbackEndpoint] | リストリームチャンネルのチャンネル別コールバック設定 (1(チャンネル): 1(コールバックエンドポイント)) |
[POST https://livestation.apigw.ntruss.com/api/v2/vod/channels/{channelId}/callbackEndpoint] | VODチャンネルのチャンネル別コールバック設定 (1(チャンネル): 1(コールバックエンドポイント)) |
リクエスト別コールバック送信動作
チャンネル別コールバックエンドポイント | 全チャンネルコールバックエンドポイント | 動作 |
---|
未設定 | 未設定 | コールバックを送信しない |
未設定 | 設定 | 全チャンネルコールバックエンドポイントに送信 |
設定 | 未設定 | 特定のチャンネルに設定したコールバックエンドポイントに送信 |
設定 | 設定 | 特定のチャンネルに設定したコールバックエンドポイントに送信 |
リクエストヘッダ
ヘッダ名 | 必須の有無 | 説明 |
---|
x-ncp-apigw-timestamp | YES | 1970年1月1日00:00:00協定世界時(UTC)からの経過時間をミリ秒(Millisecond)で表し、API Gatewayサーバとの時間差が5分以上の場合は無効なリクエストとみなす
x-ncp-apigw-timestamp:{Timestamp} |
x-ncp-iam-access-key | YES | NAVERクラウドプラットフォームポータルから発行された Access Key ID x-ncp-iam-access-key:{Sub Account Access Key} |
x-ncp-apigw-signature-v2 | YES | Access Key IDと Secret Keyで暗号化した署名
x-ncp-apigw-signature-v2:{API Gateway Signature} |
x-ncp-region_code | YES | リージョンコード (KR) |
全チャンネルコールバック設定のリクエストボディ
フィールド名 | 必須の有無 | タイプ | 制限事項 | 説明 |
---|
callbackUrl | Yes | String | callbackを受け取る custom endpoint | |
個別チャンネルコールバック設定のリクエストボディ
フィールド名 | 必須の有無 | タイプ | 制限事項 | 説明 |
---|
callbackEndpoint | Yes | String | callbackを受け取る custom endpoint | |
レスポンス
全チャンネルコールバック設定のレスポンス
フィールド名 | タイプ | 説明 | 備考 |
---|
callbackUrl | String | | |
updateTime | Integer | | |
一般チャンネルコールバック設定のレスポンス
フィールド名 | タイプ | 説明 | 備考 |
---|
channelId | String | | |
channelName | String | | |
instanceNo | String | | |
qualitySetId | Integer | | |
qualitySetName | String | | |
outputProtocol | String | Default set: HLS、DASH | |
channelStatus | String | CREATING、READY、PUBLISH、DELETED、BLOCK | |
isRecording | Boolean | | |
useDvr | Boolean | | |
immediateOnAir | Boolean | | |
timemachineMin | Integer | | 単位: Minute |
snapshot | Object | | |
snapshotId | Integer | | |
cdn | Object | | |
cdn.instanceNo | String | | NO_CDNの場合は0 |
cdn.serviceName | String | CDN Service Name | NO_CDNの場合は"" |
cdn.profileId | Integer | Global Edgeのプロファイル ID | NO_CDNの場合は0 |
cdn.statusName | String | CDNの状態 | NO_CDNの場合は"" |
cdn.cdnType | String | GLOBAL_CDN、GLOBAL_EDGE | |
cdn.cdnDomain | String | CDN Domain | NO_CDNの場合は"" |
record | Object | | |
record.format | String | MP4、HLS、ALL | |
record.type | String | NO_RECORD、AUTO_UPLOAD、MANUAL_UPLOAD | |
record.bucketName | String | | |
record.filePath | String | | |
record.accessControl | String | PRIVATE、PUBLIC_READ | |
publishUrl | String | | |
streamKey | String | | |
recentPublishStartTime | Integer | | |
createdTime | Integer | | |
alertOn | Boolean | | if alertOn == true, alertOptions should be set |
alertOptions | Object | | |
alertOptions.alertChangeStatus | Boolean | | |
alertOptions.alertVodUploadFail | Boolean | | |
alertOptions.alertReStreamFail | Boolean | | |
totalPublishSeconds | Integer | | |
envType | String | DEV、STAGE、REAL | |
callbackEndpoint | String | | |
リストリームチャネルのコールバック設定のレスポンス
フィールド名 | タイプ | 説明 | 備考 |
---|
channelId | String | | |
channelName | String | | |
instanceNo | Integer | | |
channelStatus | String | | |
createdTime | Integer | | |
publishUrl | String | | |
streamKey | String | | |
planType | String | STANDARD、PROFESSIONAL | |
restream | Object[] | | |
restream[].targetName | String | | |
restream[].rtmpUrl | String | | |
restream[].streamKey | String | | |
restream[].id | String | | 設定されている場合、表示 |
restream[].password | String | 設定されている場合、表示 | |
platformCount | Integer | | |
totalPublishSeconds | Integer | | |
recentPublishStartTime | Integer | | |
alertOn | Boolean | | |
alertOptions | Object | | |
alertOptions.alertChangeStatus | Boolean | | |
alertOptions.alertVodUploadFail | Boolean | | |
alertOptions.alertReStreamFail | Boolean | | |
isPublishing | Boolean | | |
envType | String | DEV、STAGE、REAL | |
callbackEndpoint | String | | |
例
全チャンネルコールバック設定のリクエスト例
POST /api/v2/events/callbackEndpoint
HOST: livestation.apigw.ntruss.com
Content-Type: application/json
x-ncp-apigw-timestamp:1521787414578
x-ncp-iam-access-key:6uxz1nKkcYwUjWRG5Q1V7NsW0i5jErlu2NjBXXgy
x-ncp-apigw-signature-v2:iJFK773KH0WwQ79PasqJ+ZGixtpDQ/abS57WGQdld2M=
x-ncp-region_code:KR
{
"callbackUrl": "https://my-callback-endpoint"
}
全チャンネルコールバック設定のレスポンス例
HTTP/1.1 200 OK
Server: nginx
Date: Wed, 12 Sep 2018 09:53:32 GMT
Content-Type: application/json;charset=utf-8
Connection: keep-alive
Access-Control-Allow-Origin: *
x-ncp-trace-id: 36c9k60om4p3238cpmc9gm4cj4
{
"content": {
"callbackUrl": "https://my-callback-endpoint",
"updateTime": 1614751615488
}
}
一般チャンネル別コールバック設定のリクエスト例
POST /api/v2/channels/{channelId}/callbackEndpoint
HOST: livestation.apigw.ntruss.com
Content-Type: application/json
x-ncp-apigw-timestamp:1521787414578
x-ncp-iam-access-key:6uxz1nKkcYwUjWRG5Q1V7NsW0i5jErlu2NjBXXgy
x-ncp-apigw-signature-v2:iJFK773KH0WwQ79PasqJ+ZGixtpDQ/abS57WGQdld2M=
x-ncp-region_code:KR
{
"callbackEndpoint": "https://my-callback-endpoint"
}
一般チャンネル別コールバック設定のレスポンス例
HTTP/1.1 200 OK
Server: nginx
Date: Fri, 26 Sep 2021 09:53:32 GMT
Content-Type: application/json;charset=utf-8
Connection: keep-alive
Access-Control-Allow-Origin: *
x-ncp-trace-id: 36c9k60om4p3238cpmc9gm4cj4
{
"content" : {
"channelId" : "ls-20200323114720-bMoDF",
"channelName" : "mychannel",
"instanceNo" : 1163899,
"qualitySetId" : 6,
"qualitySetName" : "360p-set",
"outputProtocol" : "HLS, DASH",
"channelStatus" : "READY",
"isRecording" : false,
"useDVR" : true,
"immediateOnAir" : false,
"timemachineMin" : 360,
"cdn" : {
"instanceNo" : "1163900",
"serviceName" : "edge-ls-20200323114720-bMoDF",
"statusName" : "RUNNING",
"cdnType" : "GLOBAL_EDGE",
"cdnDomain" : "mycdn.edge.naverncp.com",
"profileId": 299,
"regionType": "KOREA"
},
"record": {
"type": "AUTO_UPLOAD",
"bucketName": "hls",
"filePath": "/livestation",
"format": "MP4",
"accessControl": "PRIVATE"
},
"publishUrl": "rtmp://live-station-rtmp-url",
"streamKey": "jjiantco4psakuwd5526u2glcxrqaar4",
"totalPublishSeconds" : 0,
"createdTime" : 1584931640000,
"recentPublishStartTime": 0,
"alertOn" : false,
"alertOptions" : {
"alertChangeStatus" : false,
"alertVodUploadFail" : false,
"alertReStreamFail" : false
},
"callbackEndpoint": "https://my-callback-endpoint",
"envType": "REAL"
}
}
リストリームチャンネル別コールバック設定のリクエスト例
POST /api/v2/re-stream/channels/{channelId}/callbackEndpoint
HOST: livestation.apigw.ntruss.com
Content-Type: application/json
x-ncp-apigw-timestamp:1521787414578
x-ncp-iam-access-key:6uxz1nKkcYwUjWRG5Q1V7NsW0i5jErlu2NjBXXgy
x-ncp-apigw-signature-v2:iJFK773KH0WwQ79PasqJ+ZGixtpDQ/abS57WGQdld2M=
x-ncp-region_code:KR
{
"callbackEndpoint": "https://my-callback-endpoint"
}
リストリームチャンネル別コールバック設定のレスポンス例
HTTP/1.1 200 OK
Server: nginx
Date: Fri, 26 Feb 2021 09:53:32 GMT
Content-Type: application/json;charset=utf-8
Connection: keep-alive
Access-Control-Allow-Origin: *
x-ncp-trace-id: 36c9k60om4p3238cpmc9gm4cj4
{
"content": {
"channelId": "ls-20210225185132-FxGSn",
"channelName": "mycallback-20210225185132",
"instanceNo": 1627140,
"channelStatus": "READY",
"streamKey": "7xtotpxpkjnyhmjbe7k7jaa952q6lmhl",
"publishUrl": "rtmp://live-station-rtmp-url",
"planType": "STANDARD",
"createdTime": 1614246692000,
"restream": [
{
"id": "itis",
"rtmpUrl": "rtmp://notworking-just-testcase.only",
"streamKey": "12345",
"password": "itispassword",
"targetName": "YOUTUBE"
}
],
"platformCount": 1,
"totalPublishSeconds": 0,
"alertOn": false,
"isPublishing": false,
"alertOptions": {
"alertChangeStatus": false,
"alertVodUploadFail": false,
"alertReStreamFail": false
},
"callbackEndpoint": "https://my-callback-endpoint",
"envType": "REAL"
}
}
VODチャンネル別コールバック設定のレスポンス例
{
"content": {
"channelId": "ls-20211122220557-mUv3r",
"channelName": "mycallback-20211235185132",
"instanceNo": 2043025,
"qualitySetId": 4,
"qualitySetName": "720p-set",
"outputProtocol": "HLS",
"status": "READY",
"cdn": {
"instanceNo": "1541959",
"serviceName": "edge-ls-20201204112949-D7RTL",
"statusName": "RUNNING",
"cdnType": "GLOBAL_EDGE",
"cdnDomain": "mycdn.edge.naverncp.ntruss.com",
"profileId": 299,
"regionType": "KOREA"
},
"totalPublishSeconds": 0,
"createdTime": 1637586357000,
"updatedTime": 1637587476000,
"alertOn": false,
"alertOptions": {
"alertChangeStatus": false
},
"callbackEndpoint": "https://my-callback-endpoint",
"envType": "REAL",
"type": "VOD",
}
}
あなたのフィードバックをありがとう!私たちのチームはあなたに戻って取得します