Documentation Index

Fetch the complete documentation index at: https://api.ncloud-docs.com/llms.txt

Use this file to discover all available pages before exploring further.

Edit channel

Prev Next

Available in Classic and VPC

Edit channel settings for VOD streaming.

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 VOD Station APIs, see VOD Station request headers.

Request body

You can include the following data in the body of your request:
| Field | Type | Required | Description |
|--- |--- |--- |--- |
| name | String | Required | Channel name

  • Enter 3-20 characters using a combination of English letters, numbers, and special characters "-".
|
| protocolList | Array | Required | List of streaming protocols
  • HLS | DASH
  • Duplicate selection available
|
| encryptionList | Array | Optional | Content protection settings for the channel: encryptionList |
| segmentDuration | Integer | Required | Playback time per segment (second)
  • 5-20
  • Longer segment playback times can result in larger file sizes and longer loading times.
  • Shorter segment playback times result in smaller file sizes, but may result in buffering.
|
| segmentDurationOption | String | Optional | Segmentation method settings
  • BASIC (default) | VARIABLE
    • BASIC: Create segments at regular intervals set by the segmentDuration setting.
    • VARIABLE: Create segments so that every segment starts with a keyframe.
  • If the VARIABLE option is selected, there is a possibility of a difference between the segmentDuration value and the actual generated segment playback time.
  • It is recommended to use the BASIC option for stable streaming service.
|
| drm | Object | Optional | Multi DRM settings |
| drm.siteId | String | Conditional | Site ID |
| drm.contentId | String | Conditional | Content ID
  • Enter 3-100 characters using a combination of English letters, numbers, and special characters "-" and "_".
  • Required when setting multi DRM.
|

encryptionList

The following describes encryptionList.

Field Type Required Description
drmContentId String Optional DRM content ID
  • Enter 1-200 characters using a combination of English letters and numbers.
  • The value is included for DRM key requests and needed for license issuing.
drmKeyUrl String Optional DRM key URL
  • The CPIX API URL of the DRM provider
  • VOD Station officially supports the integration with Inka Pallyacon DRM's CPIX v1 API.
  • For DRM packaging, VOD Station includes the xml body at POST request.
  • Include http(s)://.
  • Not required when setting Media Encryption.
systemIdList Array Optional DRM system ID
  • DRM system's unique identifier.
  • Enter 1-256 characters without spaces, including English letters, numbers, and special character "-".
  • Not required when setting Media Encryption.
  • Must include 1 or 2 system IDs depending on DRM type.
drmTypeCode Integer Optional DRM type
  • 21 | 22
    • 21: FairPlay
    • 22: Widevine/PlayReady
  • Not required when setting Media Encryption
mediaEncryptTypeCode Integer Optional Media Encryption (HLS AES-128) code settings
  • 1 | 2 | 3
    • 1: AES-128
    • 2: Sample-AES
    • 3: CENC
  • Unable to set if drmTypeCode is 21.
  • Not required when setting DRM.
protocol String Required Protocol settings
  • HLS | DASH
    • HLS: FairPlay/Media Encryption
    • DASH: Widevine/PlayReady
Note

For fields related to streaming video security settings, see Set streaming video security.

Request example

The request example is as follows:

curl --location --request PUT 'https://vodstation.apigw.ntruss.com/api/v2/channels/vs-20250821095732-*******' \
--header 'x-ncp-apigw-timestamp: {Timestamp}' \
--header 'x-ncp-iam-access-key: {Access Key}' \
--header 'x-ncp-apigw-signature-v2: {API Gateway Signature}'
--data '{
	"name":"ch2-media-encrypt",
	"protocolList":["HLS"],
	"segmentDuration":10,
	"segmentDurationOption":"BASIC",
    "encryptionList": [
        {
            "protocol": "HLS",
            "mediaEncryptTypeCode": 1
        }
    ],
	"encryptionList":[]
}'

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.disabled Boolean - Whether Sub Account is disabled
  • true | false
    • true: Disabled
    • false: Enabled
content.id String - Channel ID
content.name String - Channel name
content.channelStatus String - Channel status
  • CREATING | READY | STOPPING | STOPPED | TERMINATING | TERMINATED | FORCE_STOPPING | FORCE_STOPPED | FORCETERMINATING | FORCETERMINATED
    • CREATING: Creating
    • READY: Running
    • STOPPING: Stopping
    • STOPPED: Stopped
    • TERMINATING: Deleting
    • TERMINATED: Deleted
    • FORCE_STOPPING: Force stopping
    • FORCE_STOPPED: Force stopped
    • FORCETERMINATING: Force deleting
    • FORCETERMINATED: Force deleted
