[Admin Tools] Report for Non-Captioned Videos in Canvas Courses

0 Likes
(3)

This request is for a report that can locate videos that do not have captions in Canvas courses. The need for ADA compliance is imperative, but unfortunately, not all instructors make this a priority. Having a report that shows which courses have videos that are not captioned will help instructional designers know which teachers to work with, and they can go ahead and get those videos captioned. 

User role: Canvas admin

10 Comments
KristinL
Community Team
Community Team
Status changed to: Moderating

hi @clarkld -

Would these be for Studio videos, embedded videos, or both? I'd like to learn a little more about the focus of this request before we open it for further conversation. I feel that a report for Studio would be much more feasible, but I want to hear what you need! 🙂

clarkld
Community Explorer

It would be both. We've had plenty of instances where non-Studio videos were embedded and there were no captions. Combing through courses is exceedingly time consuming, and though we have put out several requests to teachers to let us know if they need help getting things captioned, we don't hear from many- and yet, we're always finding uncaptioned videos during evaluations. Other colleges I've spoken with are in the same boat and we're trying to get ahead of this issue. 

Chris_Hofer
Community Coach
Community Coach

@clarkld ... Thanks for submitting this Feature Idea.  This would be extremely helpful for us as well...especially for Studio videos we have embedded in our courses.

P1281881
Community Explorer

ADA compliance is at the top of our list for needs.  We have this on our HindsCC wish list.  EVERY LEARNER needs the same opportunity!

b1636628
Community Explorer
Yes. This is needed. It will help my department be proactive instead of reactive when it comes to ADA Compliance.
b1636628
Community Explorer
Yes. This is needed. It will help my department be proactive instead of reactive when it comes to ADA Compliance.
James
Community Champion

This is one of those things that can be [partially] done by those who have the technical skills and patience. However, it really needs to be a report to be helpful.

The current approach goes something like this (using the Arconaut's API, not the Public one):

  1. Get a list of all the collections. This is based off the authenticated user, which means that you don't get it for all users, even if you're an admin.
  2. Get a list of all of perspectives for each of the collections. This contains the media ID for the perspective.
  3. For each media, try to get the caption for it.

The last time I processed things (late 2021), I had 71 collections with 911 videos. That would mean that I would need to make 1 (collection list) + 71 (perspectives) + 911 (media) = 983 API calls to get the information. That's me personally, not everyone at my institution.

Oh, and because of rate limiting, you can only sustain 1 API call per second. Go any faster, and you will eventually get blocked and then everything fails.  So, that 983 calls becomes 983 seconds, which is 16 minutes and 23 seconds to get the data for just my videos.

Now, Canvas does have a public API. I will say that what I'm writing here is based off their documentation, not actual testing. When I looked into it, I found the public API lacking, so I used the Arconaut's API instead.

You cannot get perspectives from the Canvas Studio public API, but you can get Media for each collection and then use the get captions for each media.

It sounds like you could simply replace step 2 with a call to get the media. Except there's a major problem there. The media object obtained through the public API doesn't include the is_external flag to let you know whether it's a Canvas Studio file or a YouTube file that is embedded in through Canvas Studio. My conjecture is that the public API is for things you need to do with Canvas Studio, not things you need to do inside Canvas with Canvas Studio. The public API isn't going to tell you whether an external video has captions because there are no external videos there.

Now, before you resign yourself to just using the Arconaut's API, the call to get the captions for an external file (YouTube) returns an empty caption list, even if there are captions there. In other words, Canvas Studio doesn't store in its database whether there is a caption on a YouTube video. When I used Canvas Data to go through and search for embedded files, I had to get an API token from Google for YouTube usage and then check to see whether or not there were captions for those.

This means that even a report that they might right wouldn't include that information, meaning that @KristinL hypothesis about Canvas Studio being more feasible is right.

 

As far as the captioning for my own files, I found the clicks within Studio to be too onerous, so I automated it. I wrote a script that would take a list of active collections (so that it didn't have to process all 71 of my collections) and a "last time I ran the script" datetime (so that I didn't have to process all of the videos within that collection) and check the Canvas Studio captions for each of the media within that collection. If there was no caption file, then I would start the automatic captioning process programmatically.

lvstanford
Community Member

Yes... This is a great idea! Having a process in place to hold instructors accountable for captioning videos would be so helpful. This would let students that are often ignored or glossed over communicate the importance of captioning on their learning.

KristinL
Community Team
Community Team
Status changed to: Open
 
ProductPanda
Instructure
Instructure
Status changed to: Archived
Comments from Instructure

As part of the new Ideas & Themes process, all ideas in Idea Conversations were reviewed by the Product Team. Any Idea that was associated with an identified theme was moved to the new Idea & Themes space. Any Idea that was not part of the move is being marked as Archived. This will preserve the history of the conversations while also letting Community members know that Instructure will not explore the request at this time.