--- title: "채널 생성" slug: "vodstation-channel-create" updated: 2026-10-22T10:47:44Z published: 2026-10-22T10:47:44Z canonical: "api-gov.ncloud-docs.com/vodstation-channel-create" --- > ## Documentation Index > Fetch the complete documentation index at: https://api-gov.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-gov.ncloud-docs.com/docs/vod-station-cdn-custom-connection) 참조 | | `cdnTypeList` | Array | Optional | `CDN+` - `createCdn` = `true`인 경우, 필수 입력 - 현재 자동 채널 생성은 CDN+만 지원하고 있으며, 별도 CDN 생성은 [CDN+ 연동 가이드](https://guide-gov.ncloud-docs.com/docs/vodstation-vodstationchannel#cdn-%EC%97%B0%EB%8F%991) 참조 | | `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을 설정하는 경우, 필수 입력 | #### `encryptionList` `encryptionList`에 대한 설명은 다음과 같습니다. | 필드 | 타입 | 필수 여부 | 설명 | | --- | --- | --- | --- | | `drmContentId` | String | Optional | DRM 콘텐츠 아이디 - 영문자, 숫자를 허용하며, 3~100자 이내로 입력 - 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://vod-station.apigw.gov-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 비활성화 여부 - `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 | - | 자동 생성된 CDN+ 도메인 | | `content.cdnServiceName` | String | - | 자동 생성된 CDN+ 서비스 이름 | | `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` 값과 실제 생성된 세그먼트 재생 시간에 차이 발생 가능성 존재 | #### `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" } } ``` ## 송출 영상 보안 설정 생성한 채널에서 송출할 영상 콘텐츠의 보안을 위해 다양한 설정을 지원합니다. ### 콘텐츠 접근 제어 VOD Station과 연동된 CDN+에서 콘텐츠 인증(Secure Token) 사용 시 유의 사항은 다음과 같습니다. - CDN+의 Viewer 설정 중 Secure Token을 아래와 같이 설정해야 합니다. CDN+ Viewer 설정 변경 방법은 [사용 가이드](https://guide-gov.ncloud-docs.com/docs/networking-networking-8-1#viewer-%EC%A0%84%EC%86%A1-%EC%84%A4%EC%A0%95)를 참조해 주십시오. - 인증 예외 대상 확장자 - .ts, .mp4, .m4s, .vtt, .key - 원본에 Token 전달하는 확장자 - .m3u8, .mpd - 인증 토큰 발급 시 ACL에 wildcard path를 입력해야 합니다. - 단일 비트레이트 재생: '/[protocol]/[encryptedBucketName]/[path]/[video filename]/*' - <예시> - HLS: https://example.cdn.ntruss.com/hls/guide/vod-5100k.mp4/index.m3u8 - wildcard path: '/hls/guide/vod-5100k.mp4/*' - DASH: https://example.cdn.ntruss.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.cdn.ntruss.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.cdn.ntruss.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/*' ### 콘텐츠 보호 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 |