채널 생성
    • PDF

    채널 생성

    • PDF

    Article Summary

    Live Station 의 채널을 생성하는 API 입니다. 생성한 채널 조회를 위해 채널 목록 조회 API채널 정보 조회 API를 제공합니다.

    참고

    채널 생성 시 유의 사항은 다음과 같습니다.

    • 송출 이중화 설정을 사용할 경우 반드시 메인 스트림을 먼저 송출해야 합니다.
    • LL-HLS 채널 생성이 필요 하신 경우, 반드시 Low Latency 용 화질 세트를 활용해야만 합니다.
    • LL-HLS 정식 버전은 Global Edge CDN 연동 환경에서만 지원합니다.
    • 기존 생성된 CDN을 사용할 경우 기존 생성된 CDN 갱신이 필요합니다. CDN 갱신 방법은 사용 가이드를 참고해 주십시오.
    • 원활한 LL-HLS 채널 사용을 위해 키 프레임을 1초로 설정하는 것을 권장합니다. 자세한 송출 방법은 사용 가이드를 참고해 주십시오.
    • Live Station은 One Click Multi DRM 과 손쉬운 연동을 지원하며, Single-key 패키징만 지원합니다.
    • Passthrough 화질이 포함된 화질 설정을 사용하는 채널은 DRM Encryption 을 지원하지 않습니다.
    참고

    Live Station 과 연동된 Global Edge의 콘텐츠 인증(Signed URL/JWT) 제어 사용 시 유의 사항은 다음과 같습니다.

    • Global Edge 의 캐시 설정 중 Edge Auth 를 생성한 채널의 outputProtocol에 맞게 설정해야 합니다. 자세한 Global Edge Edge Auth 설정 변경 방법은 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
    • 인증 토큰 발급 시 Signed URL, JWT 각각 acl, path에 wildcard path를 입력해야 합니다. 자세한 인증 토큰 발급 방식은 사용 가이드 를 참고해 주십시오.
      • wildcard path : '/live/video/{channelId}/*'

    콘텐츠 보호 설정

    Live Station DRM Encryption 은 실시간 콘텐츠의 Multi DRM 을 지원합니다.
    채널 생성 내 DRM 설정 영역에서 간편하게 DRM 기능을 설정할 수 있으며 선택한 OutputProtocol 에 따라 Multi DRM Encryption 을 지원합니다.
    DRM 기술별 암호화 방식 및 지원 단말과 다른 플랫폼 및 버전에 대한 상세 정보는 링크를 참고해 주십시오.

    암호화 방식프로토콜DRM 유형암호화 알고리즘지원 단말
    DRMHLSFairPlayAES-CBCMac/iOS Safari 브라우저, iOS/iPadOS/tvOS 앱, HLS HTML5
    DRMDASHPlayReady, WidevineCENC (Common Encryption)MS Edge, Internet Explorer 11, Google Chrome, Firefox, Opera DASH HTML5
    • DRM 유형
      • FairPlay: Apple에서 제공하는 DRM 기술 규격입니다. 각 HLS 세그먼트를 AES-CBC 방식으로 암호화합니다.
      • Widevine: Google에서 제공하는 DRM 기술 규격입니다. Common Encryption 규격에 따라 AES-128 방식으로 암호화합니다.
      • PlayReady: Microsoft에서 제공하는DRM 기술 규격입니다. Common Encryption 규격에 따라 AES-128 방식으로 암호화합니다.

    요청

    POST https://livestation.apigw.ntruss.com/api/v2/channels
    

    요청 헤더

    헤더명필수 여부설명
    x-ncp-apigw-timestampYES1970년 1월 1일 00:00:00 협정 세계시(UTC)부터의 경과 시간을 밀리초(Millisecond)로 나타냄
    API Gateway 서버와 시간 차가 5분 이상 나는 경우 유효하지 않은 요청으로 간주
    x-ncp-apigw-timestamp:{Timestamp}
    x-ncp-iam-access-keyYES네이버 클라우드 플랫폼 포털에서 발급받은 Access Key ID 값
    x-ncp-iam-access-key:{Sub Account Access Key}
    x-ncp-apigw-signature-v2YESAccess Key ID 값과 Secret Key로 암호화한 서명
    x-ncp-apigw-signature-v2:{API Gateway Signature}
    Content-TypeYESRequest body content type을 application/json으로 지정
    Content-Type: application/json
    x-ncp-region_codeYES리전 코드 (KR)

    요청 바디

    필드명필수 여부타입제약 사항설명
    channelNameYesString최소 3글자 이상 최대 20자 문자까지 입력 가능
    특수 문자 붙임표(-) 허용
    생성할 채널의 이름
    envTypeOptionalStringDEV
    STAGE
    REAL
    입력 하지 않을 경우 REAL 로 디폴트 셋팅
    outputProtocolOptionalStringHLS
    HLS,DASH
    LL_HLS
    입력 하지 않을 경우 HLS 로 디폴트 셋팅
    cdnYesObjectCDN Object
    cdn.createCdnYesBooleantrue, falseCDN Object
    cdn.cdnTypeYesStringCDN_PLUS, GLOBAL_CDN,GLOBAL_EDGE
    cdn.profileIdYesIntegerGLOBAL_EDGE 신규 생성시 필요한 Global Edge 의 프로필
    cdn.regionTypeYesStringKOREA,JAPAN,GLOBALGlobal Edge 서비스 지역
    cdn.cdnInstanceNoOptionalIntegercdn.createCdn 이 false 일 경우 반드시 설정해야 함
    qualitySetIdYesIntegerLL-HLS 채널을 생성할 경우, Low Latency 용 화질 세트 요청
    useDvrYesBooleantrue, false
    immediateOnAirOptionalBooleantrue, false송출과 동시에 녹화가 진행되는 자동 녹화 옵션
    timemachineMinOptionalInteger단위는 분(minutes) 이며 360 으로만 설정 가능녹화 시작 시점까지 영상을 되돌려 볼 수 있는 타임머신 기능 관련 옵션
    useDvr 이 true 일 경우 반드시 설정해야 함
    recordYesObject
    record.formatOptionalStringMP4,HLS,ALL버킷으로 자동 저장 되는 녹화 파일의 타입을 지정
    record.typeYesStringNO_RECORD, AUTO_UPLOAD, MANUAL_UPLOAD저장된 녹화 파일 업로드 타입을 지정
    "NO_RECORD" 로 설정 시 녹화 기능 사용 불가
    record.bucketNameOptionalString자동 저장 기능을 통해 라이브 방송 종료 후 입력한 Bucket 에 녹화 파일이 자동 저장
    record.filePathOptionalString자동 저장 기능을 통해 라이브 방송 종료 후 지정한 filePath 에 녹화 파일이 자동 저장
    filePath 는 "/" 부터 시작 해야함
    record.accessControlOptionalStringPRIVATE, PUBLIC_READ자동 저장 기능을 통해 녹화 파일 업로드시 Object Storage Bucket 공개 범위를 지정하는 옵션
    Default: PRIVATE
    isStreamFailOverOptionalBooleantrue, false송출 이중화 적용을 위한 옵션
    송출 이중화 설정을 통해 송출 인코더 이중화 구성
    drmEnabledYnYesBooleanDRM Encryption 설정 적용 유무
    drmOptionalObjectLive Station 을 활용한 DRM Encryption 설정
    DRM 설정 시 FairPlay, Widevine/PlayReady DRM 지원
    drm.siteIdOptionalStringOne Click Multi DRM 상품을 통해 생성한 site id
    drm.contentIdOptionalStringDRM Encryption 을 적용할 콘텐츠의 고유 ID
    DRM 패키징을 위해 사용되며 최소 3글자 이상 영문/숫자 또는 ‘-'(하이픈), ‘_'(언더바) 포함 최대 100자 문자까지 입력 가능합니다.

    응답

    필드명타입설명비고
    channelIdString
    channelNameString
    envTypeString입력 하지 않을 경우 REAL 로 디폴트 셋팅DEV
    STAGE
    REAL
    outputProtocolString입력 하지 않을 경우 HLS 로 디폴트 셋팅HLS
    HLS,DASH
    LL_HLS
    cdnObject
    cdn.createCdnBoolean
    cdn.cdnTypeStringCDN_PLUS, GLOBAL_CDN,GLOBAL_EDGE
    cdn.profileIdIntegerGLOBAL_EDGE 신규 생성시 필요한 Global Edge 의 프로필
    cdn.regionTypeStringGlobal Edge 서비스 지역KOREA,JAPAN,GLOBAL
    cdn.cdnInstanceNoIntegercdn.createCdn 이 false 일 경우 반드시 설정해야 함
    qualitySetIdInteger
    useDvrBoolean
    immediateOnAirBoolean
    timemachineMinInteger
    recordObject
    record.formatStringMP4,HLS,ALL
    record.typeStringNO_RECORD, AUTO_UPLOAD, MANUAL_UPLOAD
    record.bucketNameString
    record.filePathString
    record.accessControlStringPRIVATE, PUBLIC_READ
    uploadPathStringAUTO_UPLOAD 옵션일때 녹화 파일 업로드 경로
    backupStreamKeyString송출 이중화를 위한 백업 스트림키
    isStreamFailOverBoolean송출 이중화 설정 적용 여부true, false
    originObjectCDN 연동을 위한 Live station 원본 정보
    origin.originDomainStringCDN 연동을 위한 Live station 원본 도메인
    origin.originPathStringCDN 연동을 위한 Live station 원본 상세 경로
    drmEnabledYnBooleanDRM Encryption 설정 적용 유무
    drmObjectLive Station 을 활용한 DRM Encryption 설정
    DRM 설정시 FairPlay, Widevine/PlayReady DRM 지원
    drm.siteIdStringOne Click Multi DRM 상품을 통해 생성한 site id
    drm.contentIdStringDRM Encryption 을 적용할 콘텐츠의 고유 ID
    DRM 패키징을 위해 사용 되며 최소 3글자 이상 영문/숫자 또는 ‘-'(하이픈), ‘_'(언더바) 포함 최대 100자 문자까지 입력 가능합니다.

    예시

    요청 예시

    POST /api/v2/channels
    HOST: livestation.apigw.ntruss.com
    Content-Type: application/json
    x-ncp-apigw-timestamp:1521787414578
    x-ncp-iam-access-key:6uxz1nKkcYwUjWRG5Q1V7NsW0i5jErlu2NjBXXgy
    x-ncp-apigw-signature-v2:iJFK773KH0WwQ79PasqJ+ZGixtpDQ/abS57WGQdld2M=
    x-ncp-region_code:KR
    
    Request body (if cdn.createCdn == true) 
    {  
       "channelName" : "testchannel",
       "cdn" : {
         "createCdn":true,
          "cdnType":"GLOBAL_EDGE",
          "profileId" : 291,
          "regionType" : "KOREA"
       },
       "qualitySetId" : 12345,
       "useDvr" : true,
       "immediateOnAir" : true,
       "timemachineMin" : 360,
       "envType" : "DEV",
       "outputProtocol" : "LL_HLS",
        "record": {
             "type": "AUTO_UPLOAD",
             "format": "MP4",
             "bucketName": "hls",
             "filePath": "/livestation",
             "accessControl": "PRIVATE"
      },
      "isStreamFailOver": true,
      "drmEnabledYn": true,
          "drm": {
            "siteId": "drm-20231115142326-nHyNw",
            "contentId": "my-Test-Multidrm"
          }
    }
    
    Request body (if cdn.createCdn == false) 
    {  
       "channelName" : "testchannel",
       "cdn" : {
          "createCdn" : false,
          "cdnType" : "GLOBAL_EDGE",
          "cdnInstanceNo" : 123456
       },
       "qualitySetId" : 12345,
       "useDvr" : true,
       "immediateOnAir" : true,
       "timemachineMin" : 360,
       "envType" : "DEV",
       "outputProtocol" : "HLS",
        "record": {
             "type": "AUTO_UPLOAD",
             "format": "MP4",
             "bucketName": "hls",
             "filePath": "/livestation",
             "accessControl": "PRIVATE"
      },
      "isStreamFailOver": true,
      "drmEnabledYn": true,
          "drm": {
            "siteId": "drm-20231115142326-nHyNw",
            "contentId": "my-Test-Multidrm"
          }
    }
    

    응답 예시

    HTTP/1.1 200 OK
    Server: nginx
    Date: Fri, 26 Feb 2021 09:53:32 GMT
    Content-Type: application/json;charset=utf-8
    Connection: keep-alive
    Access-Control-Allow-Origin: *
    x-ncp-trace-id: 36c9k60om4p3238cpmc9gm4cj4
    
    {
      "content": {
         "channelName" : "testchannel",
         "channelId" : "ls-20200217154656-Rnd49",
         "cdn" : {
            "createCdn" : false,
            "cdnType" : "GLOBAL_EDGE",
            "profileId" : 223
            "cdnInstanceNo" : 123456
         }
         "qualitySetId" : 12345,
         "useDvr" : true,
         "immediateOnAir" : true,
         "timemachineMin" : 360,
         "envType": "DEV",
         "outputProtocol": "HLS,DASH",
         "uploadPath": "/hls/livestation",
          "record": {
              "type": "AUTO_UPLOAD",
              "bucketName": "hls",
              "filePath": "/livestation",
              "format": "MP4",
              "accessControl": "PRIVATE"
        },
        "origin": {
        "originDomain": "ls-k1.video.media.ntruss.com",
        "originPath": "1"
        },
      "drmEnabledYn": true,
          "drm": {
            "siteId": "drm-20231115142326-nHyNw",
            "contentId": "my-Test-Multidrm"
          }
         "backupStreamKey": "lbuy4dcrxk2ctxs8uqxanpy833p08vvz?backup=true",
         "isStreamFailOver": true
      }
    }
    

    이 문서가 도움이 되었습니까?

    What's Next
    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.