content.storageBucketName String - Name of the bucket where the video the channel will stream is stored
content.segmentDuration Integer - Playback time per segment (second)
content.protocolList Array - List of streaming protocols
  • HLS | DASH
content.createTime Integer - Channel creation start date and time (millisecond)
  • Unix timestamp format
content.cdnCreatedTime Integer - Date and time when the CDN was automatically created in integration with the channel
  • Unix timestamp format
content.playUrl String - Playback URL template via CDN
content.cdnStatus String - Status of the CDN integrated with the channel
  • If not auto-generated, displayed as NOT_FOUND
content.cdnDomain String - Auto-generated Global Edge's domain
content.cdnServiceName String - Auto-generated Global Edge's service name
content.storageBucketStatus String - Status of the Object Storage bucket integrated with the channel
content.originPath String - Source path of the created channel
  • Use when creating a separate CDN.
content.encryptList Array - Content protection settings information for the channel: encryptList
content.accessPrivateFiles Boolean - Whether to restrict access to private files in the bucket
  • true | false
    • true: Restrict
    • false: Allow
  • Private files can also be streamed if allowed.
content.encryptedBucketName String - Encrypted name of the bucket integrated with the channel
  • Use when creating the playback URL.
content.segmentDurationOption String - Segmentation method settings
  • BASIC | VARIABLE
    • BASIC: Create segments at regular intervals set by the segmentDuration setting.
    • VARIABLE: Create segments so that every segment starts with a keyframe.
  • If the VARIABLE option is selected, there is a possibility of a difference between the segmentDuration value and the actual generated segment playback time.
content.cdn Object - Auto-generated CDN (Global Edge) information
content.cdn.cdnType String - CDN type
  • GLOBAL_EDGE (valid value)
content.cdn.cdnDomain String - Auto-generated Global Edge's domain
content.cdn.cdnServiceName String - Auto-generated Global Edge's service name
content.cdn.profileId Integer - Auto-generated Global Edge's profile ID
content.cdn.regionType String - Auto-generated Global Edge Service Region
content.cdn.cdnInstanceNo Integer - Auto-generated Global Edge's instance ID
content.notificationUrl String - Channel (callback) URL

encryptList

The following describes encryptList.

Field Type Required Description
drmContentId String - DRM content ID
  • The value is included for DRM key requests and needed for license issuing.
drmKeyUrl String - DRM key URL
  • DRM provider's CPIX API URL.
  • VOD Station officially supports the integration with Inka Pallyacon DRM's CPIX v1 API.
systemIdList Array - DRM system ID
  • DRM system's unique identifier
drmTypeCode Integer - DRM type
  • 21 | 22
    • 21: FairPlay
    • 22: Widevine/PlayReady
drmTypeName String - DRM type name
protocol String - Set protocol
  • HLS | DASH
    • HLS: FairPlay/Media Encryption
    • DASH: Widevine/PlayReady
mediaEncryptTypeCode Integer - Set Media Encryption (HLS AES-128) code settings
  • 1 | 2 | 3
    • 1: AES-128
    • 2: Sample-AES
    • 3: CENC
mediaEncryptionTypeName String - Set Media Encryption (HLS AES-128) type name
  • AES-128 | Sample-AES | CENC

Response status codes

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

Response example

The response example is as follows:

{
    "content": {
        "disabled": false,
        "id": "vs-20250821095732-*******",
        "name": "ch2-media-encrypt",
        "channelStatus": "CREATING",
        "storageBucketName": "station-000",
        "segmentDuration": 10,
        "protocolList": [
            "HLS"
        ],
        "createTime": 1755737852,
        "cdnCreatedTime": 1755737852,
        "playUrl": "https://cpzplvi******.edge.naverncp.com/[protocol]/[Object Storage Bucket(encryption name)]/[path]/[video filename]/[manifest]",
        "cdnStatus": "CREATING",
        "cdnDomain": "cpzplvi******.edge.naverncp.com",
        "cdnServiceName": "edge-vs-20250821095732-*******",
        "storageBucketStatus": "RUNNING",
        "originPath": "vs2-k1.video.media.ntruss.com/2706412/vs-20250821095732-*******",
        "encryptList": [
            {
                "protocol": "HLS",
                "mediaEncryptTypeCode": 1
            }
        ],
        "accessPrivateFiles": true,
        "encryptedBucketName": "*****VzPmKvIthkozoufHw__",
        "segmentDurationOption": "BASIC",
        "cdn": {
            "cdnType": "GLOBAL_EDGE",
            "cdnDomain": "cpzplvi******.edge.naverncp.com",
            "cdnServiceName": "edge-vs-20250821095732-*******",
            "profileId": ****,
            "regionType": "KOREA",
            "cdnInstanceNo": *****
        }
    }
}