Directly retrieving viewership rates and quiz scores for specific users and videos via the API
We are currently using the Panopto API to check the viewership rates of required videos and quiz results, and to grant network access privileges to students who meet the criteria.
Currently, we retrieve and process quiz result files for all users; however, as the number of users increases, the volume of data is growing, and we are exploring ways to improve processing efficiency.
Please clarify the following:
- Is there an API that allows us to directly retrieve viewership rates and quiz scores for specific users or specific videos?
- Is it possible to filter the retrieved data by a specific time period (e.g., the past 30 days)?
- Please explain how to search for APIs in the SOAP API documentation and the differences between versions such as V42 and V46. For example,
what are the differences between Panopto.Server.Services.PublicAPI.V42.Soap and Panopto.Server.Services.PublicAPI.V46.Soap?
Thank you.
Answers
Hi Sakae,
Thank you for the questions. Viewing and quiz data are available through the public API. There is no single call that returns one student's completion percentage and quiz score for one video, limited to the past 30 days.
Viewing
GET /Panopto/api/v1/sessions/{sessionId}/viewersreturns each viewer of a video, includingPercentCompleted(0–100). This is the student's overall completion, and it is not limited to a date range. Results come back 100 at a time;pageNumberstarts at 0.GET /Panopto/api/v1/users/{userId}/sessions/viewedreturns the videos a student has watched, again with overall completion and no date filter.GetSessionDetailedUsage(one video) andGetUserExtendedDetailedUsage(one student) return individual viewing events betweenbeginRangeandendRangein UTC.GetSessionUserDetailedUsagereturns one student's events for one video, including timestamps, but it does not accept a date range.QueueReportwith report typeSessionsViewsByUsersand a start and end time, then download it withGetReport. Minutes viewed are limited to that window. Percentage watched is the student's overall completion of the video.Quiz scores
GetQuizResultDownloadUrl(sessionId, reportType)returns a download URL for one video.UserResultsSummaryhas one row per student, with questions and correct answers.DetailedResultsBySectionhas one row per answer. The call accepts a session id only, so the file includes every student with a result on that video. Calling it once per required video, then keeping the rows you need, avoids downloading results for other videos.Finding operations, and V42 compared with V46
REST methods are listed at
https://<your Panopto server>/Panopto/api/Docs.SOAP is one WSDL per service. Open the service URL, or append
?wsdl, and search for the operation name. For example:https://<server>/Panopto/PublicAPI/4.6/UsageReporting.svc. The same services exist under/PublicAPI/4.0/and/PublicAPI/4.2/.The number in the URL is the API generation. The namespace in the WSDL is the contract version of that service, so it can be older than the URL.
V42.Soapis the 4.2 contract for Session Management, Remote Recorder Management, and Auth.V46.Soapis only Session Management, served by/PublicAPI/4.6/SessionManagement.svc, and it adds later folder and session operations. Usage Reporting was not revised, so its namespace remainsPanopto.Server.Services.PublicAPI.V40on the 4.0, 4.2, and 4.6 URLs.I hope this helps.
Thanks,
-Adis