Defining a Brightcove Video Content Type

The Brightcove video content type must at least have the following:

  • A media child element belonging to the namespace http://xmlns.escenic.com/2013/media. This element must have an enabled attribute set to true.

  • A parameter called com.escenic.article.staging set to false, which specifies that content item staging must be disabled for this content type. If content item staging is disabled generally at your installation or for the whole publication, then you can omit this parameter.

  • A basic video field with:

    • mime-type set to application/json

    • a video sub-element belonging to the namespace http://xmlns.escenic.com/2010/video with an enabled attribute set to true.

  • A decorator called bcovVideoArticleDecorator

  • An interface-hints element called list-style set to video to show proper listing at CUE.

  • A basic external media metadata field with:

    • mime-type set to application/json

    • a media sub-element belonging to the namespace http://xmlns.escenic.com/2013/media.

    The external-media-metadata field should be a hidden field. It contains the actual Brightcove video JSON data. You can retrieve any information you need about the video from this field. You can, for example, retrieve tags that have been added to the video in Brightcove.

Here is an example Brightcove video content type with the important parts highlighted:

<content-type name="brightcove-video">
  <media:external-video enabled="true"/>
  <parameter name="com.escenic.article.staging" value="false"/>
  <ui:icon>graphic</ui:icon>
  <ui:label>Brightcove Video</ui:label>
  <ui:title-field>title</ui:title-field>
  <ui:decorator name="bcovVideoArticleDecorator"/>
  <ui:list-style>video</ui:list-style>
  <panel name="main">
    <field name="title" type="basic" mime-type="text/plain"/>
    <field name="video" type="basic" mime-type="application/json">
      <video xmlns="http://xmlns.escenic.com/2010/video" enabled="true"/>
    </field>
    <field name="external-media-metadata" type="basic" mime-type="application/json">
      <media:external-media/>
      <ui:label>External media JSON</ui:label>
      <ui:hidden/>
    </field>
  </panel>
</content-type>