Change channel settings

Prev Next

Available in Classic and VPC

Change the settings for a live channel.

Request

This section describes the request format. The method and URI are as follows:

Method URI
PUT /api/v2/channels/{channelId}

Request headers

For information about the headers common to all Live Station APIs, see Live Station request headers.

Request path parameters

You can use the following path parameters with your request:

Field Type Required Description
channelId String Required Channel ID

Request body

You can include the following data in the body of your request:

Field Type Required Description
channelName String Required Channel name
  • Enter 3 to 20 characters using a combination of Korean letters, English letters, numbers, and the special character "_".
envType String Optional Channel type
  • REAL (default) | DEV | STAGE
  • Separator based on the service environment to apply
outputProtocol String Optional Output protocol settings
  • HLS (default) | LL_HLS | HLS,DASH
    • HLS: Option for reliable and compatible HLS streaming
    • LL_HLS: Option for low-latency HLS streaming with CMAF
    • HLS,DASH: Option to stream both regular HLS and Dash
  • Can't switch back and forth between HLS/HLS,DASH and LL_HLS.
useDvr Boolean Required Time machine settings
  • true | false
    • true: Enable
    • false: Disable
  • You can rewind your streaming live broadcast when setting up.
immediateOnAir Boolean Required Whether to set up auto-recording immediately upon streaming
  • true | false
    • true: Automatic
    • false: Manual
timemachineMin Integer Conditional Time Machine allowance (minute)
  • 360 (valid value)
  • Required if useDvr is true
record Object Required Recording storage information
record.format String Conditional Autosave recording type
  • MP4 | HLS | ALL
  • Specify the recording file format.
  • Required if record.type is AUTO_UPLOAD.
record.type String Required Recording storage settings
  • NO_RECORD | AUTO_UPLOAD | MANUAL_UPLOAD
    • NO_RECORD: No recording
    • AUTO_UPLOAD: Save automatically
    • MANUAL_UPLOAD: Save temporarily
record.bucketName String Conditional Recording file storage bucket name
  • See ListBuckets.
  • Required if record.type is AUTO_UPLOAD.
record.filePath String Conditional Detailed storage path
  • Start with /.
  • Required if record.type is AUTO_UPLOAD.
record.accessControl String Conditional Recording file storage bucket disclosure scope
  • PRIVATE (default) | PUBLIC_READ
    • PRIVATE: Private
    • PUBLIC_READ: Public
  • Required if record.type is AUTO_UPLOAD

Request example

The request example is as follows:

curl --location --request PUT 'https://livestation.apigw.ntruss.com/api/v2/channels/ls-20250818******-UbUBe' \
--header 'x-ncp-apigw-timestamp: {Timestamp}' \
--header 'x-ncp-iam-access-key: {Access Key}' \
--header 'x-ncp-apigw-signature-v2: {API Gateway Signature}' \
--header 'x-ncp-region_code: KR' \
--header 'Content-Type: application/json' \
--data '{
    "channelName": "testchannel",
    "envType": "STAGE",
    "outputProtocol": "LL_HLS",
    "useDvr": true,
    "immediateOnAir": true,
    "timemachineMin": 360,
    "record": {
        "format": "MP4",
        "type": "MANUAL_UPLOAD"
    }
}'

Response

This section describes the response format.

Response body

The response body includes the following data:

Field Type Required Description
content Object - Response result
content.channelId String - Channel ID
content.channelName String - Channel name
content.instanceNo Integer - Channel instance number
content.qualitySetId Integer - Image quality setting ID
content.qualitySetName String - Image quality setting name
content.outputProtocol String - Output Protocol
content.channelStatus String - Channel status
  • CREATING | READY | PUBLISHING | DELETED | BLOCK | FORCE_BLOCK | FORCE_DELETED
    • CREATING: Creating
    • READY: Ready
    • PUBLISHING: Streaming
    • DELETED: Terminated
    • BLOCK: Stopped
    • FORCE_BLOCK: Force stopped
    • FORCE_DELETED: Unavailable
content.isRecording Boolean - Recording status
  • true | false
    • true: Recording
    • false: Not recording
content.useDVR Boolean - Time machine settings
  • true | false
    • true: Enable
    • false: Disable
content.immediateOnAir Boolean - Whether to set up auto-recording immediately upon streaming
  • true | false
    • true: Automatic
    • false: Manual
content.timemachineMin Integer - Time Machine allowance (minute)
content.cdn Object - Set up CDN.
content.cdn.instanceNo String - CDN instance ID
content.cdn.serviceName String - CDN service name
content.cdn.statusName String - CDN status
  • RUNNING | PUBLISHING | STOPPING | STOPPED | CREATING | CHANGING | CDN_NOT_FOUND
    • RUNNING: Running
    • PUBLISHING: Deploying
    • STOPPING: Stopping
    • STOPPED: Stopped
    • CREATING: Creating
    • CHANGING: Changing
    • CDN_NOT_FOUND: CDN not found
