XML Manifest for Ingestion via MRSS

This topic explains the structure of the XML used by MRSS ingestion to upload videos to Video Cloud.

Manifest tags

The ingest manifest is used to add video metadata to a video.

Notes:

  • All special characters must be escaped.
  • Labels and Tags must be separated by a comma.

You can find additional detail on the metadata fields in the CMS API Video Fields Reference Note that the overall manifest should be constructed as an RSS feed, with the Video Cloud metadata includes as channel items. In other words, the overall manifest should be structured like this:

<rss xmlns:media="https://search.yahoo.com/mrss/" 
  xmlns:dcterms="https://purl.org/dc/terms/" 
  xmlns:fh="https://purl.org/syndication/history/1.0" 
  xmlns:brightcove="https://www.brightcove.com/mrss/" version="2.0">
  <channel>
    <item>
      <brightcove>

        <!-- items included here are constructed using the tags detailed below -->

      <brightcove>
    </item>
  </channel>
</rss>

Tag reference

<item>
The item tag is a wrapper for each media item, and contains the brightcove tag, which in turns contains all the Brightcove metadata tags.
<brightcove>
The brightcove tag is a wrapper for all the Brightcove metadata tags below.
<profile> id/name </profile>
The name or id of the ingest profile to use. Applicable only to videos. If omitted, the default profile for the account will be used.
<name></name>
The title for the video.
<master url="string" useMaster="boolean"/>
For a retranscoding request. You can either indicate that a stored master should be used (useMaster="true"), or provide a URL for a master that was not stored. If you include both url and useMaster, the request will fail.

Note:

  • For ingestion via MRSS, the url must be publicly accessible.
  • For ingestion via Aspera, the url must be the path to the file on the Aspera server where you uploaded it.
<description long="string" short="string"/>
A short description for the video.
<images> array of <image>
Contains a collection of images associated with the video - see the following tag.
<image url="string/required"
  language="string"
  variant="string/required"
  label="string"
  height="number"
  width="number"/>
Details for an image (see Dynamic Ingest Fields Reference for more detail). Briefly:
  • language is a two-letter language code from the Language Subtag Registry.
  • variant is poster | thumbnail | portrait | square | wide | ultra-wide.
  • height and width are pixel values.
<texttracks> array of <texttrack>
Contains a collection of text-tracks associated with the video - see the following tag.
<texttrack 
  url="string/required" 
  srclang="string/required" 
  kind="string" 
  label="string" 
  default="boolean"/>
See the Dynamic Ingest Fields Reference for details. Briefly:
  • srclang - ISO 639 2-letter (alpha-2) language code for the text tracks
  • kind - captions | subtitles | chapters | metadata
  • label - user-readable label
  • default - whether these text-tracks are the default for the video
<audiotracks> array of <audiotrack>
Contains a collection of audio tracks associated with the video - see the following tag.
<audiotrack 
  url="string" 
  language="string" 
  variant="string"/>
See the Dynamic Ingest Fields Reference for details. Briefly:
<customField name="string/required">value</customField>
The value will be assigned to the custom field with the given name for this video.
<labels> separated by comma </labels>
See Working with Labels.
<tags> separated by comma </tags>
A list of tags. Tags can be used to select videos for smart playlists, among other things.
<referenceId></referenceId>
A unique reference id for the video. Reference ids can be used to associate the video with an entity in your systems, and you can also publish videos using the reference id rather than the video id.
<videoId></videoId>
The video id. Do not include this if you ingesting a new video. To be used only for replacing or retranscoding or adding media assets to an existing video.
<schedule endsAt="" startsAt=""/>
For scheduling when a video becomes available for playback, and (optionally) when it becomes unavailable again. Times in ISO-8601 date format such as 2022-09-20T20:41:07.689Z or just 2022-09-20.
<link> value </link>
URL for a related link.

Sample manifest

<rss xmlns:media="https://search.yahoo.com/mrss/" 
    xmlns:dcterms="https://purl.org/dc/terms/" 
    xmlns:fh="https://purl.org/syndication/history/1.0" 
    xmlns:brightcove="https://www.brightcove.com/mrss/" 
    version="2.0">
    <channel>
      <item>
        <brightcove>
          <master url="countdown_10.mp4"/>
          <profile>multi-platform-standard-dynamic-with-mp4</profile>
          <name>Countdown 10</name>
          <status>ACTIVE</status>
          <description short="countdown" long="Countdown video #10" />
          <labels></labels>
          <tags>samples, countdown</tags>
          <referenceId>count_1</referenceId>
          <images>
            <image url="Countdown10.png" variant="thumbnail" language="es" label="thumbnail" height="480" width="640"/>
          </images>
          <texttracks>
            <texttrack url="WEBVTT-10.vtt" srclang="en-US" kind="captions" label="English"/>
          </texttracks>
      </brightcove>
    </item>
  </channel>
</rss>