Available in Classic and VPC
Change the CDN server integrated with a VOD Station channel. This is used when integrating a channel integrated with the CDN+ service with the Global Edge service, and can only be changed when the channel is in the STOPPED
status.
Note that changing CDN will change the playback path URL.
Request
This section describes the request format. The method and URI are as follows:
Method | URI |
---|---|
POST | /api/v2/channels/{channelId}/cdn-to-edge |
Request headers
For information about the headers common to all VOD Station APIs, see VOD 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 |
---|---|---|---|
cdn |
Object | Required | Set up CDN. |
cdn.profileId |
Integer | Required | Global Edge profile ID
|
cdn.regionType |
String | Required | Global Edge Service Region
|
Request example
The request example is as follows:
curl --location --request POST 'https://vodstation.apigw.ntruss.com/api/v2/channels/vs-20250821095732-*******/cdn-to-edge' \
--header 'x-ncp-apigw-timestamp: {Timestamp}' \
--header 'x-ncp-iam-access-key: {Access Key}' \
--header 'x-ncp-apigw-signature-v2: {API Gateway Signature}' \
--data '{
"cdn": {
"profileId": ****,
"regionType": "KOREA"
}
}'
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 channel 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.readyTime |
Integer | - | Channel creation completion date and time (millisecond)
|
content.cdnCreatedTime |
Integer | - | Date and time when the CDN was automatically created in integration with the channel
|
content.stopTime |
Integer | - | Channel stop date and time (millisecond)
|
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 |
encryptList
The following describes encryptList
.
Field | Type | Required | Description |
---|---|---|---|
drmContentId |
String | Optional | DRM content ID
|
drmKeyUrl |
String | - | DRM key URL
|
systemIdList |
Array | - | DRM system ID
|
drmTypeCode |
Integer | Optional | DRM type
|
drmTypeName |
String | - | DRM type name |
protocol |
String | - | Set protocol
|
mediaEncryptTypeCode |
Integer | Optional | 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": "ch-media-encrypt",
"channelStatus": "STOPPED",
"storageBucketName": "station-000",
"segmentDuration": 10,
"protocolList": [
"HLS"
],
"createTime": 1755737852,
"readyTime": 1755737880,
"cdnCreatedTime": 1755737852,
"stopTime": 1755757440,
"playUrl": "https://cpzplvi211650.edge.naverncp.com/[protocol]/[Object Storage Bucket(encryption name)]/[path]/[video filename]/[manifest]",
"cdnStatus": "RUNNING",
"cdnDomain": "cpzplvi211650.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": "cpzplvi211650.edge.naverncp.com",
"cdnServiceName": "edge-vs-20250821095732-*******",
"profileId": ****,
"regionType": "KOREA",
"cdnInstanceNo": *****
}
}
}