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"
}
}
}
}sEnabling 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:
| LRS | Documentation |
|---|---|
| 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.