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 protocolsHLS|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 settingsBASIC(default) |VARIABLEBASIC: Create segments at regular intervals set by thesegmentDurationsetting.VARIABLE: Create segments so that every segment starts with a keyframe.
- If the
VARIABLEoption is selected, there is a possibility of a difference between thesegmentDurationvalue and the actual generated segment playback time. - It is recommended to use the
BASICoption for stable streaming service.
|
drm | Object | Optional | Multi DRM settings- See One Click Multi DRM.
|
drm.siteId | String | Conditional | Site ID- See Get site list.
- Required when setting multi DRM.
|
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
|
drmKeyUrl |
String | Optional | DRM key URL
|
systemIdList |
Array | Optional | DRM system ID
|
drmTypeCode |
Integer | Optional | DRM type
|
mediaEncryptTypeCode |
Integer | Optional | Media Encryption (HLS AES-128) code settings
|
protocol |
String | Required | Protocol settings
|
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
|
content.id |
String | - | Channel ID |
content.name |
String | - | Channel name |
content.channelStatus |
String | - | Channel status
|
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
|
content.createTime |
Integer | - | Channel creation start date and time (millisecond)
|
content.cdnCreatedTime |
Integer | - | Date and time when the CDN was automatically created in integration with the channel
|
content.playUrl |
String | - | Playback URL template via CDN |
content.cdnStatus |
String | - | Status of the CDN integrated with the channel
|
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
|
content.encryptList |
Array | - | Content protection settings information for the channel: encryptList |
content.accessPrivateFiles |
Boolean | - | Whether to restrict access to private files in the bucket
|
content.encryptedBucketName |
String | - | Encrypted name of the bucket integrated with the channel
|
content.segmentDurationOption |
String | - | Segmentation method settings
|
content.cdn |
Object | - | Auto-generated CDN (Global Edge) information |
content.cdn.cdnType |
String | - | CDN type
|
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
|
drmKeyUrl |
String | - | DRM key URL
|
systemIdList |
Array | - | DRM system ID
|
drmTypeCode |
Integer | - | DRM type
|
drmTypeName |
String | - | DRM type name |
protocol |
String | - | Set protocol
|
mediaEncryptTypeCode |
Integer | - | Set Media Encryption (HLS AES-128) code settings
|
mediaEncryptionTypeName |
String | - | Set Media Encryption (HLS AES-128) type name
|
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": *****
}
}
}