Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Added ADR for video indexing #832

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 35 additions & 0 deletions docs/decisions/0010-indexing-videos-for-enterprise.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
Indexing videos for search and driving enrollments
==================================================

Status
------

Draft


Context
-------
Microlearning, broadly defined, are short form educational experiences (<30 minutes) that are designed to deliver against a specific learning objective while minimizing learner fatigue. The scope of this decision record is a microlearning experience that focuses on videos. The videos will be utilized to market the associated course to prospective learners and help drive enrollments, which will eventually result in an increase of revenue.


Solution Architecture
---------------------
The videos will be indexed in Algolia for discoverability via search in the Enterprise Learner Portal. Since the video-course relationship resides in lms (edx-platform), api clients will be used to pull that information into enterprise-catalog, similar to how it is done for video skill tagging (https://github.com/openedx/course-discovery/blob/a0124cae632d44300f479ae59850499c4b7b6809/course_discovery/apps/taxonomy_support/providers.py#L254). Once pulled into enterprise-catalog, the video metadata will be stored as a new app "video_catalog" (https://github.com/openedx/enterprise-catalog/tree/master/enterprise_catalog/apps). This new app will be responsible for 3 primary tasks: firstly to pull and store video metadata from lms, secondly to generate Algolia sized text summary of video transcripts using generative AI and finally to interact with existing Algolia indexing routines to add the video as a full-fledged Algolia object similar to courses, programs and pathways.


Decision
--------
Video catalog is an enterprise catalog and should reside within the Enterprise Catalog service. Video and course metadata relationships can be easily managed while existing indexing routines in enterprise-catalog repository can be reused.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is the idea that there is one catalog record that references all of the video content? Or will the content be included in a subset of customer catalogs as a new content type?

Copy link
Contributor Author

@irfanuddinahmad irfanuddinahmad May 20, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@iloveagent57 the catalog relationship will be picked up from the associated course of any video. While indexing a course in Algolia, its associated videos will be fetched and also indexed with the same catalog/query/customer uuids as those of the course



Consequences
------------

A large amount of Algolia indexing code in the enterprise-catalog repository will be reused, thus reducing the
time to market. This also entails a tight coupling to the enterprise catalog.


Alternatives considered
-----------------------

We considered adding Videos to the edx-discovery search, similar to what is implemented for Courses, Programs and Pathways. Since, this feature is enterprise specific, we did not see much benefit in adding the extra Discovery hop, which could trigger significant complexity due to another layer of indexing in elasticsearch.
Loading