채널 생성

Prev Next

Classic/VPC 환경에서 이용 가능합니다.

VOD 스트리밍을 위한 채널을 생성합니다.

요청

요청 형식을 설명합니다. 요청 형식은 다음과 같습니다.

메서드 URI
POST /api/v2/channels

요청 헤더

VOD Station API에서 공통으로 사용하는 헤더에 대한 정보는 VOD Station 요청 헤더를 참조해 주십시오.

요청 바디

요청 바디에 대한 설명은 다음과 같습니다.

필드 타입 필수 여부 설명
name String Required 채널 이름
  • 영문자, 숫자, 특수 문자 '-'를 허용하며, 3~20자 이내로 입력
storageBucketName String Required 스트리밍 영상 저장 버킷 이름
accessPrivateFiles Boolean Optional 버킷 내 비공개 파일 접근 제한 설정 여부
  • true | false (기본값)
    • true: 허용
    • false: 제한
  • 허용 시 비공개 파일도 스트리밍 가능
protocolList Array Required 스트리밍 프로토콜 목록
  • HLS | DASH
  • 중복 선택 가능
encryptionList Array Optional 채널의 콘텐츠 보호 설정: encryptionList
segmentDuration Integer Required 세그먼트당 재생 시간(초)
  • 5~20
  • 세그먼트 재생 시간이 길면 파일 크기가 커지고 로딩이 길어질 수 있음
  • 세그먼트 재생 시간이 짧으면 파일 크기는 작아지지만, 버퍼링이 발생할 수 있음
segmentDurationOption String Optional 세그먼트 분할 방식 설정
  • BASIC (기본값) | VARIABLE
    • BASIC: segmentDuration 설정 간격으로 일정하게 세그먼트 생성
    • VARIABLE: 모든 세그먼트가 키 프레임(keyframe)으로 시작하도록 세그먼트 생성
  • VARIABLE 옵션을 선택한 경우, segmentDuration 값과 실제 생성된 세그먼트 재생 시간에 차이 발생 가능성 존재
  • 안정적인 스트리밍 서비스를 위해서는 BASIC 옵션 사용 권장
createCdn Boolean Required CDN 신규 생성 여부
cdn Object Conditional CDN 설정
  • createCdntrue인 경우, 필수 입력
  • Global Edge 연동 시 사용
cdn.profileId Integer Conditional 프로필 아이디
cdn.regionType String Conditional Global Edge 서비스 지역
  • KOREA | JAPAN | GLOBAL
    • KOREA: 한국
    • JAPAN: 일본
    • GLOBAL: 글로벌
cdn.type String Conditional CDN 유형
  • GLOBAL_EDGE (유효 값)
drm Object Optional Multi DRM 설정
drm.siteId String Conditional 사이트 아이디
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
  • drmTypeCode21인 경우, 설정 불가
  • DRM을 설정하는 경우, 불필요
protocol String Required 프로토콜 설정
  • HLS | DASH
    • HLS: FairPlay/Media Encryption
    • DASH: Widevine/PlayReady
참고

송출 영상 보안 설정 관련 필드는 송출 영상 보안 설정을 참조하여 입력해 주십시오.

요청 예시

요청 예시는 다음과 같습니다.

  • 미디어 암호화(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 비활성화 여부
  • 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
    • 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
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 인스턴스 아이디

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 응답 상태 코드를 참조해 주십시오.

응답 예시

응답 예시는 다음과 같습니다.

{
    "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/*
    • 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 가이드를 참조해 주십시오.
    • 인증 제외 확장자
      • .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
  • 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