채널 생성

Prev Next

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

방송 송출을 위한 라이브 채널을 생성합니다.

요청

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

메서드 URI
POST /api/v2/channels

요청 헤더

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

요청 바디

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

필드 타입 필수 여부 설명
channelName String Required 채널 이름
  • 한글, 영문자, 숫자, 특수 문자 '_'를 허용하며, 3~20자 이내로 입력
envType String Optional 채널 타입
  • REAL (기본값) | DEV | STAGE
  • 적용할 서비스 환경 구분자
outputProtocol String Optional Output Protocol 설정
  • HLS (기본값) | LL_HLS | HLS,DASH
    • HLS: 안정적이고 호환성 높은 HLS 스트리밍을 이용하기 위한 옵션
    • LL_HLS: CMAF 이용한 저지연 HLS 스트리밍을 위한 옵션
      • LL-HLS 정식 버전은 Global Edge 연동 환경에서만 지원
      • Global Edge CDN의 서비스 지역이 한국인 경우에 사용 가능
    • HLS,DASH: 일반 HLS와 Dash 모두 스트리밍 가능한 옵션
cdn Object Required CDN 설정
cdn.createCdn Boolean Required CDN 신규 생성 여부
  • true | false
    • true: 신규 생성
    • false: 보유 CDN 사용
cdn.cdnType String Required CDN 유형
  • GLOBAL_EDGE (유효 값)
cdn.cdnDomain String Conditional Global Edge 도메인
cdn.profileId Integer Required Global Edge 프로필 아이디
cdn.regionType String Conditional Global Edge 서비스 지역
  • KOREA | JAPAN | GLOBAL
    • KOREA: 한국
    • JAPAN: 일본
    • GLOBAL: 글로벌
  • cdn.createCdntrue인 경우, 필수 입력
cdn.cdnInstanceNo Integer Conditional Global Edge 인스턴스 아이디
qualitySetId Integer Required 화질 설정 아이디
useDvr Boolean Required 타임머신 설정 여부
  • true | false
    • true: 설정
    • false: 설정 안 함
  • 설정 시 송출 중인 라이브 방송을 되돌려 볼 수 있음
immediateOnAir Boolean Optional 송출 즉시 자동 녹화 설정 여부
  • true | false
    • true: 자동
    • false: 수동
timemachineMin Integer Conditional 타임머신 허용 범위(분)
  • 360 (유효 값)
  • useDvrtrue인 경우, 필수 입력
record Object Required 녹화 저장 정보
record.format String Conditional 자동 저장 녹화 타입
  • MP4 | HLS | ALL
  • 녹화 파일 포맷 지정
  • record.typeAUTO_UPLOAD인 경우, 필수 입력
record.type String Required 녹화 저장 설정
  • NO_RECORD | AUTO_UPLOAD | MANUAL_UPLOAD
    • NO_RECORD: 녹화 안 함
    • AUTO_UPLOAD: 자동 저장
    • MANUAL_UPLOAD: 임시 저장
record.bucketName String Conditional 녹화 파일 저장 버킷 이름
  • ListBuckets 참조
  • record.typeAUTO_UPLOAD인 경우, 필수 입력
record.filePath String Conditional 저장 상세 경로
  • /로 시작
  • record.typeAUTO_UPLOAD인 경우, 필수 입력
record.accessControl String Conditional 녹화 파일 저장 버킷 공개 범위
  • PRIVATE (기본값) | PUBLIC_READ
    • PRIVATE: 비공개
    • PUBLIC_READ: 공개
  • record.typeAUTO_UPLOAD인 경우, 필수 입력
isStreamFailOver Boolean Optional 송출 이중화 설정 여부
  • true | false
    • true: 사용
    • false: 사용 안 함
  • 사용 시 반드시 메인 스트림 먼저 송출
drmEnabledYn Boolean Required Multi DRM 사용 여부
  • true | false
    • true: 사용
    • false: 사용 안 함
drm Object Conditional Multi DRM 설정
  • drmEnabledYntrue인 경우, 필수 입력
drm.siteId String Conditional 사이트 아이디
drm.contentId String Conditional 콘텐츠 아이디
  • 영문자, 숫자, 특수 문자 '-', '_'를 허용하며, 3~100자 이내로 입력
참고

