멀티DRM VoD 서비스 플로우

멀티 DRM 이란? 암호화를 위한 Kollus 에이전트 실행 없이 각 클라이언트 플랫폼 별로 지원하는 여러 DRM 기술을 적용하는 것을 말합니다. 대표적으로 Microsoft의 PlayReady, Chrome기반 브라우저들을 지원하는 Widevine, iOS의 FairPlay 가 있습니다. Kollus 에서는 Pallycon의 멀티DRM 서비스를 서드파티로 사용하고 있습니다. 멀티 DRM 적용을 위해서는 컨텐츠를 반드시 비암호화로 업로드 해주셔야 합니다.

1. 업로드 방법

  1. 콘솔

    • 콘솔에 접속하여 [콘텐츠 업로드] 클릭 하여 업로드 해주시면 바로 업로드가 시작 됩니다.

  2. API

    • Kollus는 사용자가 업로드를 원하는 시점에 일회성으로 upload url을 생성하여 제공 합니다. 생성된 upload_url에 HTTP multipart/form-data 형식으로 파일을 업로드 합니다. 자세한 내용은 아래 가이드 문서에서 확인하실 수있습니다.

      https://kollus-vod.readme.io/reference/3e3bf59eac6fe09ed37a2e58546c6c40

  1. FTP

    • 콘솔에서 ftp 계정 정보를 확인합니다. 비암호화의 경우 업로드 하고자 하는 카테고리 명 앞에 _를 붙여 디렉토리를 생성해줍니다. 해당 디렉토리에 업로드 할 파일을 올리면 원하시는 카테고리에 파일이 업로드 됩니다.

      예) /_내카테고리 로 생성할 경우 “내카테고리” 에 파일이 업로드 됩니다.

  1. Kollus 업로더

2. 채널 등록 방법

업로드 된 콘텐츠는 채널에 등록하여 [미디어 콘텐츠 키]를 얻어야 서비스 가능합니다.

  1. 콘솔에서 직접 등록

    • 라이브러리에서 업로드 된 콘텐츠를 선택하여 우측 상세 페이지의 [채널] 탭에서 원하시는 채널 추가 가능 합니다.

또는 [채널] 메뉴에서 원하시는 채널 선택 후 [채널에 콘텐츠 추가] 선택 후 콘텐츠를 선택하여 추가할 수 있습니다.

  1. 라이브러리에 특정 채널 연결

    • 수동 연결이 불편하시다면 라이브러리에 채널을 연결 할 수 있습니다. 예를 들어 A라는 라이브러리에 B라는 채널을 연결하시면, A 라이브러리에 업로드한 콘텐츠의 트랜스코딩이 완료될 때 자동으로 B채널에 추가 해드리는 기능 입니다. 콘솔에서 연결 원하시는 카테고리의 [카테고리 수정] 메뉴에서 [콘텐츠 업로드 시, 채널에 자동 등록] 항목을 통해 연결하실 수 있습니다.

또는 카테고리 키와 채널 키를 확인하시어 api로 설정 가능 합니다. Api는 다음 가이드 문서를 참고 부탁 드립니다.

https://kollus-vod.readme.io/reference/28c942e0f0ec72b64e35c47ae4f986e4

  1. API

3. 콘텐츠 호출 방법

멀티 DRM 기술로 암호화 된 콘텐츠를 재생하기 위해서는 스펙에 맞게 Json Web Token (이하 JWT)를 생성하여 호출해주셔야 합니다. 또한 생성을 위해 Pallycon에서 제공하는 각종 키를 필요로 하니 자세한 내용은 담당 PE를 통해 가이드 받으시길 바랍니다.

멀티 DRM 호출을 위한 payload는 아래와 같습니다.

{
  "expt": 1742178173,
  "cuid": "catenoid-test",
  "mc": [
    {
      "mckey": "{MEDIA-CONTENT-KEY}",
      "drm_policy": {
        "kind": "inka",
        "streaming_type": "dash", // 재생할 클라이언트에 따라 dash, hls
        "data": {
          "license_url": "https://license.pallycon.com/ri/licenseManager.do",
          "certificate_url": "https://license.pallycon.com/ri/fpsKeyManager.do?siteId={YOUR-SITE-ID}",
          "custom_header": {
            "key": "pallycon-customdata-v2",
            "value": "{YOUR-PALLYCON-PAYLOAD}"
          }
        }
      }
    }
  ]
}

YOUR-PALLYCON-PAYLOAD 에 대한 예시는 다음과 같습니다.

{
  "drm_type": "Widevine", // 재생할 클라이언트에 따라 Widevine, FairPlay, PalyReady
  "site_id": "{YOUR-PALLYCON-SITE-ID}",
  "user_id": "catenoid-test",
  "cid": "{YOUR-KOLLUS-CONTENT-UPLOAD-FILE-KEY}",
  "policy": "{PALLYCON-POLICY-PAYLOAD}",
  "response_forma": "original",
  "key_rotation": false,
  "timestamp": "2024-03-17T02:27:41Z",
  "hash": "0kvs7elPIfFRjd7tvBbvhuC3qfNrKhiin1KiNhxCE+U="
}

생성한 JWT와 사용자 키를 조합하여 아래와 같이 콘텐츠를 호출 합니다.

http://v.kr.kollus.com/s?jwt=생성한 JWT&custom_key=사용자 키

자세한 내용은 아래 샘플코드를 참고 부탁 드립니다.

https://github.com/kollus-service/Kollus-MultiDrm-sample-php/blob/master/MultiDrmSample.php

Last updated