Classic/VPC 환경에서 이용 가능합니다.
VOD 스트리밍을 위한 채널을 생성합니다.
요청
요청 형식을 설명합니다. 요청 형식은 다음과 같습니다.
메서드 | URI |
---|---|
POST | /api/v2/channels |
요청 헤더
VOD Station API에서 공통으로 사용하는 헤더에 대한 정보는 VOD Station 요청 헤더를 참조해 주십시오.
요청 바디
요청 바디에 대한 설명은 다음과 같습니다.
필드 | 타입 | 필수 여부 | 설명 |
---|---|---|---|
name |
String | Required | 채널 이름
|
storageBucketName |
String | Required | 스트리밍 영상 저장 버킷 이름 |
accessPrivateFiles |
Boolean | Optional | 버킷 내 비공개 파일 접근 제한 설정 여부
|
protocolList |
Array | Required | 스트리밍 프로토콜 목록
|
encryptionList |
Array | Optional | 채널의 콘텐츠 보호 설정: encryptionList |
segmentDuration |
Integer | Required | 세그먼트당 재생 시간(초)
|
segmentDurationOption |
String | Optional | 세그먼트 분할 방식 설정
|
createCdn |
Boolean | Required | CDN 신규 생성 여부
|
cdn |
Object | Conditional | CDN 설정
|
cdn.profileId |
Integer | Conditional | 프로필 아이디
|
cdn.regionType |
String | Conditional | Global Edge 서비스 지역
|
cdn.type |
String | Conditional | CDN 유형
|
drm |
Object | Optional | Multi DRM 설정 |
drm.siteId |
String | Conditional | 사이트 아이디
|
drm.contentId |
String | Conditional | 콘텐츠 아이디
|
encryptionList
encryptionList
에 대한 설명은 다음과 같습니다.
필드 | 타입 | 필수 여부 | 설명 |
---|---|---|---|
drmContentId |
String | Optional | DRM 콘텐츠 아이디
|
drmKeyUrl |
String | Optional | DRM Key URL
|
systemIdList |
Array | Optional | DRM 시스템 아이디
|
drmTypeCode |
Integer | Optional | DRM 유형
|
mediaEncryptTypeCode |
Integer | Optional | Media Encryption(HLS AES-128) 코드 설정
|
protocol |
String | Required | 프로토콜 설정
|
송출 영상 보안 설정 관련 필드는 송출 영상 보안 설정을 참조하여 입력해 주십시오.
요청 예시
요청 예시는 다음과 같습니다.
- 미디어 암호화(MediaEncryption; AES-128) 적용 시
curl --location --request POST 'https://vodstation.apigw.ntruss.com/api/v2/channels' \ --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": "ch-media-encrypt", "storageBucketName": "station-000", "accessPrivateFiles": true, "protocolList": ["HLS"], "encryptionList": [ { "protocol": "HLS", "mediaEncryptTypeCode": 1 } ], "segmentDuration": 10, "segmentDurationOption": "BASIC", "createCdn": true, "cdn": { "profileId": ****, "regionType": "KOREA", "type": "GLOBAL_EDGE" } }'
응답
응답 형식을 설명합니다.
응답 바디
응답 바디에 대한 설명은 다음과 같습니다.
필드 | 타입 | 필수 여부 | 설명 |
---|---|---|---|
content |
Object | - | 응답 결과 |
content.disabled |
Boolean | - | Sub Account 비활성화 여부
|
content.id |
String | - | 채널 아이디 |
content.name |
String | - | 채널 이름 |
content.channelStatus |
String | - | 채널 상태
|
content.storageBucketName |
String | - | 채널이 스트리밍할 영상이 저장되어 있는 버킷 이름 |
content.segmentDuration |
Integer | - | 세그먼트당 재생 시간(초) |
content.protocolList |
Array | - | 스트리밍 프로토콜 목록
|
content.createTime |
Integer | - | 채널 생성 시작 일시(초)
|
content.cdnCreatedTime |
Integer | - | 채널에 연동하여 자동 생성된 CDN의 생성 일시(초)
|
content.playUrl |
String | - | CDN을 통한 재생 URL 템플릿 |
content.cdnStatus |
String | - | 채널에 연동된 CDN의 상태
|
content.cdnDomain |
String | - | 자동 생성된 Global Edge 도메인 |
content.cdnServiceName |
String | - | 자동 생성된 Global Edge 서비스 이름 |
content.storageBucketStatus |
String | - | 채널에 연동된 Object Storage 버킷의 상태 |
content.originPath |
String | - | 생성한 채널의 원본 경로
|
content.encryptList |
Array | - | 채널의 콘텐츠 보호 설정 정보: encryptList |
content.accessPrivateFiles |
Boolean | - | 버킷 내 비공개 파일 접근 제한 설정 여부
|
content.encryptedBucketName |
String | - | 채널에 연동된 버킷의 암호화된 이름
|
content.segmentDurationOption |
String | - | 세그먼트 분할 방식 설정
|
content.cdn |
Object | - | 자동 생성된 CDN(Global Edge) 정보 |
content.cdn.cdnType |
String | - | CDN 유형
|
content.cdn.cdnDomain |
String | - | 자동 생성된 Global Edge 도메인 |
content.cdn.cdnServiceName |
String | - | 자동 생성된 Global Edge 서비스 이름 |
content.cdn.profileId |
Integer | - | 자동 생성된 Global Edge 프로필 아이디 |
content.cdn.regionType |
String | - | 자동 생성된 Global Edge 서비스 지역 |
content.cdn.cdnInstanceNo |
Integer | - | 자동 생성된 Global Edge 인스턴스 아이디 |
encryptList
encryptList
에 대한 설명은 다음과 같습니다.
필드 | 타입 | 필수 여부 | 설명 |
---|---|---|---|
drmContentId |
String | - | DRM 콘텐츠 아이디
|
drmKeyUrl |
String | - | DRM Key URL
|
systemIdList |
Array | - | DRM 시스템 아이디
|
drmTypeCode |
Integer | - | DRM 유형
|
drmTypeName |
String | - | DRM 유형 이름 |
protocol |
String | - | 설정된 프로토콜
|
mediaEncryptTypeCode |
Integer | - | 설정된 Media Encryption(HLS AES-128) 코드 설정
|
mediaEncryptionTypeName |
String | - | 설정된 Media Encryption(HLS AES-128) 타입 이름
|
응답 상태 코드
VOD Station API에서 공통으로 사용하는 응답 상태 코드에 대한 정보는 VOD Station 응답 상태 코드를 참조해 주십시오.
응답 예시
응답 예시는 다음과 같습니다.
{
"content": {
"disabled": false,
"id": "vs-20250821095732-*******",
"name": "ch-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": *****
}
}
}
송출 영상 보안 설정
생성한 채널에서 송출할 영상 콘텐츠의 보안을 위해 다양한 설정을 지원합니다.
콘텐츠 접근 제어
Global Edge 서비스와 연동하여 Global Edge의 콘텐츠 인증 제어를 통해 송출 영상 콘텐츠의 접근을 제한할 수 있습니다. 콘텐츠 인증 제어 방식에는 Signed URL, JSON Web Token이 있습니다. 각 방식별 사용 방법은 Global Edge 사용 가이드의 Signed URL, JSON Web Token을 참조해 주십시오.
- 인증 토큰 발급 시 Signed URL 방식은 ACL에, JSON Web Token 방식은 path에 와일드카드 경로를 입력해야 합니다.
- 단일 비트레이트 재생: /[protocol]/[encryptedBucketName]/[path]/[video filename]/*
- <예시>
- HLS: https://example.edge.navercorp.com/hls/guide/vod-5100k.mp4/index.m3u8
- wildcard path : /hls/guide/vod-5100k.mp4/*
- DASH: https://example.edge.navercorp.com/dash/guide/vod-5100k.mp4/index.m3u8
- wildcard path: /dash/guide/vod-5100k.mp4/*
- HLS: https://example.edge.navercorp.com/hls/guide/vod-5100k.mp4/index.m3u8
- <예시>
- Adaptive 비트레이트 재생: /[protocol]/[encryptedBucketName]/[path]/[prefix],[video filenames],[suffix].smil/*
- <예시>
- HLS 재생 주소: https://example.edge.navercorp.com/hls/guide/abr/vod-,5400,2400,1200,0900,0600,0300,k.mp4.smil/master.m3u8
- wildcard path: /hls/guide/abr/vod-,5400,2400,1200,0900,0600,0300,k.mp4.smil/*
- DASH 재생 주소: https://example.edge.navercorp.com/dash/guide/abr/vod-,5400,2400,1200,0900,0600,0300,k.mp4.smil/manifest.mpd
- wildcard path: /dash/guide/abr/vod-,5400,2400,1200,0900,0600,0300,k.mp4.smil/*
- HLS 재생 주소: https://example.edge.navercorp.com/hls/guide/abr/vod-,5400,2400,1200,0900,0600,0300,k.mp4.smil/master.m3u8
- <예시>
- 단일 비트레이트 재생: /[protocol]/[encryptedBucketName]/[path]/[video filename]/*
- Global Edge의 캐시 설정 중 Edge Auth를 생성한 채널의 Output Protocol에 맞게 설정해야 합니다. 설정 방법은 Global Edge API 가이드를 참조해 주십시오.
- 인증 제외 확장자
- .ts, .mp4, .m4s, .vtt, .key
- 인증 토큰을 원본에 전달하는 확장자
- .m3u8, .mpd
- 인증 제외 확장자
콘텐츠 보호
One Click Multi DRM 서비스와 연동하여 Multi DRM을 통해 영상 콘텐츠를 암호화 후 송출하여 불법 복제 및 유통을 방지할 수 있습니다. 채널 생성 시 drm
객체를 통해 간편하게 DRM 기능을 설정할 수 있으며, 선택한 Output Protocol에 따라 Multi DRM이 적용됩니다. DRM 기술별 암호화 방식, 지원 단말, 플랫폼 및 버전 등에 대한 자세한 내용은 VOD Station 사용 가이드 및 DoveRunner(구 PallyCon) 가이드를 참조해 주십시오.
암호화 방식 | 프로토콜 | DRM 유형 | 암호화 알고리즘 | 지원 단말 |
---|---|---|---|---|
HLS AES-128 | HLS | - | AES-128 | MS Edge, IE11, Chrome, Firefox, Opera HLS HTML5 |
DRM | HLS |
|
SAMPLE-AES | Mac/iOS Safari 브라우저, iOS/iPadOS/tvOS 앱, HLS HTML5 |
DRM | DASH |
|
CENC (Common Encryption) | MS Edge, IE11, Chrome, Firefox, Opera DASH HTML5 |