xAPI analytics guide


About

This guide explains what xAPI is and how it works with Kaltura.

xAPI (also called the Experience API or Tin Can API) is a learning technology standard that tracks how people interact with learning content, both online and offline. In Kaltura, xAPI helps capture activity such as video playback, engagement, and content actions, and sends that data to a Learning Record Store (LRS).

A Learning Record Store (LRS) is a system that receives and stores xAPI activity data. It lets you report on learning activity or export the data for use in other systems.

In Kaltura, xAPI captures activity from video playback, engagement, and content actions, and sends it to an LRS.

This guide is intended for Kaltura partners, customers, and community members who want to track learning activity and understand xAPI data from Kaltura.

How xAPI works with Kaltura

Kaltura provides video tools for teaching, learning, and engagement, including lecture capture, video creation, and interactive video experiences.

When xAPI is enabled, Kaltura sends activity data from the Video Portal, supported LMS integrations, and embedded players to an LRS. This data shows how learners interact with video content, such as when playback starts, how much of a video is watched, and whether viewing is completed.

Playback progress can be sent at fixed milestones or more frequently. This behavior is controlled by the xAPI module settings in the Configuration Management console.

The LRS stores this data and acts as the system of record for xAPI activity.

xAPI events sent by Kaltura

Kaltura sends the following xAPI events to the LRS:

In Kaltura, an 'entry' is a single media item, such as a video or audio file, that is uploaded, recorded, or created in the platform.

Event Description

playProgress

Video playback progress. Events are sent at fixed milestones (0, 25, 50, 75, 100%) or more frequently, based on the xAPI module configuration.

play User started or resumed the playback of an entry.

pause

User paused playback of a video. 

seek

User intentionally seeks to a different time in the entry

playbackRateChange User changes playback speed

categoryView

User opens a gallery or channel page.

login

User logs into the Video Portal or an LMS.

entryLike

User likes a video.

entryComment

User comments on an Entry.

entryUpload

User uploads an Entry.

entryUnlisted

User marks an Entry as Unlisted.

entryPublish

User publishes an Entry.

entryCollaborator

User is made a co-editor of an Entry.

captureSpaceLaunch / kalturaCaptureLaunch

User launches the Kaltura Capture product.

Sample xAPI event data

The example below shows xAPI data sent for a playProgress event. Progress updates are sent throughout playback and reflect how much of the video the learner has watched at that point in time.

{
  "actor": {
    "objectType": "Agent",
    "name": "John User",
    "account": {
      "name": "johnuser",
      "homePage": "https://example.mediaspace.kaltura.com"
    }
  },
  "verb": {
    "id": "http://activitystrea.ms/schema/1.0/watch",
    "display": {
      "en": "watched"
    }
  },
  "result": {
    "extensions": {
      "https://w3id.org/xapi/cmi5/result/extensions/progress": 50
    }
  },
  "context": {
    "contextActivities": {
      "category": [
        {
          "objectType": "Activity",
          "id": "http://tincan-definitions.kaltura.com/products/mediaspace/1",
          "definition": {
            "type": "http://id.tincanapi.com/activitytype/source"
          }
        },
        {
          "objectType": "Activity",
          "id": "https://example.mediaspace.kaltura.com/default/channels/view/channelid/21212121",
          "definition": {
            "type": "http://id.tincanapi.com/activitytype/category",
            "name": {
              "en": "Marketing"
            }
          }
        }
      ],
      "other": [
        {
          "objectType": "Activity",
          "id": "https://example.mediaspace.kaltura.com",
          "definition": {
            "type": "http://activitystrea.ms/schema/1.0/application",
            "name": {
              "en": "Kaltura MediaSpace"
            }
          }
        }
      ]
    },
    "extensions": {
      "http://tincan-definitions.kaltura.com/extensions/context/video-mode": "VOD"
    }
  },
  "timestamp": "2019-05-03T21:40:35+00:00",
  "object": {
    "objectType": "Activity",
    "id": "https://example.mediaspace.kaltura.com/media/t/1_msutjxqy",
    "definition": {
      "type": "http://adlnet.gov/expapi/activities/video",
      "name": {
        "en": "Kaltura Video Solutions for Media Companies"
      }
    }
  }
}s

Enabling and configuring xAPI event delivery

To send events to an LRS, enable and configure the xAPI module in the Configuration Management area of your Video Portal or LMS integration.

If your Kaltura account is integrated with a supported LMS, you also need to enable the Xapikaf module

Supported Learning Record Stores

Kaltura xAPI supports standards-based data exchange with Learning Record Stores. The following integrations have been tested:

LRSDocumentation
Watershed LRS
SCORM Cloud  
Apereo OpenLRW  

Other LRS platforms may also work if they support xAPI.

Troubleshooting 

If data is not sent to the LRS, check the following:

  • Make sure the video playback or action occurs in the Video Portal, LMS, or embedded player.
  • Confirm the endpoint, key, and secret are correct.
  • Check for extra spaces or characters in the configuration values.


Was this article helpful?
Thank you for your feedback!
User Icon

Thank you! Your comment has been submitted.

In this article
Related articles