Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

      1. Course PM creates a (shell) course in Studio.
        1. Enables a new "Video Upload Pipeline" Advanced Setting in the course and enters the Institute Name and corresponding Access Token (mutually agreed upon in Configuration step i above).
        2. Adds the Video Producers to the Course Staff role in the new course in Studio.  (LATER: we can create a new "Video Producer" role with limited access to the course.)
        3. Communicates the Studio URL of the newly created Course to the Course' Video Producers.

      2. Video Producers login and upload their file(s) through Studio into the specific Course.
        PROD NOTE: Having video producers know which video corresponds to which course is a new requirement.  Up until now, they only needed to know the institute for which a video belongs, not the course.  In the future, we should consider using the Content Library feature, which is external to a course.

        1. Studio automatically uploads the Raw Video file(s) to an institute-specific folder in an S3 bucket accessible by Studio and VEDA.
          1. (API:0@B_STUD)The Browser calls the Studio server with the list of filenames that the user wants to upload.

          2. The Studio server
            1. Creates the following metadata information for each of the files:
              1. edx video ID. An ID that uniquely identifies this logical video.
              2. User Supplied File Name.  The user-provided name of the file.
                PROD NOTE: We store the user-provided filename in the metadata instead of using it as the actual name of the uploaded file so (1) we can treat duplicate filenames as completely different videoes and (2) we don't have to worry about unintended name collisions.
              3. Institute Name and Token.  The previously agreed-upon values as stored in the Studio Advanced Setting.
              4. Course Name.  The 'course' field of the (org, course, run) tuple information for the course that this file was uploaded in.
                ARCH NOTE: Although the Course Name is not really needed by VEDA (it being course-agnostic), it currently uses it for generating its own internal IDs.
            2. The files would be placed in a folder named after the Institute Name and the file's name being the edx video ID.
               
            3. (DBW:1@STUD) Stores the edx-video-ids in the Asset Meta Data Store (newly minted by the Platform team) with category "video".
            4. (API:1@STUD_S3) Authenticates with S3 and requests upload URLs for each of the Video file(s).

          3. (API:2@STUD_VAL) Calls VAL with the Institute Name and list of edx-video-IDs generated for each uploaded file.
            1. (DBW:2@VAL) VAL creates new entries for the edx-video-IDs, with VAL status "Uploading".
            2. (API:3@VAL_VEDA) Optionally, VAL notifies VEDA to check the S3 bucket for newly incoming files.

          4. (API:4@B_S3)The Browser uploads the files directly to S3 with the server-supplied one-time-use URLs and corresponding metadata.  Here are examples of how this is done in ORA2:
            1. https://github.com/edx/edx-ora2/blob/master/openassessment/xblock/static/js/src/lms/oa_response.js#L483-483\
            2. https://github.com/edx/edx-ora2/blob/master/openassessment/xblock/submission_mixin.py

        2. VEDA does the following for each new uploaded file found in the S3 bucket:
          1. NEW since Beta:(API:5@VEDA_VAL) Notifies VAL with the validity status of the uploaded file, including the file's edx-video-id (embedded in the meta data of the uploaded file).
            1. (DBW:3@VAL) VAL updates the entry for the video with the status.  VAL status: "File Valid" or "File Invalid"
          2. As before, spawns new processes for creating the various encodings and kicks off transcript translation jobs.
          3. Already in Beta:
            1. (API:6-10@VEDA_VAL) Notifies and updates VAL whenever one of the spawned processes completes.
              1. (DBW:4-8@VAL) VAL creates a new mapping between the video's corresponding edx-video-ID and the S3 URL for each new encoding.  VAL status: "In Progress"
            2. (API:11@VEDA_VAL) Notifies and updates VAL when all processes have completed.
              1. (DBW:9@VAL)  VAL updates the status accordingly.  VAL status: "Complete"

      3. Video Producers can check the status of their previously uploaded files within Studio.
        1. (DBR:1@VAL) Studio retrieves the list of edx-video-ids associated with the course from the Asset Meta Data Store.
        2. (API:12@STUD_VAL), (DBR:2@VAL) It queries VAL for the status of each edx-video-id in the course.
        3. It displays a table with metadata for each uploaded video, including its status, edx-video-ID, user-provided upload file name, date uploaded, and video time duration.

      4. Course Teams can also use the above table to see the list of uploaded videos.  They copy and paste the edX-video-ID from that table into the corresponding Video Module.

...

For example, an edx-Video-ID of "edx-vid-v1:MIT-j3ui8jsdf0" could refer to the following files for its various encodings:

...