개요
Kollus에서 제공하는 Callback 정보는 플랫폼에서 전달하는 내용과 플레이어에서 전달하는 내용으로 구분될 수 있습니다. 플레이어에서 전달하는 정보는 사용자가 컨텐츠를 이용한 정보를 활용할 수 있도록 관련 정보를 지정된 Url에 전달하는 기능입니다.
재생정보를 전송할때 응답을 확인하지 않습니다.
해당 기능을 사용하기 위해서는 Kollus Live에 접속하여 관련 정보를 설정하시면 Video-gateway를 통해 관련 내용이 전달되어 재생과 관련된 정보를 전달합니다.
Callback process
재생 정보를 전달 받는 흐름을 설명합니다.
- Kollus 설정에서 관련 정보 요청을 설정합니다.
- Kollus는 컨텐츠 배포 단위인 채널 마다 다양한 옵션을 지정할 수 있습니다.
- 배포하는 채널마다 지정된 데이터 수집이 가능합니다.
- 동영상 재생을 위해 Video-gateway를 호출하면 컨텐츠 재생을 위한 다양한 정보를 플레이어 전달하게 되며, 이때 재생과 관련된 정보를 전달할 설정을 함께 전달합니다.
- 재생 정보를 활용하기 위해 설정한 Url에 관련 정보를 전달합니다.
- Kollus는 컨텐츠 재생과 관련된 기본 정보를 수집하기 위해 관련 정보를 수집합니다.
- 사용자 정보를 일체 포함되지 않습니다.
- Mac Address, IP Address 개인의 위치 정보와 관련된 정보를 수집 되지 않습니다.
Customer Requirement
Kollus에서 전달하는 재생 관련 정보는 고객의 다양한 요청을 수렴하여 개발되었습니다.
● 시청 시작시간
● 누적 시청시간
● 실제 시청시간
● 사용자 정보
● 컨텐츠 정보
● 디바이스 정보
● 전송주기
Plugin option
- {CLIENT_USER_ID}
- 사용자의 User ID 입니다.
- MediaToken 생성시 파라미터로 입력한 사용자의 ID 정보입니다. 이때 입력된 사용자 ID는 Kollus 시스템에서 관리되지 않고 사용자를 구분하는 Unique 정보로만 사용됩니다.
- {START_AT}
- Video-gateway를 호출한 시점의 Unixtimestamp 입니다.
- 사용자의 컨텐츠 이용중 다수의 재생정보 전달이 발생할 수 있습니다. 동일한 요청에 같은 {START_AT} 값을 갖게 되며, 같은 시간에 다수의 이용자가 발생할 경우 Unixtimestamp 이기 때문에 중복될 수 있습니다.
- 다운로드 컨텐츠의 경우 start_at은 컨텐츠 재생시 단말의 unixtimestamp 입니다.
- {RUN_TIME}
- 전체 시청 시간 (단위:초)
- 일시정지 된 시간도 누적됩니다
- {MEDIA_CONTENT_KEY}
- Kollus Live 미디어 컨텐츠 키
- {ENCODING_PROFILE_KEY}
- Kollus encoding profile key
- {HOST_NAME}
- 비디오 링크 요청 도메인명
- ex) catenoid.video.kr.kollus.com
- {PLAYER_ID}
- Kollus 플레이어의 고유 ID 입니다.
- 플레이어 설치시 생성된 고유 ID 입니다.
- {PLAYLIST_STATUS}
- 전용 플레이어에서만 사용가능(공개 HTML5 사용안함)
- play : 재생중
- pause: 재생멈춤(일시정지)
- stop: 플레이 창이 내려 갈 때
- {DEVICE}
- 단말 모델명
- {SHOW_TIME}
- 실제로 방송을 시청한 시간의 누적 값 (단위: 초)
- 일시정지 된 시간을 제외한 시청시간입니다
- 모든 재생 시간을 포함한 시간입니다. (Time-shift를 한 경우도 모두 포함됩니다.)
- {USERVALUE0}~{USERVALUE9}
- Video-gateway호출에 추가된 추가 정보 입니다.
- ex) LCD={USERVALUE0}&UCD={USERVALUE4}
- 영문,숫자 이외의 한글등의 문자열을 전달할 경우 웹 브라우저들의 차이점이 있기 때문에 해당 변수 전달시 UTF-8로 전달해야 합니다. (전달되는 문자열은 웹의 특성상 UrlEncode해서 전달해야 합니다.)
- {JSON_DATA}
- 데이터 포멧: JSON
- 모든 재생 정보를 포함한 데이터
{JSON_DATA}
user_info
- content_provider_key : 고객사 key
- client_user_id : 사용자(고객) ID
- player_id : 플레이어(player) ID
- hardware_id : 플레이어(player) hardware ID, 고객 확인용
- host_name : 비디오 링크 요청 도메인명
- device : 디바이스명
content_info
- encoding_profile : 인코딩 프로파일
- media_content_key : 미디어 컨텐츠 키
- channel_key : 채널키
- start_at : Video-gateway를 호출한 시점의 Unixtimestamp 입니다. 다운로드 컨텐츠의 경우 start_at은 컨텐츠 재생시 단말의 unixtimestamp 입니다.
- runtime : 현재시각 - 방송시청 시작시각 (단위:초)
- showtime : 실제 전체 시청 시간 (단위:초)
- 일시정지된 시간은 누적되지 않습니다
- 모든 재생 시간을 포함한 시간입니다. (*Time-shift기능을 사용해도 누적됩니다.)
uservalues : 사용자 정의 변수, 각 변수의 전체 합은 1KB를 넘지 않도록 해야 합니다.
- uservalue0
- uservalue1
- ....
- uservalue9
Support options
플레이어별 지원 옵션을 확인할 수 있습니다. {MAC}, {IP}의 경우 개인정보에 해당하는 요소로 필요한 경우 별도 협의해 주십시오.
Option | FlashPlayer | KollusPlayer(PC) | KollusPlayer(Monlie) |
---|---|---|---|
{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 |
Settings
Callback에 대한 설정은 채널에서 할 수 있습니다. Callback이 필요한 채널 마다 설정해야 합니다.
- Callback URLs: 캐리지 리턴으로 각각 치환자를 포함한 URL을 등록합니다.
- 재생정보를 다수의 시스템에서 전달 받을 수 있도록 캐리지리턴(\n)으로 구분된 다수의 callback_url 을 등록할 수 있습니다.
- Kollus 플랫폼의 필요에 따라 URL 설정 수를 제한할 수 있습니다.
- Format: [peroid]:[callback_url]
- 구분자 : (콜론)
- peroid
- 데이터 전송 주기
- Callback이 전송되는 주기로 지정된 period(단위:초) 마다 호출되고 프로그램(플레이어)이 종료될 때 추가로 호출 됩니다. 단, 플래시 플레이어의 경우는 플레이어 종료시 호출되지 않습니다.
- 플레이를 일시정시 또는 정지했을 때 추가로 호출 됩니다.
- 단위 :초
- callback_url
- Callback Url 입니다. 컨텐츠를 재생하는 사용자 환경에서 전송하기 때문에 방화벽 환경을 고려하여 http, 80포트 사용을 권장합니다.
Callback URLs
30:http://domain.com/check.asp?id={CLIENT_USER_ID}&start={START_AT}&lms={JSON_DATA} &uservalue0={USERVALUE0}
Callback data sample
● 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 호출 주기 (Callback period)
- Callback은 시스템에 설정된 Callback Url 정보의 period 설정에 따라 호출됩니다.
- 플레이어가 일시정지, 정지를 하는 경우도 Callback이 호출됩니다.
- 주기적으로 호출되는 동일한 사용자의 정보는 {START_AT}, {CLIENT_USER_ID}값으로 구분하여 마지막 정보를 확인할 수 있습니다.
- HTML5 플레이어의 경우는 플레이어 종료시 호출되지 않습니다
- PC, 모바일 플레이어의 경우에도 강제종료시 호출되지 않습니다.
USERVALUE0 ~ USERVALUE9 사용시 주의 할 점
- 특수문자(영문,숫자이외의 모든문자:한글,한자,일어등)는 반드시 UTF-8문자열을 UrlEncode된 상태로 전달되어야 합니다
데이터 보안
LMS callback 데이터를 변조 방지를 위해 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