FirstSpirit™ VideoManagement

e-Spirit AG

2018-12-31
Table of Contents

1. Introduction

The VideoManagement module is used to integrate the video streaming service provided by MovingImage24 into a FirstSpirit project. This module enhances the functionality of the FirstSpirit JavaClient, enabling the editor to drag-and-drop a video onto a page in form of a section.

MovingImage24 is integrated using the AppCenter. This document explains how to install and configure the VideoManagement module and describes use of the module in FirstSpirit’s JavaClient.

1.1. Functional scope

The VideoManagement module provides the following options for the editor in the FirstSpirit JavaClient:

  • Adding a video to a content page
  • Editing a video that has been added to a page
  • Exchanging a video
  • Viewing statistics related to a video
  • Syncing metadata of videos used in FirstSpirit

1.2. How it works

Use of the VideoManagement module in FirstSpirit requires a MovingImage24 account. An account can be set up by registering with MovingImage24 on www.movingimage24.de.

Also, the section template described in Chapter Input components must be included in the FirstSpirit project. This template is used to add a video to a page and provides the necessary code for displaying the video in the preview area of the JavaClient.

2. Components required

Before installing the VideoManagement module the following steps should be completed.

2.1. FirstSpirit-Server

For information on the installation of a FirstSpirit-Server please refer to the FirstSpirit Installation Guide. The VideoManagement module can be used with the FirstSpirit-Server Version 4.2.437. Older versions of the server are not supported.

2.2. MovingImage24 account

In order to use the functionality provided by the module a valid MovingImage24 account is required. The API key and the developer key provided with the account are also needed. These keys are provided by email after an account has been set up.

Important requirements

The API interface of MovingImage24 must be licensed with the account. Additional costs are incurred for the MovingImage24 account.

3. Installing and configuring the VideoManagement module in FirstSpirit

Use the videomanagement-<VERSIONSNUMMER>.fsm file supplied to install the module on the FirstSpirit-Server and add it to the project so it can be configured on a project specific basis.

3.1. Installation

To install the module, open the ServerManager and select Server propertiesModules.

Module management in the server properties
Figure 1. Module management in the server properties


The main panel contains a list of all the modules installed on the FirstSpirit-Server. Click Install, then select the videomanagement-<VERSIONSNUMMER>.fsm and click Open to confirm the selection.

The module contains a service, which is used for the communication with MovingImage24. While installing the module you will be asked if this service should be started automatically. It is recommended to answer this question with yes.

Once the installation has been successfully completed, the folder VideoManagement is added to the list. Select the newly installed module, click on Configure, check the box to grant All permissions and click OK to close the server properties dialog.

For details of the installation, refer to the FirstSpirit Documentation for administrators.

The module has to be added to the project in which you want to use the VideoManagement function. Open the project properties of the desired project by double-clicking it in the project overview.

Project components
Figure 2. Project components


Select the project components menu option. You will see a list of all modules that have already been added to the project. Click Add and select VideoManagementProjectConfiguration to install the module in the project. After clicking OK, it should appear in your list of project components.

3.2. Configuration of the project component

When you double-click the newly installed component VideoManagementProjectConfiguration, a configuration dialog opens. The options described below need to be customized to your needs.

module configuration
Figure 3. module configuration


API key
Enter here the API key provided by MovingImage24.
Developer key
Enter here the Developer key provided by MovingImage24.
Account
The account name used to log in. There is no need to configure administrative permissions (all rights respectively) for this account, only access permissions are required. Whether to configure additional permissions or not has to be decided according to the project. Be clear on the fact that all editors make use of the same technical user.
Pass user information (optional)
If needed, user information can be transmitted and saved to the corresponding MovingImage video during uploads. To be able to use this functionality simply tick the checkbox as this feature is disabled by default.
FirstSpirit parameters

The value of the Media Folder field should be set to the UID of the media folder that will contain the thumbnails of the videos to be used in the project. The folder defined here must exist in the project and must be created manually if it doesn’t already exist when configuring the settings.

