hypothesis / product-backlog

Where new feature ideas and current bugs for the Hypothesis product live
118 stars 7 forks source link

Canvas Studio video integration #1528

Closed dwhly closed 5 months ago

dwhly commented 7 months ago

Look into the effort required to implement support for Canvas Studio video annotation within the LMS application.

The goal is to create a similar experience to the existing YouTube transcript annotation, but using videos hosted in Canvas Studio.

API documentation: https://tw.instructuremedia.com/api/public/docs/ Tutorial on authorizing with Canvas Studio and using API via Postman: https://community.canvaslms.com/t5/Canvas-Studio-Blog/Connecting-Studio-OAuth-via-Postman/ba-p/259739

Project board: https://github.com/orgs/hypothesis/projects/136/views/1?layout=board

robertknight commented 7 months ago

There are two parts to this:

  1. Generalizing the existing YouTube video integration in Via to support videos and transcripts from arbitrary sources, provided they are in standard formats. For videos, this means formats that a web browser can play directly. For transcripts, this means widely used formats such as WebVTT or SRT that we can easily process.
  2. Adding a new Canvas Studio content type to the picker in the LMS app, which uses Canvas Studio OAuth authorization and the Canvas Studio APIs to launch the content.

Part (1) is covered by https://github.com/hypothesis/via/issues/1293 and I've verified this can load media and transcript URLs obtained via the Canvas Studio APIs.

Part (2) is in progress. This Slack thread discusses the overall way authorization with Canvas Studio will work on the LMS side and the steps that happen during assignment configuration and launch.

robertknight commented 6 months ago

See https://github.com/orgs/hypothesis/projects/136/views/1?layout=board for a detailed planner for this project. This ticket is being kept as a representative item in the main board.

robertknight commented 5 months ago

The first iteration of Canvas Studio video support is done. There is a big caveat that the current implementation requires a Canvas Studio user with admin permissions to authorize the Hypothesis integration, so that we can use their API tokens to fetch videos and transcripts when serving assignments. See comments for the CanvasStudioService class in the lms repo. This is not ideal because it makes the setup process more complex. Changing this however will require help from the Canvas Studio developers.

Where we are currently at is that we need to road-test this integration with early adopters to verify it works for them. Depending on what comes out of that we'll probably need to make some changes.

robertknight commented 5 months ago

I'm closing this as "done". We can open new issues for any follow-up work.