Learn about how you can extract Media Insights from Studio

3 4 1,186

Product Blog Headers -- 1200 x 200.png


We first talked about our vision of the new API support and the goals we want to achieve with it. Then the previous post detailed practical examples where administrators could find significant help to address content management issues with our new endpoints. This - last piece - will talk through those capabilities that let you access and extract viewership data from Studio.

In case you missed the previous snippets, I highly recommend you to look into those. On the other hand, one might ask ‘why are you folks working with the API specifically and not this and that?’. I owe some clarity that I missed in the first post. Reworking and expanding our API is not only about giving a new way to interact with Studio content through a remote interface. 

When we build solutions, we use the very same API under the hood. Some are publicly accessible, some remain private. When you create a new collection in Studio, it is using the Create a new collection endpoint that you can access publicly as well. If we were to build an interface for admins to help manage content across the entire account - which we soon will - then the engineers would first sit together and start to figure out the endpoints we need in order to pass the necessary data between Studio’s UI and the databases in the background. The powerful search endpoint detailed in the previous blog post is the foundation of such an interface.


Essentially, our API is an early phase support to solve problems programmatically today and the foundation of what’s coming to Studio tomorrow. This is why we invested into extracting media insights as well.

Today it enables customers to extract viewership data and import it to the tool of their choice so that they can build dashboards to display them. Tomorrow these dashboards will be accessible within Canvas so that educators with no affinity to using an API can access module and course level data as well. 


The example above is just a simple dashboard to show completion rate for each video by student in the course Introduction to Psychology as well as their average completion rate. The output format is standard CSV, so I could display them in any spreadsheet with no effort. 

Have you thought of similar dashboards displaying student viewership and would come handy in Studio or Canvas?  Feel free to comment here or drop me a message. I would LOVE to hear from you!


All accessible data under Media Insights in Studio can be queried via the API as well.

  • Overview: metrics on Views, Time Viewed, Unique Viewers and time charts for Unique Viewers and Number of Plays
  • Viewers: tabular data on the Viewers (name, role, e-mail address, completion rate)
  • Student viewership: data on which segments each student watched  

These can be accessed on 3 different levels.

  1. Perspective: a perspective is a concept in Studio that refers to a view of a certain media and has its own viewership data. The embedded Studio media in Canvas is different from the one watched from your Studio Library (it is one of its perspectives) and therefore different viewership data will belong to them. In order to extract viewership data of a media embedded in a course, you need to obtain the ID for that perspective. 

    The Get media insights overview for a perspective endpoint can be used to access Insights data of one specific perspective.
  2. Media: in most cases the embedded perspective is enough however, a media enhanced with quizzes are creating different perspectives for each quiz. Therefore you might need to collect multiple perspective IDs for a media to get the whole data in certain cases (e.g. video-based group assignments). In order to remain flexible and satisfy custom demands, there is currently no specific endpoint for this however, the Get perspectives belonging to a media lists all different perspective IDs for a certain media and can be used along with the previous endpoint. Aggregation of Insights data for the different perspectives (standard embeds, quiz embeds, Library) needs to be scripted on the API consumer’s end.

    (Please note that you cannot find media ID from Studio’s interface and that needs to be obtained programmatically. One of the recommended ways to obtain a media ID is to use the Canvas course ID found in the URL as the collection_id in Get data of a collection. If you use the ID from the response in List media in a specific collection then you essentially list each embedded media’s id in a given course)

  3. Course: as Media Insights can be valuable to interpret on the course level, Studio provides a script that gets all the Insights data of all perspectives of a course and combines them into two CSV files. The Get viewership insights of all the videos in a course script is a quick and easy way that expects a Canvas course ID and provides course level data as the described output. 

Hope this was useful!