본문으로 건너뛰기

멀티DRM 서비스 플로우


멀티DRM이란?

암호화를 위한 Kollus 에이전트를 실행하지 않고, 각 클라이언트 플랫폼에서 지원하는 DRM 기술을 적용하는 방식을 말합니다. 대표적으로 Microsoft의 PlayReady, Chrome 기반 브라우저를 지원하는 Widevine, iOS의 FairPlay가 있습니다. Kollus는 Pallycon의 멀티DRM 서비스를 서드파티로 이용하고 있으며, 멀티DRM을 적용하려면 반드시 콘텐츠를 비암호화 형태로 업로드해야 합니다.


1. 콘텐츠 업로드

Kollus에서는 Console, API, FTP, Kollus Uploader를 통한 콘텐츠 업로드를 지원합니다.

Console

Kollus VOD 콘솔에 접속하여 [콘텐츠 업로드]를 클릭하여 파일을 업로드합니다.

API

Kollus는 사용자가 업로드를 원하는 시점에 일회성으로 업로드 URL을 생성하여 제공합니다. API를 호출하여 업로드 URL(upload_url)이 생성되면, 해당 URL에 HTTP multipart/form-data 형식으로 파일을 업로드합니다. 자세한 내용은 업로드 URL 생성 API를 참고하세요.

FTP

Kollus VOD 콘솔에 접속하여 [서비스 계정] > [FTP]에서 FTP 계정 정보를 확인합니다. 그런 다음 '_encrypt' 디렉터리를 생성하고, 그 하위에 '_업로드하려는 카테고리 이름' 형식으로 디렉터리를 만듭니다. 해당 디렉터리에 콘텐츠를 업로드하면, 지정한 카테고리에 암호화된 콘텐츠로 업로드됩니다.
예를 들어, '/_encrypt/_내카테고리'와 같이 디렉터리를 생성하면, '내카테고리'에 암호화된 콘텐츠로 업로드됩니다.

Kollus Uploader

Kollus VOD 전용 Uploader를 사용자의 PC에 설치하여 콘텐츠를 쉽고 빠르게 업로드할 수 있습니다.


2. 채널 등록

업로드된 콘텐츠를 채널에 등록하여 미디어 콘텐츠 키를 얻어야 서비스할 수 있습니다.

콘솔에서 직접 등록하기

Kollus VOD 콘솔에 접속하여 [라이브러리]에서 업로드된 콘텐츠를 클릭한 다음, [채널] 탭에서 채널을 추가합니다.

또는 Kollus VOD 콘솔에 접속하여 [채널]에서 원하는 채널을 선택한 다음, 오른쪽 상단의 [채널에 콘텐츠 추가]를 통해 콘텐츠를 추가합니다.

라이브러리에 특정 채널 연결하기

수동 연결이 불편한 경우, 라이브러리에 채널을 연결할 수 있습니다. 예를 들어, A 라이브러리에 B 채널을 연결하면, A 라이브러리에 업로드된 콘텐츠의 트랜스코딩이 완료될 때 자동으로 B 채널에 추가됩니다.

Kollus VOD 콘솔에 접속하여 [라이브러리] > 연결을 원하는 카테고리의 [카테고리 수정] > [콘텐츠 업로드 시, 채널에 자동 등록]에서 채널을 연결할 수 있습니다.

카테고리 키와 채널 키를 사용하여 API로 라이브러리에 채널을 연결할 수도 있습니다. 자세한 내용은 채널 연결 API를 참고하세요.

API로 콘텐츠 연결하기

채널 키와 업로드 파일 키를 사용하여 API로 콘텐츠를 연결할 수 있습니다. 자세한 내용은 콘텐츠 연결 API를 확인하세요.


3. 콘텐츠 호출

멀티DRM으로 암호화된 콘텐츠를 재생하려면, 사양에 맞춰 JSON Web Token(JWT)을 생성하여 호출해야 합니다. 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=사용자 키

자세한 내용은 예제 코드를 참고하세요.