요청 바디 입력 시 다음 내용을 참고해 주십시오.

  • cdn 설정 시 이용 중이던 CDN+를 Global Edge로 전환하여 입력할 수 있습니다. 전환 방법은 CDN 변경을 참조해 주십시오.
  • 원활한 LL-HLS 채널 사용을 위해 키 프레임은 1초로 설정하는 것을 권장합니다. 자세한 내용은 권장 송출 옵션을 참조해 주십시오.
  • 송출 영상 보안 설정 관련 필드는 송출 영상 보안 설정을 참조하여 입력해 주십시오.
주의
  • Live Station 서비스를을 통해 변환된 영상은 네이버 클라우드 플랫폼의 Global Edge 서비스를 통해 시청자에게 전송됩니다. 따라서 Live Station 서비스를 통해 방송 송출 시 Global Edge 이용 요금이 별도 부과됩니다.
  • 조건에 맞지 않는 CDN을 연동할 경우, 안정적인 라이브 방송 재생이 불가능합니다. Live Station 서비스에 연동할 수 있는 CDN은 다음과 같습니다.
    • 다른 라이브 채널 생성 과정에서 생성된 CDN
    • Live Station 서비스를 연동할 수 있도록 필수 설정이 되어 있는 CDN
    • 네이버 클라우드 플랫폼에서 생성한 CDN
    • 연동할 채널에 할당된 원본 도메인 및 전용 경로가 설정된 CDN
    • 다음과 같이 설정된 CDN
      • 원본 통신의 프로토콜: HTTPS(443 포트)
      • Forward Host Header: Origin Hostname
      • Cache Key Hostname: Incoming Host Header
      • Caching Option: 원본의 Cache-Control 헤더 우선
      • Force Revalidation of Stale Object: 유효한 콘텐츠만 제공

요청 예시

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

curl --location --request POST 'https://livestation.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}' \
--header 'x-ncp-region_code: KR' \
--header 'Content-Type: application/json' \
--data '{
    "channelName": "testchannel",
    "envType": "DEV",
    "outputProtocol": "LL_HLS",
    "cdn": {
        "createCdn": true,
        "cdnType": "GLOBAL_EDGE",
        "profileId": 4207,
        "regionType": "KOREA"
    },
    "qualitySetId": 2585,
    "useDvr": true,
    "immediateOnAir": true,
    "timemachineMin": 360,
    "record": {
        "format": "MP4",
        "type": "AUTO_UPLOAD",
        "bucketName": "mybucket",
        "filePath": "/livestation",
        "accessControl": "PRIVATE"
    },
    "isStreamFailOver": true,
    "drmEnabledYn": false
}'

응답

응답 형식을 설명합니다.

응답 바디

응답 바디에 대한 설명은 다음과 같습니다.

필드 타입 필수 여부 설명
content Object - 응답 결과
content.channelName String - 채널 이름
content.cdn Object - CDN 설정
content.cdn.createCdn Boolean - CDN 신규 생성 여부
  • true | false
    • true: 신규 생성
    • false: 보유 CDN 사용
content.cdn.cdnType String - CDN 유형
  • GLOBAL_EDGE (유효 값)
content.cdn.cdnInstanceNo Integer - Global Edge 인스턴스 아이디
content.cdn.profileId Integer - Global Edge 프로필 아이디
content.cdn.regionType String - Global Edge 서비스 지역
  • KOREA | JAPAN | GLOBAL
    • KOREA: 한국
    • JAPAN: 일본
    • GLOBAL: 글로벌
content.qualitySetId Integer - 화질 설정 아이디
content.useDvr Boolean - 타임머신 설정 여부
  • true | false
    • true: 설정
    • false: 설정 안 함
content.immediateOnAir Boolean - 송출 즉시 자동 녹화 설정 여부
  • true | false
    • true: 자동
    • false: 수동
content.timemachineMin Integer - 타임머신 허용 범위(분)
content.channelId String - 채널 아이디
content.uploadPath String - 녹화 파일 업로드 경로
content.envType String - 채널 타입
  • DEV | STAGE | REAL
content.record Object - 녹화 저장 정보
content.record.type String - 녹화 저장 설정
  • NO_RECORD | AUTO_UPLOAD | MANUAL_UPLOAD
    • NO_RECORD: 녹화 안 함
    • AUTO_UPLOAD: 자동 저장
    • MANUAL_UPLOAD: 임시 저장
content.record.bucketName String - 녹화 파일 저장 버킷 이름
content.record.filePath String - 저장 상세 경로
content.record.format String - 자동 저장 녹화 타입
  • MP4 | HLS | ALL