The entry in the Resolve conflicts workflow field refers to the workflow that is to be started if a conflict occurs on synchronizing the video metadata. The default entry is the workflow imported into the project when the module is installed (see chapter Dealing with deleted videos in VideoManager ).

MovingImage24 parameters
These options are all set automatically during the installation of the module and usually do not need to be altered.

3.3. Set the web service url

The url of the MovingImage24 web service can be set in the configuration dialog of the service MovingImage24ApiService, which was installed with the module (see figure Web service url). A default value is set during the installation of the module. This value can usually be maintained.

Web service url
Figure 4. Web service url


3.4. Proxy suppport

If all Internet access is made via a proxy server, this server and if necessary information for authentification need to be made known to the module. This is done via the congfiguration dialog of the service MovingImage24ApiService which was installed with the module (see proxy settings).

proxy settings
Figure 5. proxy settings


If a specific proxy is required for the module, it can be configured using the configuration dialog. This proxy will then only be used by the VideoManagement module.

Furthermore the following service domains have to be released for the proxy:

  • dl.edge-cdn.net
  • edge-cdn.net
  • podcast.edge-cdn.net
  • flash.edge-cdn.net
  • jpn.edge-cdn.net
  • download.edge-cdn.net
  • cdn.edge-cdn.net
  • media.cdn.edge-cdn.net
  • jpn.cdn.edge-cdn.net
  • download.cdn.edge-cdn.net

It is also possible to use the wildcard *:

  • *.edge-cdn.net (MovingIMAGE24 Service-Domain)
  • *.movingimage24.de (MovingIMAGE24 Service-Domain)
  • *.movingimage24.com (MovingIMAGE24 Service-Domain)
  • *.akamai.net (Akamai Service-Domain)
  • *.edgesuite.net (Akamai Service-Domain)
  • *.akamaistream.net (Akamai Service-Domain)
  • *.edgefcs.net (Akamai Service-Domain)

If the domains above are not released for the proxy, the following exception might occur:

java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
  at java.util.LinkedList.entry(Unknown Source)
  at java.util.LinkedList.get(Unknown Source)
  at de.espirit.firstspirit.opt.pm.video.VideoService.handleDrop(VideoService.java:202)
  at de.espirit.firstspirit.opt.pm.video.HandleVideoDropExecutable.handleDrop(HandleVideoDropExecutable.java:39)
  at de.espirit.firstspirit.opt.pm.video.HandleVideoDropExecutable.execute(HandleVideoDropExecutable.java:28)
  at de.espirit.firstspirit.opt.pm.video.HandleVideoDropExecutable.execute(HandleVideoDropExecutable.java:20)

4. Expanding the FirstSpirit Project

In order to use the VideoManagement function in FirstSpirit a special section template is imported into the project when the module is installed. You can find the form and the HTML presentation channel in appendix Form of the Video streaming section template of this document.

The following section describes the implementation of the required components.

4.1. Expanding metadata

For every video referenced in FirstSpirit, a proxy object is created in the Media Store. This object contains the metadata of the video. Therefore, several input components have to be added to the project’s metadata template. If the project does not yet have a metadata template one must be created.

The necessary additions to the metadata template can be found in appendix Expanding the metadata template.

Further Information about the metadata template can be found in the FirstSpirit Documentation for administrators.

4.2. Input components

The module adds a section template, VideoManagement Example Section, to the project. This template can serve as a model for the actual implementation. The template itself should not be used, because it will be overwritten with every update of the module. The template is ready to use immediately, but should be customized to the project requirements, especially the output (HTML presentation channel).

The section template consists of various input components which are explained in the following.

4.2.1. Combobox for choosing the player skin

This combobox enables the editor to determine the appearance of the video player, which is displayed on the page. The code used for this box is shown here in shortened form:

<CMS_INPUT_COMBOBOX name="st_video_skin" useLanguages="no">
    <ENTRIES>
        <ENTRY value="1">
            <LANGINFOS>
                <LANGINFO lang="*" label="Fully featured (content area, 500x307)" />
            </LANGINFOS>
        </ENTRY>
        <ENTRY value="2">
            <LANGINFOS>
                <LANGINFO lang="*" label="Recommended features (content area, 500x307)" />
            </LANGINFOS>
        </ENTRY>
    </ENTRIES>
    <LANGINFOS>
        <LANGINFO lang="*" label="Player skin" description="Please select the player skin" />
    </LANGINFOS>
