Skip to main content

Live LMS Callback

Notice

This document is a machine-translated draft and is currently undergoing review. Some content may be inaccurate or differ from the original Korean version. For the most precise information, please refer to the Korean documentation.

LMS Callback is a feature that collects viewing data in real time and transmits it to a Learning Management System(LMS) server. This enables advanced education management logic such as course completion processing, learning pattern analysis, and viewing statistics calculation.


Key features

  • Asynchronous transmission: The player does not wait for a server response when transmitting data, so the viewing experience is uninterrupted regardless of network conditions.
  • Privacy protection: LMS callback data does not include sensitive personal information such as Mac Address or IP Address, ensuring strong security.

Callback configuration

The callback URL can be configured independently for each channel.

  1. Go to Kollus Live console > [Channel] > [Channel list].
  2. Select one of the following depending on the situation.
    • Configuring during new channel creation: Click [Register channel] in the upper right corner.
    • Configuring for an existing channel: Click [Edit] on the right side of the target channel.
  3. In the [Callback] tab at the bottom, enter the value in the format 'transfer interval:callback URL' in the [LMS callback] field.
    • Delimiter: Colon (:)
    • Transfer interval: In seconds (recommended: 30–60 seconds)
    • Callback URL: Server address to receive the data (https required)
    • Multiple registrations: Multiple URLs can be registered using a line break (\n) to send data to multiple systems.
  4. After completing the input, click [Save].

Callback invocation timing

  • Periodic invocation: Called repeatedly at each configured transfer interval.
  • Event invocation: Called immediately when a user plays (Play), pauses (Pause), or stops (Stop), regardless of the interval.
  • Session identification: The {START_AT} value changes when the player is refreshed or reconnected, distinguishing it as a new viewing session.

Callback configuration example

To receive detailed viewing data (JSON_DATA) and a custom variable (USERVALUE0) every 30 seconds to a specific server (https://your-service-domain/lms_callback), enter the following in the Kollus Live console.

30:https://your-service-domain/lms_callback?json_data={JSON_DATA}&uservalue0={USERVALUE0}

Request options

These are options that can be added as parameters after the callback URL.

ParameterDescription
{JSON_DATA}JSON object containing all viewing information
{CLIENT_USER_ID}User ID (the client_user_id entered when generating the JWT)
{START_AT}Transmission request time (Video Gateway call time, Unix Timestamp)
{MEDIA_CONTENT_KEY}Live broadcast key
{ENCODING_PROFILE_KEY}Encoding profile key
{HOST_NAME}Domain that requested the live stream link
  • Example: catenoid.video.kr.kollus.com
{PLAYER_ID}Kollus player unique ID
{PLAYLIST_STATUS}(When using Kollus secure player) Viewing status
  • play : Watching
  • pause: Paused
  • stop: Player window minimized
{DEVICE}Device model name
{RUN_TIME}Cumulative watch time including pauses (sec)
{SHOW_TIME}Cumulative watch time excluding pauses, including timeshift (sec)
{USERVALUE0~99}Custom variables (UTF-8 format required)
  • Example: &uservalue0={USERVALUE0}&uservalue1={USERVALUE1}...

Transmission data (JSON_DATA) details

JSON_DATA contains all viewing data.

user_info

FieldTypeDescription
content_provider_keystringService account key (broadcasting entity)
client_user_idstringUser ID (the client_user_id entered when generating the JWT)
player_idstringKollus player unique ID
hardware_idstringHardware ID
host_namestringDomain that requested the live stream link
devicestringDevice model name

content_info

FieldTypeDescription
media_content_keystringLive broadcast key
channel_keystringChannel key
start_atintegerTransmission request time (Video Gateway call time, Unix Timestamp)
runtimeintegerCumulative watch time including pauses (sec)
showtimeintegerCumulative watch time (sec)
serialintegerLMS sending sequence (starting from 0)
uservalue{0~99}stringCustom variables (uservalue0uservalue99)

Watch time terminology

Watch time calculation criteria

Buffering time is not included when calculating watch time.

Viewing scenario example

To aid understanding, assume a user is connected for 40 seconds.

  • [13:00:00] Starts watching the broadcast
  • [13:00:20] Pauses the broadcast (paused for 20 seconds)
  • [13:00:40] Ends watching the broadcast
TermDefinitionCalculation methodExample result
Run TimeTotal dwell time
Total time connected to the service
End time - Start time40 seconds
Show TimeActual watch time
Time the player was actually playing
Run Time - Pause time20 seconds