content.record.accessControl String - 녹화 파일 저장 버킷 공개 범위
  • PRIVATE | PUBLIC_READ
    • PRIVATE: 비공개
    • PUBLIC_READ: 공개
content.outputProtocol String - Output Protocol
content.origin Object - 원본 정보
content.origin.originDomain String - 원본 도메인
content.origin.originPath String - 원본 경로
content.isStreamFailOver Boolean - 송출 이중화 설정 여부
  • true | false
    • true: 사용
    • false: 사용 안 함
content.drmEnabledYn Boolean - Multi DRM 사용 여부
  • true | false
    • true: 사용
    • false: 사용 안 함
content.drm Object - Multi DRM 설정
  • content.drmEnabledYntrue인 경우, 하위 정보 표시
content.drm.siteId String - 사이트 아이디
content.drm.contentId String - 콘텐츠 아이디

응답 상태 코드

Live Station API에서 공통으로 사용하는 응답 상태 코드에 대한 정보는 Live Station 응답 상태 코드를 참조해 주십시오.

응답 예시

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

{
    "content": {
        "channelName": "testchannel",
        "cdn": {
            "createCdn": true,
            "cdnType": "GLOBAL_EDGE",
            "cdnInstanceNo": 1***2,
            "profileId": 4207,
            "regionType": "KOREA"
        },
        "qualitySetId": 2585,
        "useDvr": true,
        "immediateOnAir": true,
        "timemachineMin": 360,
        "channelId": "ls-20250818******-UbUBe",
        "uploadPath": "/mybucket/livestation",
        "envType": "DEV",
        "record": {
            "type": "AUTO_UPLOAD",
            "bucketName": "mybucket",
            "filePath": "/livestation",
            "format": "MP4",
            "accessControl": "PRIVATE"
        },
        "outputProtocol": "LL_HLS",
        "origin": {
            "originDomain": "*****.video.media.ntruss.com",
            "originPath": "27***85"
        },
        "isStreamFailOver": true,
        "drmEnabledYn": false
    }
}

송출 영상 보안 설정

생성한 채널에서 송출할 영상 콘텐츠의 보안을 위해 다양한 설정을 지원합니다.

콘텐츠 접근 제어

Global Edge 서비스와 연동하여 Global Edge의 콘텐츠 인증 제어를 통해 송출 영상 콘텐츠의 접근을 제한할 수 있습니다. 콘텐츠 인증 제어 방식에는 Signed URL, JSON Web Token이 있습니다. 각 방식별 사용 방법은 Global Edge 사용 가이드의 Signed URL, JSON Web Token을 참조해 주십시오.

  • 인증 토큰 발급 시 Signed URL 방식은 ACL에, JSON Web Token 방식은 path에 와일드카드 경로를 입력해야 합니다.
    • 와일드카드 경로: /live/video/{channelId}/*
  • Global Edge의 캐시 설정 중 Edge Auth를 생성한 채널의 Output Protocol에 맞게 설정해야 합니다. 설정 방법은 Global Edge API 가이드를 참조해 주십시오.
    • 인증 제외 확장자
      • HLS: .ts, .jpg
      • HLS/DASH: .ts, .jpg, .m4s, .m4v, .m4a
      • LL_HLS: .jpg, .m4s, .m4v, .m4a
    • 인증 토큰을 원본에 전달하는 확장자
      • HLS: .m3u8
      • HLS/DASH: .m3u8, .mpd
      • LL_HLS: playlist.m3u8

콘텐츠 보호

One Click Multi DRM 서비스와 연동하여 Multi DRM을 통해 영상 콘텐츠를 암호화 후 송출하여 불법 복제 및 유통을 방지할 수 있습니다. 채널 생성 시 drm 객체를 통해 간편하게 DRM 기능을 설정할 수 있으며, 선택한 Output Protocol에 따라 Multi DRM이 적용됩니다. DRM 기술별 암호화 방식, 지원 단말, 플랫폼 및 버전 등에 대한 자세한 내용은 DoveRunner(구 PallyCon) 가이드를 참조해 주십시오.

암호화 방식 프로토콜 DRM 유형 암호화 알고리즘 지원 단말
DRM HLS
  • FairPlay: Apple에서 제공하는 DRM 기술 규격으로, 각 HLS 세그먼트를 AES-CBC 방식으로 암호화
AES-CBC 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
참고
  • One Click Multi DRM 서비스 연동 시 Single-key 패키징만 지원합니다.
  • Passthrough 화질이 포함된 화질 설정을 사용하는 채널은 DRM 서비스 지원하지 않습니다.