--- title: "채널 생성" slug: "vodstation-channel-create" tags: ["VOD Station"] updated: 2026-09-17T09:16:48Z published: 2026-09-17T09:16:48Z canonical: "api.ncloud-docs.com/vodstation-channel-create" --- > ## 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. # 채널 생성 Classic/VPC 환경에서 이용 가능합니다. VOD 스트리밍을 위한 채널을 생성합니다. ## 요청 요청 형식을 설명합니다. 요청 형식은 다음과 같습니다. | 메서드 | URI | | --- | --- | | POST | /api/v2/channels | ### 요청 헤더 VOD Station API에서 공통으로 사용하는 헤더에 대한 정보는 [VOD Station 요청 헤더](/docs/vodstation#%EC%9A%94%EC%B2%AD%ED%97%A4%EB%8D%94)를 참조해 주십시오. ### 요청 바디 요청 바디에 대한 설명은 다음과 같습니다. | 필드 | 타입 | 필수 여부 | 설명 | | --- | --- | --- | --- | | `name` | String | Required | 채널 이름 - 영문자, 숫자, 특수 문자 '-'를 조합하여 3~20자 이내로 입력 | | `storageBucketName` | String | Required | 스트리밍 영상 저장 버킷 이름 | | `accessPrivateFiles` | Boolean | Optional | 버킷 내 비공개 파일 접근 제한 설정 여부 - `true` \| `false` (기본값) - `true`: 허용 - `false`: 제한 - 허용 시 비공개 파일도 스트리밍 가능 | | `protocolList` | Array | Required | 스트리밍 프로토콜 목록 - `HLS` \| `DASH` - 중복 선택 가능 | | `encryptionList` | Array | Optional | 채널의 콘텐츠 보호 설정: [encryptionList](/docs/vodstation-channel-create#encryptionList1) | | `segmentDuration` | Integer | Required | 세그먼트당 재생 시간(초) - 5~20 - 세그먼트 재생 시간이 길면 파일 크기가 커지고 로딩이 길어질 수 있음 - 세그먼트 재생 시간이 짧으면 파일 크기는 작아지지만, 버퍼링이 발생할 수 있음 | | `segmentDurationOption` | String | Optional | 세그먼트 분할 방식 설정 - `BASIC` (기본값) \| `VARIABLE` - `BASIC`: `segmentDuration` 설정 간격으로 일정하게 세그먼트 생성 - `VARIABLE`: 모든 세그먼트가 키 프레임(keyframe)으로 시작하도록 세그먼트 생성 - `VARIABLE` 옵션을 선택한 경우, `segmentDuration` 값과 실제 생성된 세그먼트 재생 시간에 차이 발생 가능성 존재 - 안정적인 스트리밍 서비스를 위해서는 `BASIC` 옵션 사용 권장 | | `createCdn` | Boolean | Required | CDN 신규 생성 여부 - `true` \| `false` - `true`: 신규 생성 - `false`: 신규 CDN 생성 하지 않음. - `false`인 경우, [VOD Station CDN 수동 연동](https://guide.ncloud-docs.com/docs/vod-station-cdn-custom-connection) 참조 | | `cdn` | Object | Conditional | CDN 설정 - `createCdn`이 `true`인 경우, 필수 입력 - Global Edge 연동 시 사용 | | `cdn.profileId` | Integer | Conditional | 프로필 아이디 - [프로필 목록 조회](/docs/profile-listing) 참조 | | `cdn.regionType` | String | Conditional | Global Edge 서비스 지역 - `KOREA` \| `JAPAN` \| `GLOBAL` - `KOREA`: 한국 - `JAPAN`: 일본 - `GLOBAL`: 글로벌 | | `cdn.type` | String | Conditional | CDN 유형 - `GLOBAL_EDGE` (유효 값) | | `drm` | Object | Optional | Multi DRM 설정 - [One Click Multi DRM](/docs/one-click-multi-drm-api-overview) 참조 | | `drm.siteId` | String | Conditional | 사이트 아이디 - [Site 목록 조회](/docs/site-list) 참조 - Multi DRM을 설정하는 경우, 필수 입력 | | `drm.contentId` | String | Conditional | 콘텐츠 아이디 - 영문자, 숫자, 특수 문자 '-', '_'를 조합하여 3~100자 이내로 입력 - Multi DRM을 설정하는 경우, 필수 입력 | | `notificationUrl` | String | Optional | 채널(Callback) URL - [채널 콜백 사용](/docs/vodstation-channel-callback) 참고 | #### `encryptionList` `encryptionList`에 대한 설명은 다음과 같습니다. | 필드 | 타입 | 필수 여부 | 설명 | | --- | --- | --- | --- | | `drmContentId` | String | Optional | DRM 콘텐츠 아이디 - 영문자, 숫자를 조합하여 1~200자 이내로 입력 - DRM Key 요청 시 해당 값을 포함해 요청하며, 라이선스(License) 발급 시 필요 | | `drmKeyUrl` | String | Optional | DRM Key URL - DRM 제공사의 CPIX API URL - VOD Station은 공식적으로 Inka Pallyacon DRM의 CPIX v1 API와의 연동을 지원 - DRM 패키징을 위해 VOD Station은 xml body를 포함해 POST로 요청 - `http(s)://` 포함 - Media Encryption를 설정하는 경우, 불필요 | | `systemIdList` | Array | Optional | DRM 시스템 아이디 - DRM 시스템 고유 식별자 - 영문자, 숫자, 특수문자 '-'를 조합하여 공백 없이 1~256자 이내로 입력 - Media Encryption를 설정하는 경우, 불필요 - DRM 유형에 맞게 1~2개의 시스템 아이디 포함 필수 | | `drmTypeCode` | Integer | Optional | DRM 유형 - `21` \| `22` - `21`: FairPlay - `22`: Widevine/PlayReady - Media Encryption를 설정하는 경우, 불필요 | | `mediaEncryptTypeCode` | Integer | Optional | Media Encryption(HLS AES-128) 코드 설정 - `1` \| `2` \| `3` - `1`: AES-128 - `2`: Sample-AES - `3`: CENC - `drmTypeCode`가 `21`인 경우, 설정 불가 - DRM을 설정하는 경우, 불필요 | | `protocol` | String | Required | 프로토콜 설정 - `HLS` \| `DASH` - `HLS`: FairPlay/Media Encryption - `DASH`: Widevine/PlayReady | 참고 송출 영상 보안 설정 관련 필드는 [송출 영상 보안 설정](/docs/vodstation-channel-create#%EC%86%A1%EC%B6%9C%EC%98%81%EC%83%81%EB%B3%B4%EC%95%88%EC%84%A4%EC%A0%95)을 참조하여 입력해 주십시오. ### 요청 예시 요청 예시는 다음과 같습니다. - 미디어 암호화(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" }, "notificationUrl": "https://example.com/vodstation/callback" }' ``` ## 응답 응답 형식을 설명합니다. ### 응답 바디 응답 바디에 대한 설명은 다음과 같습니다. | 필드 | 타입 | 필수 여부 | 설명 | | --- | --- | --- | --- | | `content` | Object | - | 응답 결과 | | `content.disabled` | Boolean | - | Sub Account 비활성화 여부 - `true` \| `false` - `true`: 비활성 - `false`: 활성 | | `content.id` | String | - | 채널 아이디 | | `content.name` | String | - | 채널 이름 | | `content.channelStatus` | String | - | 채널 상태 - `CREATING` \| `READY` \| `STOPPING` \| `STOPPED` \| `TERMINATING` \| `TERMINATED` \| `FORCE_STOPPING` \| `FORCE_STOPPED` \| `FORCETERMINATING` \| `FORCETERMINATED` | | `content.storageBucketName` | String | - | 채널이 스트리밍할 영상이 저장되어 있는 버킷 이름 | | `content.segmentDuration` | Integer | - | 세그먼트당 재생 시간(초) | | `content.protocolList` | Array | - | 스트리밍 프로토콜 목록 - `HLS` \| `DASH` | | `content.createTime` | Integer | - | 채널 생성 시작 일시(초) - Unix Timestamp 형식 | | `content.cdnCreatedTime` | Integer | - | 채널에 연동하여 자동 생성된 CDN의 생성 일시(초) - Unix Timestamp 형식 | | `content.playUrl` | String | - | CDN을 통한 재생 URL 템플릿 | | `content.cdnStatus` | String | - | 채널에 연동된 CDN의 상태 - 자동 생성하지 않으면 `NOT_FOUND`로 표시 | | `content.cdnDomain` | String | - | 자동 생성된 Global Edge 도메인 | | `content.cdnServiceName` | String | - | 자동 생성된 Global Edge 서비스 이름 | | `content.storageBucketStatus` | String | - | 채널에 연동된 Object Storage 버킷의 상태 | | `content.originPath` | String | - | 생성한 채널의 원본 경로 - 별도 CDN 생성 시 사용 | | `content.encryptList` | Array | - | 채널의 콘텐츠 보호 설정 정보: [encryptList](/docs/vodstation-channel-create#encryptList2) | | `content.accessPrivateFiles` | Boolean | - | 버킷 내 비공개 파일 접근 제한 설정 여부 - `true` \| `false` - `true`: 제한 - `false`: 허용 - 허용 시 비공개 파일도 스트리밍 가능 | | `content.encryptedBucketName` | String | - | 채널에 연동된 버킷의 암호화된 이름 - 재생 URL 생성 시 사용 | | `content.segmentDurationOption` | String | - | 세그먼트 분할 방식 설정 - `BASIC` \| `VARIABLE` - `BASIC`: `segmentDuration` 설정 간격으로 일정하게 세그먼트 생성 - `VARIABLE`: 모든 세그먼트가 키 프레임(keyframe)으로 시작하도록 세그먼트 생성 - `VARIABLE` 옵션을 선택한 경우, `segmentDuration` 값과 실제 생성된 세그먼트 재생 시간에 차이 발생 가능성 존재 | | `content.cdn` | Object | - | 자동 생성된 CDN(Global Edge) 정보 | | `content.cdn.cdnType` | String | - | CDN 유형 - `GLOBAL_EDGE` (유효 값) | | `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 인스턴스 아이디 | | `content.notificationUrl` | String | - | 채널(Callback) URL | #### `encryptList` `encryptList`에 대한 설명은 다음과 같습니다. | 필드 | 타입 | 필수 여부 | 설명 | | --- | --- | --- | --- | | `drmContentId` | String | - | DRM 콘텐츠 아이디 - DRM Key 요청 시 해당 값을 포함해 요청하며, 라이선스(License) 발급 시 필요 | | `drmKeyUrl` | String | - | DRM Key URL - DRM 제공사의 CPIX API URL - VOD Station은 공식적으로 Inka Pallyacon DRM의 CPIX v1 API와의 연동을 지원 | | `systemIdList` | Array | - | DRM 시스템 아이디 - DRM 시스템 고유 식별자 | | `drmTypeCode` | Integer | - | DRM 유형 - `21` \| `22` - `21`: FairPlay - `22`: Widevine/PlayReady | | `drmTypeName` | String | - | DRM 유형 이름 | | `protocol` | String | - | 설정된 프로토콜 - `HLS` \| `DASH` - `HLS`: FairPlay/Media Encryption - `DASH`: Widevine/PlayReady | | `mediaEncryptTypeCode` | Integer | - | 설정된 Media Encryption(HLS AES-128) 코드 설정 - `1` \| `2` \| `3` - `1`: AES-128 - `2`: Sample-AES - `3`: CENC | | `mediaEncryptionTypeName` | String | - | 설정된 Media Encryption(HLS AES-128) 타입 이름 - `AES-128` \| `Sample-AES` \| `CENC` | ### 응답 상태 코드 VOD Station API에서 공통으로 사용하는 응답 상태 코드에 대한 정보는 [VOD Station 응답 상태 코드](/docs/vodstation#%EC%9D%91%EB%8B%B5%EC%83%81%ED%83%9C%EC%BD%94%EB%93%9C)를 참조해 주십시오. ### 응답 예시 응답 예시는 다음과 같습니다. ``` { "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": ***** }, "notificationUrl": "https://example.com/vodstation/callback" } } ``` ## 송출 영상 보안 설정 생성한 채널에서 송출할 영상 콘텐츠의 보안을 위해 다양한 설정을 지원합니다. ### 콘텐츠 접근 제어 Global Edge 서비스와 연동하여 Global Edge의 콘텐츠 인증 제어를 통해 송출 영상 콘텐츠의 접근을 제한할 수 있습니다. 콘텐츠 인증 제어 방식에는 Signed URL, JSON Web Token이 있습니다. 각 방식별 사용 방법은 Global Edge 사용 가이드의 [Signed URL](https://guide.ncloud-docs.com/docs/globaledge-signedurl), [JSON Web Token](https://guide.ncloud-docs.com/docs/globaledge-jwt)을 참조해 주십시오. - 인증 토큰 발급 시 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/* - 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/* - Global Edge의 캐시 설정 중 Edge Auth를 생성한 채널의 Output Protocol에 맞게 설정해야 합니다. 설정 방법은 [Global Edge API 가이드](/docs/edge-edit)를 참조해 주십시오. - 인증 제외 확장자 - .ts, .mp4, .m4s, .vtt, .key - 인증 토큰을 원본에 전달하는 확장자 - .m3u8, .mpd ### 콘텐츠 보호 One Click Multi DRM 서비스와 연동하여 Multi DRM을 통해 영상 콘텐츠를 암호화 후 송출하여 불법 복제 및 유통을 방지할 수 있습니다. 채널 생성 시 `drm` 객체를 통해 간편하게 DRM 기능을 설정할 수 있으며, 선택한 Output Protocol에 따라 Multi DRM이 적용됩니다. DRM 기술별 암호화 방식, 지원 단말, 플랫폼 및 버전 등에 대한 자세한 내용은 [VOD Station 사용 가이드](https://guide.ncloud-docs.com/docs/vodstation-vodstationchannel#%EC%BD%98%ED%85%90%EC%B8%A0%EB%B3%B4%ED%98%B8%EC%84%A4%EC%A0%95) 및 [DoveRunner(구 PallyCon) 가이드](https://pallycon.com/drm-platform/)를 참조해 주십시오. | 암호화 방식 | 프로토콜 | DRM 유형 | 암호화 알고리즘 | 지원 단말 | | --- | --- | --- | --- | --- | | HLS AES-128 | HLS | - | AES-128 | MS Edge, IE11, Chrome, Firefox, Opera HLS HTML5 | | DRM | HLS | - FairPlay: Apple에서 제공하는 DRM 기술 규격으로, 각 HLS 세그먼트를 AES-CBC 방식으로 암호화 | SAMPLE-AES | Mac/iOS Safari 브라우저, iOS/iPadOS/tvOS 앱, HLS HTML5 | | DRM | DASH | - PlayReady: Microsoft에서 제공하는 DRM 기술 규격으로, Common Encryption 규격에 따라 AES-128 방식으로 암호화 - Widevine: Google에서 제공하는 DRM 기술 규격으로, Common Encryption 규격에 따라 AES-128 방식으로 암호화 | CENC (Common Encryption) | MS Edge, IE11, Chrome, Firefox, Opera DASH HTML5 |