Skip to content

TIK-NFL/ilias-oc-plugin

Repository files navigation

ilias-oc CI

An ILIAS Repository Object plugin for Opencast 5 and newer.

This plugin creates a tight integration of Opencast and ILIAS. This plugin also requires a workflow handler for Opencast, which enables distributing the files in a way that are usable by this plugin. This plugin is available in the Github Repo.

Installation

REQUIRED Databases: MySQL/MariaDB

It MUST be installed into Customizing/global/plugins/Services/Repository/RepositoryObject/.

The plugin folder MUST be named Opencast.

In production environments you can delete the test/ directory.

Configuration

Upload workflow

Select a matching workflow as defined below.

Trim workflow

Select a matching workflow as defined below.

Publisher

The publisher used to create new Opencast series, e.g. "University of Stuttgart, Germany". This value is optional.

Opencast

An Opencast Service with enabled external API is required. The servers external API must be accessible by Ilias and the Ilias users directly.

Currently the minimum required API version is v1.1.0 (Opencast 5.x).

API User

To access the API of Opencast from Ilias an authorized user is required. The user need the following roles:

  • ROLE_API
  • ROLE_API_EVENTS_CREATE
  • ROLE_API_EVENTS_VIEW
  • ROLE_API_EVENTS_DELETE
  • ROLE_API_EVENTS_METADATA_EDIT
  • ROLE_API_EVENTS_PUBLICATIONS_VIEW
  • ROLE_API_SERIES_CREATE
  • ROLE_API_SERIES_VIEW
  • ROLE_API_SERIES_METADATA_EDIT
  • ROLE_API_WORKFLOW_INSTANCE_CREATE
  • ROLE_API_WORKFLOW_INSTANCE_VIEW
  • ROLE_API_WORKFLOW_DEFINITION_VIEW

Create this user in Opencast and enter it in the plugin configuration. This plugin will create new series and episodes with a acl containing ROLE_USER_{OPENCASTUSER}, so they can be accessed by the plugin.

URL Signing

In order to use URL signing the Opencast Stream Security must be enabled. Follow the Opencast documentation to do so.

Upload workflow definition

This workflow is used for uploads from ilias to opencast and MUST have the upload tag to be recognized by this plugin. The workflow MUST support the configuration:

  • flagForCutting ["true", "false"]

If flagForCutting is set to "true" a Preview Publication MUST be published. If flagForCutting is set to "false" a Non Preview Publication MUST be published.

Trim workflow definition

This workflow is used for trim from the plugins trim editor. It MUST have the editor tag to be recognized by this plugin. The workflow MUST support the configuration:

  • start integer the start duration in seconds
  • end integer the end duration in seconds

The workflow MAY support additional configuration:

  • hide_presenter_video as described in opencast
  • hide_presentation_video as described in opencast

The workflows MUST publish a Non Preview Publication to the api channel.

Schedule workflow definition

This workflow is used by the capture agents for scheduled episodes. The workflow MUST publish to the api channel. It MUST either publish a Preview Publication or a Non Preview Publication.

Non Preview Publication

This publication is for finished episodes, that can be published in the ilias plugin. The publication MAY contain a search preview for the episodes list view, the search preview MUST have the flavor */search+preview. The media files of the publication SHOULD have the flavor */delivery and mediatype video/mp4.

Preview Publication

This publication is for the trim editor. It SHOULD only contain a single track preview with flavor "presentation/preview", "presenter/preview" or "composite/preview". This preview MUST be published on the api channel with the tag preview on the track.

FAQ

What happens if a series created by this plugin is deleted in Opencast?

The Ilias Opencast object will not be deleted automatically, but it will not display any episodes and no exception will be thrown in the overview UIs of that particular Ilias Opencast object. Only opening the properties tab of that Ilias Opencast object will throw an exception.

What happens if a Ilias Opencast object?

The corresponding series and episodes are not deleted in Opencast.

Which episodes are displayed on the overview page?

The episode must be published in Ilias, this means the episode id is in the rep_robj_xmh_rel_ep database table. The episode must be part of the series corresponding to the Ilias Opencast object and must be have the status EVENTS.EVENTS.STATUS.PROCESSED. The episode must have a publication on the api channel and the must not have a track with the preview tag.