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",
}
}