As an xAPI conformant LRS, Watershed can receive data from any xAPI conformant Activity Provider. Many Watershed cards are flexible and you can configure Watershed to display useful visualizations and metrics from almost any xAPI data set. To help you get the most out of your data, we’re working with a number of product vendors to ensure that the data they send is optimized to produce the best possible results in Watershed. We want to help you to configure Watershed cards in the best way possible to display that data.

Kaltura MediaSpace is a  video portal in which users can securely create, upload, share, search, browse, and watch live and on demand videos, presentations, webcasts, and other rich media content. MediaSpace provides a cross-device user experience, user engagement capabilities, and control and governance tools. MediaSpace also includes social features: users can like and comment on videos and share them with one another.

We worked with Kaltura to implement xAPI into their MediaSpace platform. In their initial implementation, MediaSpace is tracking the following events:

  • Logins
  • Likes
  • Comments (but not the text of the comment)
  • Playing videos
  • Progress through the video at 25% intervals

The name of the video and the channel it belongs to are also captured.

This guide explains how to connect Kaltura MediaSpace to Watershed and report on the data in three sections:

Connecting Kaltura MediaSpace to Watershed

To connect MediaSpace to Watershed, you’ll first need to reach out to the Kaltura team to enable the xAPI module in your KMS instance. Once that’s turned on, you can configure the xAPI module as you would any other module. The configuration screen looks like this:


Complete the endpoint, key and secret with the corresponding values found on the xAPI Data Sources page in Watershed then click save. See How do I add an activity provider to Watershed? for details.

Creating measures for Kaltura MediaSpace data

This section outlines the relevant measures that can be created to report on data from Kaltura MediaSpace. All of these measures can be created in Watershed’s measure editor.

Generic measures

The following generic measures work well with almost any data set:

  • Interaction Count
  • Timeline
  • Activity Count
  • Person Count.

With the exception of Person Count, each of these measures is created in your account by default. Person Count is configured with the settings as shown below:


Login Count

Login count counts the number of logins to your MediaSpace instance. It is configured using the settings show below.


Like Count

Like count counts the number of likes by a particular person or for a particular video. It is configured using the settings shown below.


Comment Count

Comment count counts the number of comments by a particular person or for a particular video. It is configured using the settings shown below.


Play Count

Play count counts the number of video plays by a particular person or of a particular video. It is configured using the settings shown below.


Videos Played

Videos played counts the number of unique videos played. It is configured using the settings shown below.