</CMS_INPUT_COMBOBOX>

Depending on the editor’s selection, a corresponding invocation code is rendered to the page. The VideoManager can be used to define custom player skins. The combobox and the HTML output channel can be manually enhanced with these skins.

4.2.2. Reference

This component shows the selected video. In the code it is important to make sure that the folder from the module configuration is used and that this folder actually exists.

 <FS_REFERENCE
  name="st_video"
  imagePreview="yes"
  noBreak="no"
  upload="no">
  <FILTER>
    <HIDE type="all"/>
    <ALLOW type="picture"/>
  </FILTER>
  <LANGINFOS>
   <LANGINFO lang="*" label="Video" description="Insert a video"/>
  </LANGINFOS>
   <PROJECTS>
     <LOCAL name=".">
       <SOURCES>
         <FOLDER name="movingimage24" store="mediastore"/>
       </SOURCES>
     </LOCAL>
   </PROJECTS>
</FS_REFERENCE>

4.2.3. Width and height of the player

The width and height of the player can be modified by entering specific values in these input components.

Buttons

The four buttons (FS_BUTTON) are used to integrate the VideoManager via the AppCenter. No changes are necessary. These buttons are described in Chapter Using the VideoManagement in FirstSpirit.

4.3. HTML output channel

The section template provides the code necessary for inserting a video into a page. Also, the title of the video is used as a headline. If additional video metadata (length of the video, tags, etc.) is to be displayed on the page, this can be achieved by the same mechanisms. The HTML section of the template can be found in appendix HTML channel of the Video streaming section template.

4.4. Remote media support

In order to save the proxy objects for pieces of media not in the local but in a remote project, several changes are to be done.

Within the remote media project:

  • Adapt the metadata template as described in appendix Expanding the metadata template
  • Create a folder in the media store. The reference name of this folder must match Media folder in the configuration
  • Add the VideoManagement project component

Within the local project where the remote pieces of media for the VideoManagement are used:

  • Set the favoured remote project within the project settings
  • Extend the form. The component holding the reference name st_dropTarget needs an additional parameter called remoteProject. This parameter specifies the symbolic name of the remote project that is used. The following configuration example may be used provided that the symbolic name of the remote project is mithras:
<FS_BUTTON
  name="st_dropTarget"
  icon="media:droptargeticon"
  noBreak="no"
  onDrop="class:VideoManagementHandleDropExecutable"
  style="link">

    <DROPTYPES>
        <MIME type="application/fs_video" classname="de.espirit.common.util.Pair" />
    </DROPTYPES>
    <LANGINFOS>
        <LANGINFO lang="*" label="" />
    </LANGINFOS>
    <PARAMS>
        <PARAM name="target">#field.st_video</PARAM>
        <PARAM name="remoteProject">mithras</PARAM>
    </PARAMS>
</FS_BUTTON>

When the adaptions are done, the dragged and dropped media items are created within the remote project and not within the current project. The metadata synchronization script may be used as usual.

5. Using the VideoManagement in FirstSpirit

The VideoManagement functions are integrated into FirstSpirit using the AppCenter. The VideoManager opens in a new tab after the Open MI24 button in the new section has been clicked.

Page in an AppCenter tab
Figure 6. Page in an AppCenter tab


Five different functions of the VideoManagement application can be directly controlled using the various buttons. Furthermore, all VideoManager functions can be accessed using the web interface.

5.1. Thumbnail resolution

For thumbnails, the highest available resolution provided by MovingImage24 (512 x 288 pixel) is used. Other resolutions can be created with the default FirstSpirit resolution. Hints to do this are provided in the FirstSpirit Documentation for administrators.

5.2. Adding a video

A video can be added to a page in one of two ways.

If a video is to be used that has already been referenced elsewhere in the project it can be selected using the folder button.