Live LMS 콜백
개요
Kollus에서 제공하는 콜백 정보는 플랫폼에서 전달하는 내용과 플레이어에서 전달하는 내용으로 구분될 수 있습니다. 플레이어에서 전달하는 정보는 사용자가 콘텐츠를 이용한 정보를 활용할 수 있도록 관련 정보를 지정된 Url에 전달하는 기능입니다.
재생정보를 전송할때 응답을 확인하지 않습니다.
해당 기능을 사용하기 위해서는 Kollus Live에 접속하여 관련 정보를 설정하시면 VideoGateway를 통해 관련 내용이 전달되어 재생과 관련된 정보를 전달합니다.
콜백 흐름
재생 정보를 전달 받는 흐름을 설명합니다.
- Kollus 설정에서 관련 정보 요청을 설정합니다.
- Kollus는 콘텐츠 배포 단위인 채널 마다 다양한 옵션을 지정할 수 있습니다.
- 배포하는 채널마다 지정된 데이터 수집이 가능합니다.
- 동영상 재생을 위해 VideoGateway를 호출하면 콘텐츠 재생을 위한 다양한 정보를 플레이어에 전달하게 되며, 이때 재생과 관련된 정보를 전달할 설정을 함께 전달합니다.
- 재생 정보를 활용하기 위해 설정한 Url에 관련 정보를 전달합니다.
- Kollus는 콘텐츠 재생과 관련된 기본 정보를 수집하기 위해 mobile 관련 정보를 수집합니다.
- 사용자 정보를 일체 포함되지 않습니다.
- Mac Address, IP Address 개인의 위치 정보와 관련된 정보를 수집 되지 않습니다.
Customer Requirement
Kollus에서 전달하는 재생 관련 정보는 고객의 다양한 요청을 수렴하여 개발되었습니다.
- 시청 시작 시간
- 누적 시청 시간
- 실제 시청 시간
- 사용자 정보
- 콘텐츠 정보
- 디바이스 정보
- 전송 주기
플러그인 옵션
{CLIENT_USER_ID}- 사용자의 User ID 입니다.
- MediaToken 생성시 파라미터로 입력한 사용자의 ID 정보입니다. 이때 입력된 사용 자 ID는 Kollus 시스템에서 관리되지 않고 사용자를 구분하는 Unique 정보로만 사용됩니다.
{START_AT}- VideoGateway를 호출한 시점의 Unixtimestamp 입니다.
- 사용자의 콘텐츠 이용중 다수의 재생정보 전달이 발생할 수 있습니다. 동일한 요청에 같은
{START_AT}값을 갖게 되며, 같은 시간에 다수의 이용자가 발생할 경우 Unixtimestamp 이기 때문에 중복될 수 있습니다. - 다운로드 콘텐츠의 경우
start_at은 콘텐츠 재생시 단말의 unixtimestamp 입니다.
{RUN_TIME}- 전체 시청 시간(단위: 초)
- 일시정지된 시간도 누적됩니다.
| Live | RUN TIME | SHOW TIME |
|---|---|---|
예시
| 방송 시청 종료 시각 - 방송 시청 시작 시각 | 실제 전체 시청 시간 |
방송 시청 종료 시각 - 방송 시청 시작 시각 | RUN TIME - PAUSED TIME | |
| 20초 + 20초 = 40초 | 40초 - 20초 = 20초 |
{MEDIA_CONTENT_KEY}- Kollus Live 미디어 콘텐츠 키
{ENCODING_PROFILE_KEY}- Kollus encoding profile key
{HOST_NAME}- 비디오 링크 요청 도메인 이름
- 예) catenoid.video.kr.kollus.com
{PLAYER_ID}- Kollus 플레이어의 고유 ID입니다.
- 플레이어 설치 시 생성된 고유 ID입니다.
{PLAYLIST_STATUS}- 전용 플레이어에서만 사용 가능(공개 HTML5 사용안함)
- play: 재생 중
- pause: 일시정지
- stop: 플레이 창이 비활성화될 때
{DEVICE}- 단말 모델명
{SHOW_TIME}- 실제로 방송을 시청한 시간의 누적 값 (단위: 초)
- 일시정지 된 시간을 제외한 시청시간입니다
- 모든 재생 시간을 포함한 시간입니다. (Time-shift를 한 경우도 모두 포함됩니다.)
{USERVALUE0}~{USERVALUE9}- VideoGateway 호출에 추가된 추가 정보 입니다.
- 예)
LCD={USERVALUE0}&UCD={USERVALUE4} - 영문,숫자 이외의 한글등의 문자열을 전달할 경우 웹 브라우저들의 차이점이 있기 때문에 해당 변수 전달시 UTF-8로 전달해야 합니다. (전달되는 문자열은 웹의 특성상 UrlEncode해서 전달해야 합니다.)
{JSON_DATA}- 데이터 포맷: JSON
- 모든 재생 정보를 포함한 데이터
{JSON_DATA}
- user_info
- content_provider_key: 고객사 key
- client_user_id: 사용자(고객) ID
- player_id: 플레이어 ID
- hardware_id: 플레이어 하드웨어 ID(고객 확인용)
- host_name: 비디오 링크 요청 도메인명
- device: 디바이스명
- content_info
- media_content_key: 미디어 콘텐츠 키
- channel_key: 채널키
- start_at: VideoGateway를 호출한 시점의 Unixtimestamp 입니다. 다운로드 콘텐츠의 경우
start_at은 콘텐츠 재생시 단말의 unixtimestamp 입니다. - runtime: 현재시각 - 방송시청 시작시각 (단위:초)
- showtime: 실제 전체 시청 시간 (단위:초)
- 일시정지된 시간은 누적되지 않습니다
- 모든 재생 시간을 포함한 시간입니다. (*Time-shift기능을 사용해도 누적됩니다.)
- serial: lms 발송 순서(0부터 시작)
- uservalues: 사용자 정의 변수, 각 변수의 전체 합은 1KB를 넘지 않도록 해야 합니다.
- uservalue0
- uservalue1
- ...
- uservalue9
지원 옵션
플레이어별 지원 옵션을 확인할 수 있습니다. {MAC}, {IP}의 경우 개인정보에 해당하는 요소로 필요한 경우 별도 협의해 주십시오.
| 옵션 | Flash Player | Kollus 플레이어(PC) | Kollus 플레이어(모바일) |
|---|---|---|---|
{CLIENT_USER_ID} | O | O | O |
{START_AT} | O | O | O |
{RUN_TIME} | O | O | O |
{MEDIA_CONTENT_KEY} | O | O | O |
{HOST_NAME} | O | O | O |
{PLAYER_ID} | X | O | O |
{PLAY_STATUS} | X | O | O |
{DEVICE} | X | O | O |
{SHOW_TIME} | X | O | O |
{JSON_DATA} | O | O | O |
설정
콜백에 대한 설정은 채널에서 할 수 있습니다. 콜백이 필요한 채널 마다 설정해야 합니다.
- Callback URLs: 캐리지 리턴으로 각각 치환자를 포함한 URL을 등록합니다.
- 재생 정보를 다수의 시스템에서 전달 받을 수 있도록 캐리지리턴(\n)으로 구분된 다수의
callback_url을 등록할 수 있습니다. - Kollus 서비스의 필요에 따라 URL 설정 수를 제한할 수 있습니다.
- 재생 정보를 다수의 시스템에서 전달 받을 수 있도록 캐리지리턴(\n)으로 구분된 다수의
- 포맷:
[peroid]:[callback_url]- 구분자:
:(콜론) - peroid
- 데이터 전송 주기
- 콜백이 전송되는 주기로 지정된 period(단위:초) 마다 호출되고 프로그램(플레이어)이 종료될 때 추가로 호출됩니다. 단, Flash Player의 경우는 플레이어 종료 시 호출되지 않습니다.
- 플레이를 일시정시 또는 정지했을 때 추가로 호출 됩니다.
- 단위: 초
callback_url- 콜백 URL 입니다.
- 구분자:
콜백 URL
30:http://domain.com/check.asp?id={CLIENT_USER_ID}&start={START_AT}&lms={JSON_DATA}&uservalue0={USERVALUE0}
콜백 데이터 예시
URL: http://lms.servicedomain.com/lms/register
Method: POST
Params:
ID={CLIENT_USER_ID}
LRN={USERVALUE0}
LHF={USERVALUE1}
LCD={USERVALUE2}
TM={START_AT}
RT={RUN_TIME}
http://lms.servicedomain.com/lms/register?ID=pobi&LRN=123456789ABCDEF&LHF=1&LCD=L123&UCD=U123&TM=123456789&RT=123456789
Etc.
콜백 호출 주기 (Callback period)
- 콜백은 시스템에 설정된 콜백 URL 정보의 period 설정에 따라 호출됩니다.
- 플레이어가 일시정지, 정지를 하는 경우도 Callback이 호출됩니다.
- 주기적으로 호출되는 동일한 사용자의 정보는
{START_AT},{CLIENT_USER_ID}값으로 구분하여 마지막 정보를 확인할 수 있습니다. - HTML5 Player의 경우는 플레이어 종료 시 호출되지 않습니다
- PC, 모바일 플레이어의 경우에도 강제 종료 시 호출되지 않습니다.
USERVALUE0 ~ USERVALUE9 사용 시 주의할 점
- 특수문자(영문,숫자이외의 모든문자:한글,한자,일어등)는 반드시 UTF-8문자열을 UrlEncode된 상태로 전달되어야 합니다
데 이터 보안
- LMS 콜백 데이터를 변조 방지를 위해 POST로 전달되는 모든 정보에 대해 Hash를 생성하여 전달되는 Hash 값과 일치하는 지 확인합니다.
※ Hash 생성 방식에 대해 노출 우려가 있는 Flash Player, HTML5 Single Player는 제외합니다. - Hash 생성 규칙은 아래와 같습니다.
hash_1 = md5 ( post-data )
hash_2 = md5 ( hash_1 + service_account ) ← + 문자 포함
hash_2값을 post data의 hash 파라미터의 값으로 전송합니다. - 전송되는 POST 데이터 예시
ID=pobi&MAC=123456789ABCDEF&LRN=123456789ABCDEF&LHF=1&IP=192.16 8.0.118&LCD=L123&UCD=U123&TM=123456789&PT=123456789&ET=123456789 &SKIP=0&B1=1&B2=1&B3=1&B4=1&B5=1&B6=1&B7=1&B8=1&B9=1&B10=1&T1= 123456789&T2=123456789&T3=123456789&T4=123456789&T5=123456789&T6=1 23456789&T7=123456789&T8=123456789&T9=123456789&T10=123456789&hash =7dec341ff384574f24c6c441b46bc9b1