Course introduction video link other than youtube

Hi. I’m running open edx olive with tutor. Recently I’ve realized that in the studio > course > settings > timing and details > course introduction video I have to provide a youtube video ID. What if my video is not uploaded on youtube? Is there any way of using any other format? Honestly we can’t use youtube for this purpose as we have our own video hosting.

I’m having the same problem. If you find out how to do this please let me know & I’ll do likewise. Best - Arthur

I’m having a guess but I’m not sure how this solution will impact the system. Please have a look at these three methods in CourseDetails located in openedx/core/djangoapps/models/course_details. The code currently looks like this:

def fetch_youtube_video_id(cls, course_key):
    Returns the course about video ID.
    raw_video = cls.fetch_about_attribute(course_key, 'video')
    if raw_video:
        return cls.parse_video_tag(raw_video)

def fetch_video_url(cls, course_key):
    Returns the course about video URL.
    video_id = cls.fetch_youtube_video_id(course_key)
    if video_id:
        return f"{video_id}'

def recompose_video_tag(video_key):
    Returns HTML string to embed the video in an iFrame.
    # TODO should this use a mako template? Of course, my hope is
    # that this is a short-term workaround for the db not storing
    #  the right thing
    result = None
    if video_key:
        result = (
            HTML('<iframe title="YouTube Video" width="560" height="315" src="//{}?rel=0" '
                 'frameborder="0" allowfullscreen=""></iframe>').format(video_key)
    return result

Check for the usages of these methods. For example in the CourseDetails.populate method we have

    course_details.intro_video = cls.fetch_youtube_video_id(course_key)

You need to have a look at the CourseDetails.parse_video_tag method as well. So yes, I guess these three methods must be changed but I’m not sure about the impact of changing them on playing, analytics, reports or any other functionality. When you search for youtube in the project, most of the results are test files and some js files (mostly in cms/static/js/spec directory). Please let me know if you have any idea about this, specially the impact and those js files.

I was able to get an “external” .mp4 file to play by embedding the .mp4 video as a link within the html page. Hope this helps!

Sorry I don’t get it. Can you please explain in more details that which part of which html page you changed?

I went into the page that allows you to create content. Once there, I used basic text to link my URL link using the system’s link feature. Perhaps if you can share another email address with me, I can provide you a screenshot of what I’m talking about. The OpenedX platform doesn’t allow me to paste media within responses.


Yes that would be great! Please contact me at