content.cdn.cdnType String - CDN type
  • GLOBAL_CDN | GLOBAL_EDGE
content.cdn.cdnDomain String - CDN service domain
content.cdn.profileId Integer - Global Edge profile ID
content.cdn.regionType String - Global Edge Service Region
content.streamKey String - Main stream key
content.publishUrl String - Default transmission URL
content.globalPublishUrl String - Overseas streaming URL
content.totalPublishSeconds Integer - Channel usage time (second)
content.createdTime Integer - Channel creation date and time (millisecond)
  • Unix timestamp format
content.alertOn Boolean - Event notification settings
  • true | false
    • true: Enable
    • false: Disable
content.recentPublishStartTime Integer - Latest streaming start date and time (millisecond)
  • Unix timestamp format
  • Not displayed if it is before the first streaming
content.alertOptions Object - Set event notifications.
content.alertOptions.alertChangeStatus Boolean - Channel status change notification application
  • true | false
    • true: Apply
    • false: Not apply
content.alertOptions.alertVodUploadFail Boolean - Recording file upload failure notification application
  • true | false
    • true: Apply
    • false: Not apply
content.alertOptions.alertReStreamFail Boolean - Re-stream relay failure notification application
  • true | false
    • true: Apply
    • false: Not apply
content.alertOptions.reStreamFailThreshold Integer - Notification condition (base count)
content.alertOptions.alertStreamFailOver Boolean - Main stream switch notification application
  • true | false
    • true: Apply
    • false: Not apply
content.callbackEndpoint String - Callback endpoint URL
  • Displayed if a valid value exists
content.envType String - Channel type
  • DEV | STAGE | REAL
content.uploadPath String - Recording file upload path
  • Display if content.record.type is AUTO_UPLOAD.
content.record Object - Recording storage information
content.record.type String - Recording storage settings
  • NO_RECORD | AUTO_UPLOAD | MANUAL_UPLOAD
    • NO_RECORD: No recording
    • AUTO_UPLOAD: Save automatically
    • MANUAL_UPLOAD: Save temporarily
content.record.bucketName String - Recording file storage bucket name
  • Display if content.record.type is AUTO_UPLOAD.
content.record.filePath String - Storage detailed path
  • Display if content.record.type is AUTO_UPLOAD.
content.record.format String - Automatic save recording type
  • MP4 | HLS | ALL
content.record.accessControl String - Recording file storage bucket disclosure scope
  • PRIVATE | PUBLIC_READ
    • PRIVATE: Private
    • PUBLIC_READ: Public
  • Display if content.record.type is AUTO_UPLOAD.
content.origin Object - Source information
content.origin.originDomain String - Origin domain
content.origin.originPath String - Origin path
content.backupStreamKey String - Backup stream key
  • Displayed when setting up streaming redundancy
content.isStreamFailOver Boolean - Streaming redundancy settings
  • true | false
    • true: Enable
    • false: Disable
content.drmEnabledYn Boolean - Multi DRM usage
  • true | false
    • true: Enable
    • false: Disable
content.drm Object - Multi DRM settings
  • If content.drmEnabledYn is true, display sub-information.
content.drm.siteId String - Site ID
content.drm.contentId String - Content ID

Response status codes

For information about the HTTP status codes common to all Live Station APIs, see Live Station response status codes.

Response example

The response example is as follows:

{
    "content": {
        "channelId": "ls-20250818******-UbUBe",
        "channelName": "testchannel",
        "instanceNo": 10******7,
        "qualitySetId": 2585,
        "qualitySetName": "ll-1080p-set",
        "outputProtocol": "LL_HLS",
        "channelStatus": "READY",
        "isRecording": false,
        "useDVR": true,
        "immediateOnAir": true,
        "timemachineMin": 360,
        "cdn": {
            "instanceNo": "11612",
            "serviceName": "edge-ls-20250818******-UbUBe",
            "statusName": "RUNNING",
            "cdnType": "GLOBAL_EDGE",
            "cdnDomain": "*************.edge.naverncp.com",
            "profileId": 4207,
            "regionType": "KOREA"
        },
        "streamKey": "hb*****************************1",
        "publishUrl": "rtmp://***********.video.media.ntruss.com:8080/relay",
        "globalPublishUrl": "rtmp://***************.video.media.ntruss.com:8080/relay",
        "totalPublishSeconds": 0,
        "createdTime": 1755494883000,
        "alertOn": false,
        "alertOptions": {
            "alertChangeStatus": false,
            "alertVodUploadFail": false,
            "alertReStreamFail": false,
            "alertStreamFailOver": false
        },
        "callbackEndpoint": "https://www.example.com",
        "envType": "STAGE",
        "record": {
            "type": "MANUAL_UPLOAD",
            "format": "MP4"
        },
        "origin": {
            "originDomain": "*****.video.media.ntruss.com",
            "originPath": "2*****5"
        },
        "backupStreamKey": "hb*****************************************e",
        "isStreamFailOver": true,
        "drmEnabledYn": false
    }
}