Enable Video Upload on CMS

How is the properly way to enable this open edx feature?

On django admin has this setting

image

I enabled and on studio the section appears

image

But when i try do access them

Example:
https://studio.ufmtonline.ufmt.br/videos/course-v1:UFMT+CAD01+201X

Is necessary another more some step?

I have minio enabled on tutor plugins

1 Like

Hi @ejklock!
I have tried long and hard to enable video uploads from the studio (see for instance https://github.com/edx/edx-platform/pull/22080). Unfortunately, I did not succeed yet. The reason is that edx-platform relies on an outdated, badly configured boto library for interfacing with S3 (or in our case, MinIO). Basically, edX.org is using the only S3 region (us-east-1) which does not require SigV4 authentication. For all other regions (including MinIO emulation), SigV4 is required.

So this is not really a tutor bug, but more of an issue with how edx-platform works. A workaround is to upload videos to MinIO, and then add the link to the video in the studio. This is not very user-friendly for course staff, but it works.

1 Like

Thanks for reply!

hoping that right

Regards

@regis Did you ever get any further with this?

Nope. And worse than that: I realized that the video upload feature actually works only in conjunction with edX’s proprietary video pipeline, which is not publicly available.

1 Like

Well that sucks :no_mouth:

@regis, do you know which edX’s proprietary video pipeline works with video upload feature?

Have been reading the Studio documentation, the edX version as also the Edge and Open edX versions.

Documentation is saying, that only edX has a pipeline for video processing (i.e. generating different resolutions of a video and chuncking for streaming, and submitting the video to a transcription service).

Edge and Open edX you are supposed to host your videos somewhere else, also to manually upload the transcript after entering the video URL in the Studio.

But then I see until Juniper, the - now retired - video pipeline components (https://openedx.atlassian.net/browse/DEPR-107) were included also in Open edX.

Am I missing something?

Have been looking to host videos ourselves, not depend also on AWS lambda video processing libs. Probably in combination with using a better video player in the LMS (like GitHub - appsembler/xblock-video: Universal Video XBlock with pluggable backend for many video hosting).

Something likes GitHub - openfun/marsha: A self-hosted opensource LTI video provider looks interesting, but this code sadly depends on AWS also, when I have time (now very busy with delivering a big project) I will be looking into hacking in there some ffmpeg or gstreamer scripts for generating a HSL / Dash encoding ladder (Apple Developer Documentation) and chunking, probably also see if we can put some form of protection (DRM and / or watermarking/branding on delivery of the videos).

Other links among many I found interesting:

Fun fact: a couple years ago I actually implemented the ancestor of Marsha for fun-mooc.fr, which was called Videofront: https://github.com/openfun/videofront Unfortunately, Videofront is now deprecated.

Yes I saw your videofront code, and so came to marsha.

Did some investigation on DRM protection (need this in S.America so we won’t go broke before actually starting), seems Widevine etc. are touted as ‘free’ but are not so in practice, as Google keeps the monopoly with their key server and worse, weird expensive ‘certification’ courses so you may use their server.

Only thing I found is Clearkey, standard but not as sure as the expensive / middleman solutions, but in combination with watermarking we could probably live with it.

There’s some Clearkey server code on github, will see if one of these weeks can transform that to decent Java code including an embedded http server, to start testing things (original code is .NET, no way this will contaminate our server :slight_smile: )

On the other hand, I think video and transcription should be kept separate from openEdx… their old video pipeline with long running tasks and reliance on several providers is simply a receipt for disaster. Too many customers already that think you can pipeline their whole organization, in practice nice until somewhere a part of the chain breaks, and you’re stuck with many sleepless nights, lost data, lost money (go upload your videos 5 times and have them encoded, then get an error because transcription didn’t come back in time)…

Off-topic maybe: But I start to like the new AV1 codec very much… Just installed the lib from Alliance for Open Media / SVT-AV1 · GitLab and rebuilt my ffmpeg…

Tried with a YUV encoded file:

45621044 – akiyo_cif.y4m

encoded with AV1 to:

90848 – akiyo.mp4

44MB to under 90kB, that’s impressive i.m.h.o.

1 Like