Callback Endpointの登録

Prev Next

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