라이브 LMS 콜백
LMS 콜백(LMS Callback)은 시청 데이터를 실시간으로 수집하여 학습 관리 시스템(LMS) 서버로 전송하는 기능입니다. 이를 통해 수강 완료 처리, 학습 패턴 분석, 시청 통계 산출 등 고도화된 교육 관리 로직을 구현할 수 있습니다.
주요 특징
- 비동기 전송: 플레이어는 데이터 전송 시 서버의 응답을 기다리지 않으므로, 네트워크 환경에 관계없이 시청 흐름이 끊기지 않습니다.
- 개인정보 보호: LMS 콜백 데이터에는 Mac Address, IP Address 등 민감한 개인 정보가 포함되지 않아 보안성이 우수합니다.
콜백 설정 방법
콜백 URL은 채널별로 독립적으로 설정할 수 있습니다.
Kollus Live 콘솔 > [채널 관리] > [채널 리스트]메뉴로 이동합니다.- 상황에 따라 다음 중 하나를 선택합니다.
- 신규 채널 생성 시 설정: 우측 상단의
[채널 등록]을 클릭합니다. - 기존 채널에 설정: 대상 채널 우측
[수정 아이콘]을 클릭합니다.
- 신규 채널 생성 시 설정: 우측 상단의
- 하단
[콜백] 탭의[LMS 콜백]항목에전송 주기:콜백 URL형식으로 입력합니다.- 구분자: 콜론(
:) - 전송 주기: 초 단위 (권장: 30~60초)
- 콜백 URL: 데이터 를 전달받을 서버 주소 (https 필수)
- 중복 등록: 줄바꿈(
\n)을 통해 여러 개의 URL을 등록하여 여러 시스템으로 전송할 수 있습니다.
- 구분자: 콜론(
- 입력 완료 후
[저장]을 클릭합니다.
콜백 호출 시점
- 정기 호출: 설정된 전송 주기마다 반복 호출됩니다.
- 이벤트 호출: 주기에 상관없이 시청자가 시청(Play), 일시정지(Pause), 정지(Stop)할 때 즉시 호출됩니다.
- 세션 식별: 플레이어 새로고침이나 재접속 시
{START_AT}값이 변경되어 새로운 시청 세션으로 구분됩니다.
콜백 설정 예시
30초마다 특정 서버(https://your-service-domain/lms_callback)로 시청 상세 데이터(JSON_DATA)와 고객사 정의 값(USERVALUE0)을 전송받고자 할 경우, 콘솔에 다음과 같이 입력합니다.
30:https://your-service-domain/lms_callback?json_data={JSON_DATA}&uservalue0={USERVALUE0}
요청 옵션
콜백 URL 뒤에 파라미터로 추가할 수 있는 옵션입니다.
| 파라미터 | 설명 |
|---|---|
{JSON_DATA} | 모든 시청 정보를 포함한 JSON 객체 |
{CLIENT_USER_ID} | 시청자 ID (JWT 생성 시 입력한 client_user_id) |
{START_AT} | 전송 요청 시각 (VideoGateway 호출 시점, Unix Timestamp) |
{MEDIA_CONTENT_KEY} | 라이브 방송 키 |
{ENCODING_PROFILE_KEY} | 인코딩 프로파일 키 |
{HOST_NAME} | 라이브 방송 링크 요청 도메인
|
{PLAYER_ID} | Kollus 플레이어 고유 ID (플레이어 설치 시 자동 생성) |
{PLAYLIST_STATUS} | (Kollus 보안 플레이어 사용 시) 시청 상태
|
{DEVICE} | 디바이스 모델명 |
{RUN_TIME} | 일시정지 포함 누적 시청 시간 (s) |
{SHOW_TIME} | 일시정지 미포함, Timeshift 포함 누적 시청 시간 (s) |
{USERVALUE0~99} | 고객사 정의 값 (UTF-8 형식 준수)
|
전송 데이터(JSON_DATA) 상세
JSON_DATA는 전체 시청 데이터를 포함합니다.
user_info
| 필드 | 타입 | 설명 |
|---|---|---|
content_provider_key | string | 서비스 계정 키 (방송 주체) |
client_user_id | string | 시청자 ID (JWT 생성 시 입력한 client_user_id) |
player_id | string | 디바이스 고유 식별자 |
hardware_id | string | 하드웨어 시리얼 넘버 |
host_name | string | 라이브 방송 링크를 요청한 도메인 |
device | string | 디바이스 모델명 |
content_info
| 필드 | 타입 | 설명 |
|---|---|---|
media_content_key | string | 라이브 방송 키 |
channel_key | string | 채널 키 |
start_at | integer | 전송 요청 시각 (VideoGateway 호출 시점, Unix Timestamp) |
runtime | integer | 일시정지 포함 누적 시청 시간 (s) |
showtime | integer | 누적 시청 시간 (s) |
serial | integer | LMS 발송 순서 (0부터 시작) |
uservalue{0~99} | string | 고객사 정의 값 (uservalue0~uservalue99) |
시청 시간 용어 정의
ℹ️참고
시청 시간 계산 시 네트워크 버퍼링(Buffering) 시간은 포함되지 않습니다.
예시 상황
- [13:00:00] 방송 시청 시작
- [13:00:20] 방송 시청 일시정지
- [13:00:40] 방송 시청 종료
| 용어 | 정의 및 계산 방식 | 예시 결과 |
|---|---|---|
| Run Time | 전체 체류 시간 시청 종료 시각 - 시청 시작 시각 | 40초 |
| Show Time | 실제 시청 시간 Run Time - 일시정지 시간 | 20초 |