Progress shows the furthest progress of a person through a video. It works best on cards filters to a single video. It is configured using the settings shown below. The full value of the statement property field is result.extensions.[https://w3id.org/xapi/cmi5/result/extensions/progress]


Example cards and visualizations

The measures defined above can be deployed in a number of different reports. This section lists examples of some of the possibilities.

Most liked and most played content


These bar charts show the most popular videos in terms of plays and likes. They use the Person Count, Like Count and Play Count measures and are organized by activity. Each card uses a verb filter for like and played respectively.

Most commented on content


This bar chart shows which content has the most comments. It uses the Person Count and Comment Count measures and is filtered by the ‘commented’ verb. The card is organized by parent context activity which is a custom dimension configured in Advanced Configuration.

"dimensions": [
    "statementProperty": "context.contextActivities.parent.id"

Most active people

This heatmap shows which people are most active by various measures. It is organized by person.


Single video plays and progress

This leaderboard is organized by person and filtered to just one video, in this case ‘Roar’. If shows how many times each person has played the video and the furthest they have progressed through as a percentage. It also includes a timeline of when the person played the video.


Was this article helpful?
1 out of 1 found this helpful


  • I am wondering...
    I see you are using verbs that point to http://activitystrea.ms/schema/1.0/play , but it is no longer available and also seems to me that https://w3id.org/xapi/video/verbs/played is more proper to be used.
    Can you elaborate more about this?

  • Hi Nadav,
    Great question. The activitystrea.ms identifiers never resolved, so it's not accurate to say these verbs are "no longer available" or that another verb is "more proper". There's no requirement under xAPI to host metadata at the url of identifiers and I'm not aware of any products that attempt to fetch hosted metadata.

    When hosted metadata is provided, xAPI only recommends, rather than requires a particular structure for that metadata. https://w3id.org/xapi/video/verbs/played does not follow the recommended structure and is therefore no more useful than an identifier that provides no metadata to an application attempting to fetch metadata from the url according to xAPI's recommendations (if such an application were to exist).

    The big advantage that http://activitystrea.ms/schema/1.0/play has over https://w3id.org/xapi/video/verbs/played is that it's part of an established recipe that's existed for a number of years and has been adopted by a number of applications. This means that new applications following the same recipe can ensure their data is compatible with other video applications. See https://registry.tincanapi.com/#profile/19

    There is some work to develop a fuller recipe for video being undertaken under the ADL CoP banner, that I believe currently intends to promote https://w3id.org/xapi/video/verbs/played instead of http://activitystrea.ms/schema/1.0/play but this recipe is not released and could (and I hope will) change. I encourage the working group developing that recipe to build on the existing recipe and existing adoption, rather than seeking to replace it.

    Watershed will work with any verbs, regardless of whether they resolve, and measures and filters can be configured to look at multiple verbs together.

    Does that help to explain?


  • Thank you for make it more clear, still, I am not sure about this as I am not deep enough in the xAPI waters as I used to be a year or two ago, with what is currently the uptodate proper way of using the right video profile.

    I am currently looking into implementing a video profile (verbs) on the H5P Video player library, and reading this:
    post, saying that:
    The original registry - original: our registry(https://registry.tincanapi.com/), replacement: a new registry (http://xapi.vocab.pub:8890/fct/)
    and looking at http://xapi.vocab.pub:8890/describe/?url=https://w3id.org/xapi/video#played
    I found it still confusing.

    Also, reading "xAPI Video Profile + VideoJS" (https://docs.google.com/document/d/18y2LmzlrLDNWibOisQDJBaKl4RJg7CSx7CeK6V_DWco/edit#heading=h.7ltlfq9pc7y3)
    And https://github.com/jhaag75/xapi-videojs
    Made me think we should use this other video profile.
    What do you think?

  • Hi Nadav,

    I think what Tim is trying to say https://experienceapi.com/part-one-decide-work/ is not that https://registry.tincanapi.com/ is deprecated and replaced by http://xapi.vocab.pub:8890/fct/, but rather that work they've released for free in the past has not been utilised as well as it might have been and instead ADL have released competing resources, duplicating effort. They want to make sure that if/when they release other stuff for free, it's going to be used. I don't think that post has any relevance for you deciding which verb to use.

    Regarding "xAPI Video Profile + VideoJS", I can only repeat what I said above. As far as I'm aware, this recipe is not released and could (and I hope will) change. http://activitystrea.ms/schema/1.0/play is part of an established recipe that's existed for a number of years and has been adopted by a number of applications. It's what I would use if I were implementing video tracking.

    You've got to choose what you think is right though. If you do go with a different verb, your data will still work great with Watershed, it just might be a little extra effort in configuring reports if you want to report on data from your implementation alongside other video implementations that use the more commonly used verb set.

  • Thank you for clearing that out.

    I guess, that If we are using the same video profile (recipe) throughout the project within all its video components, then there is no real harm to the data analytics. but if we mix products that uses different video profiles (maybe Kaltura's video player with VideoJS video player) then we will get different verbs :-(

    Although it is better to have a consensus about the verbs and the profiles/recipes (video and others...), it might be useful to have profile support at the framework level, so the administrator of those mixed applications and frameworks could set them up to use the same profile. as long as it not fixed hardcoded verbs, it seems flexible enough. What do you think?

    I wonder, can you point me to any public implementation of a video player that uses xAPI with https://registry.tincanapi.com/#profile/19 video recipe?

Please sign in to leave a comment.

If you can't find what you need or you want to ask a real person a question, please contact customer support.