Hey, how can we help?

browse

Introduction

This document discusses the content ingestion workflow for TVBits.  Content ingestion into Wurl’s platform uses syndication feeds based on the MRSS specification, which includes rich media metadata along with media file assets.

While a feed may contain one or more types of content, this document will focus purely on content that will become TVBits.  For other content types, see Wurl MRSS Support.

All videos provided in the feed must conform to the Mezzanine Specification. Please note, Wurl cannot accept any kind of authorization token on the MRSS feed. 

Wurl MRSS Specification

The following section describes elements highlighted from the MRSS specification used for Wurl content ingestion.

Namespace Declaration

<rss version="2.0" xmlns:wurl="http://api.wurl.com/wurlrss/1.0">

Channel

<channel>

Required.  The single channel element contains information about the channel feed metadata and its contents.


Elements in <channel> section of your syndication feed:

Image

<image>
  <url>http://origin_domain_here/240X240_logo.png</url>
  <title>New Releases</title>
  <link>http://origin_domain_here/vod</link>
</image>

Link

<link>http://origin_domain_here/vod</link>

Required. URL of your website or app. (Required for feed validation, but not used by Wurl).

PubDate

<pubDate>Thu, 10 Sep 2018 12:34:12 -0500</pubDate>

Required. Date and time of last feed update in RFC-822 date-time format.

Key

<media:category scheme="urn:wurl:channel:key">NFL</media:category>
<media:category scheme="urn:wurl:channel:key">NFC</media:category>

Optional. A reference tag by which to group Bits into a dynamic channel. Length: 50 characters or less. Usage is for specific embellishment of the Bits, rather than generic categorization. For example: Enter the value of “NFL” instead of football. The value(s) provided at this level will be propagated to all the item nodes. If you wish to override these "key" values for a particular item node, just add the tags to that node.

Slug

<media:category scheme="urn:wurl:channel:slug">publisher_channel_slug</media:category>

Optional. A reference tag by which to group Bits into a FAST channel. Length: 50 characters or less. Usage is for specific association of the Bits to a FAST channel, rather than generic categorization. The value provided at this level will be propagated to all the item nodes. If you wish to override this “slug" value for a particular item node, just add the same element to that node with a different channel slug value.

Item

Your syndication feed should contain multiple <item> groups, one for each video. These are the elements in <item> section of feed:

Title

<title>A Title</title>
<!-- or -->
<media:title>A Title</media:title>

Required. Title of the video. Recommended length: 50 characters or less.

Description

<description>A Description</description>
<!-- or -->
<media:description>A Description</media:description>

Required. Brief description of the video. Recommended length: 200 characters or less.

Short Description

<media:category scheme="urn:wurl:description_110">TVBits version of larger video</media:category>

Optional. The character limit is 110 or less.

PubDate

<pubDate>Thu, 10 Sep 2018 12:34:12 -0500</pubDate>

Required. The video’s release date and time in RFC-822 date-time format.

Thumbnail

<media:thumbnail height="720"url="http://origin_domain_here/thumbnails/123.jpg" width="1280"/>

Required. URL of a thumbnail image to be associated with your video. The aspect ratio should be 16:9 and format .jpg, .png, or .svg.

Content

<media:content url="http://origin_domain_here/videos/123.mp4" duration="5400"/>

Required. The URL of a high-quality encoding of your MPEG4 video asset. Please see the Wurl Mezzanine Asset Spec for more info.

Keywords

<media:keywords>humor, sports, football</media:keywords>

Required. Highly relevant keywords describing the video. Recommended limit of 10 keywords or phrases. The keywords and phrases should be comma-delimited.

GUID

<guid isPermaLink="false">ABCDE12345</guid>

Required. A string that uniquely identifies the item. Non-URL guids are preferred but URLs are accepted but can not be signed URLs. 

External ID

<media:category scheme="urn:wurl:external:id">123456-1</media:category>

Optional. An external video ID used to identify the video in a CMS, used as a CAID for ad configuration and also another search method for assets and TVBits in the scheduler. 

Episode External ID

<media:category scheme="urn:wurl:episode_external:id">789-2</media:category>

Optional. An external id used to identify the target Wurl episode.

Genres

<media:category scheme="urn:wurl:genre">Cooking</media:category>

Optional. Assigns a genre. Video-service-specific genres can be added in this format:

<media:category scheme="urn:roku:genre">Action</media:category>
<media:category scheme="urn:roku:genre">Comedy</media:category>
<media:category scheme="urn:samsung:genre">Drama</media:category>
<media:category scheme="urn:samsung:genre">Movies</media:category>
<media:category scheme="urn:nielsen:genre">Devotional</media:category>
<media:category scheme="urn:nielsen:genre">Documentary, General</media:category>

Rating

<media:rating scheme="urn:mpaa">pg-13</media:rating>
<media:rating scheme="urn:v-chip">tv-y7-fv</media:rating>

Optional. This allows content ratings to be declared. See more info on Wurl MRSS Tags

Wurl Content Type

<media:category scheme="urn:wurl:content_type">shortFormVideo</media:category>

Optional. If you are sending neither a movie nor an episode you can specify if the content should be a shortFormVideo.

Wurl Internal Title

<media:category scheme="urn:wurl:internal_title">String Value</media:category>

Optional. Title for internal reference.

Wurl Description 110

<media:category scheme="urn:wurl:description_110">Short Description up to 110 character</media:category>

Optional. A short description field up to 110 characters.

Wurl Tag

<media:category scheme="urn:wurl:tags">promo</media:category>
<!-- or -->
<media:category scheme="urn:wurl:tags">ad</media:category>
<!-- or -->
<media:category scheme="urn:wurl:tags">bits</media:category>

Optional. This allows you to tag a video as being a promotional video, ad slate, or Bits.

Key

<media:category scheme="urn:wurl:channel:key">NFL</media:category>
<media:category scheme="urn:wurl:channel:key">NFC</media:category>

Optional. A reference tag by which to group and/or search episodes. Length: 50 characters or less. Usage is for specific embellishment of the Bits, rather than generic categorization. For example: Enter the value of “NFL” instead of football.  Overrides the root level Key.

Region Restrictions

<media:restriction relationship=”allow” type=”country”>us au</media:restriction>
<!-- or -->
<media:restriction relationship=”deny”>all</media:restriction>

Optional. Currently, only applicable to “Bits”.  This allows you to place restrictions based on country code on media sharing.  Values are a list of ISO 3166-1 alpha-2 country codes separated by a space or the keyword “all”.

For “relationship”, you can specify either to “allow” or “deny”.

For “type”, Wurl will only enforce a type of “country”.

For more information see https://www.rssboard.org/media-rss#media-restriction

Bits Restrictions

<wurl:restrictions>
   <wurl:segments relationship="allow">
       <wurl:segment>all</wurl:segment>
   </wurl:segments>
<!-- or -->
   <wurl:segments relationship="allow">
       <wurl:segment>00:00:00.0-00:01:00.0</wurl:segment>
   </wurl:segments>
<!-- or -->
   <wurl:segments relationship="deny">
       <wurl:segment>00:01:00.0-00:01:30.0</wurl:segment>
       <wurl:segment>00:20:00.0-00:30:00.0</wurl:segment>
   </wurl:segments>
</wurl:restrictions>

Optional. This allows you to place restrictions on whether a video asset can be used to create Bits or not.  Values are start/end timestamp(s) within each segment element.  Additionally, can utilize the keyword “all”.

For “relationship”, you can specify either to “allow” or “deny”.

  • To prevent an asset from being utilized to create Bits, designate a relationship of “deny” and a value of “all” within the segment element.  

  • Note: By default, any asset without this restriction element will be considered as relationship “allow”, segment value “all”.  This restriction element does not apply to assets with <media:category scheme=”urn:wurl:tags”> with “bits” value.

License Availability Windows

<dcterms:valid>start=02 Dec 2021;end=30 Jun 2022; scheme=W3C-DTF</</dcterms:valid>

Optional. Start and end dates indicate the time period the video is available for distribution. Multiple entries of this tag can be used to specify multiple valid windows. See example below

TVBits MRSS Examples

Asset pre-created as a Bit w/ Channel key

This example shows an ingested asset already prepared as Bit by the Content Company.  The Bit is linked to the channel by noting the channel’s ID (i.e. slug) within the media:category element of scheme type: urn:wurl:channel:slug. Additionally, this Bit can be distributed in any country.

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/"
                 xmlns:atom="http://www.w3.org/2005/Atom"
                 xmlns:wurl="http://api.wurl.com/wurlrss/1.0">
 <channel>
   <atom:link href="http://origin_domain_here/rss/my-series.rss" rel="self"  type="application/rss+xml"/>
   <title>MySite: Sports Channel</title>
   <description>Latest sports videos from origin_domain_here</description>
   <link>http://origin_domain_here</link>
   <image>
     <url>http://origin_domain_here/thumbnails/series-1.png</url>
     <title>MySite: Sports Channel</title>
     <link>http://origin_domain_here</link>
   </image>
   <pubDate>Mon, 18 May 2023 18:56:21 +0000</pubDate>
   <item>
     <guid>http://origin_domain_here/videos/456.mp4</guid>
     <title>Sports Video ABC</title>
     <description>A TVBits of football</description>
     <pubDate>Mon, 18 May 2023 18:56:21 +0000</pubDate>
     <media:keywords>football, sports, rough, bloopers</media:keywords>
      <media:category scheme="urn:wurl:channel:slug">publisher_nfl_1</media:category>
      <media:category scheme="urn:wurl:channel:key">NFL</media:category>
      <media:category scheme="urn:wurl:tags">bits</media:category>
     <!-- duration in seconds -->
     <media:content url="http://origin_domain_here/videos/456.mp4" type="video/mp4"
       medium="video" duration="45" lang="en" fileSize="12216320" bitrate="128" 
       framerate="25" samplingrate="44.1" channels="2" height="200" width="300"/>
     <media:keywords>sports</media:keywords>
     <media:thumbnail url="http://origin_domain_here/thumbnail/video-456.png"
       width="320" height="180"/>
     <media:category>sports</media:category>
     <media:category scheme="urn:wurl:external:id">123456</media:category>
     <media:category scheme="urn:roku:genre">Sports</media:category>
     <media:category scheme="urn:samsung:genre">Sports</media:category>
     <media:rating scheme="urn:mpaa">pg</media:rating>
      <media:restriction relationship=”allow”  type=”country”>all</media:restriction>
   </item>
 </channel>
</rss>

 

Asset not allowed for Bits

This example highlights an asset ingested for FAST delivery, but not allowed for Bits usage.

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/"
                 xmlns:atom="http://www.w3.org/2005/Atom"
                 xmlns:wurl="http://api.wurl.com/wurlrss/1.0">
 <channel>
   <atom:link href="http://origin_domain_here/rss/my-series4.rss" rel="self" type="application/rss+xml"/>
   <title>MySite: Nature Channel</title>
   <description>All things Mother Nature</description>
   <link>http://origin_domain_here/nature</link>
   <image>
     <url>http://origin_domain_here/thumbnails/series-4.png</url>
     <title>MySite: Nature Channel</title>
     <link>http://origin_domain_here/nature</link>
   </image>
   <pubDate>Tues, 24 Jun 2023 18:56:21 +0000</pubDate>
   <item>
     <title>The Beginnings of Life</title>
     <link>http://origin_domain_here/series_id=789</link>
     <description>Exploration into the beginnings of life</description>
     <wurl:episode>
       <wurl:officialTitle><![CDATA[The Beginnings of Life]]></wurl:officialTitle>
       <wurl:seasonNumber>1</wurl:seasonNumber>
       <wurl:episodeNumber>1</wurl:episodeNumber>
     </wurl:episode>
     <media:content url="http://origin_domain_here/series_id=789" duration="5400"/>
     <media:thumbnail height="180" url="http://origin_domain_here/789.jpg" width="320"/>
     <media:category>Nature</media:category>
     <media:category scheme="urn:wurl:genre">Nature</media:category>
     <media:rating scheme="urn:mpaa">g</media:rating>
     <media:category scheme="urn:wurl:tms:series:id">WL789</media:category>
     <wurl:closedCaptions type="SCC" lang="en-us" href="http://wurl.com/en-us.scc"/>
     <guid isPermaLink="false">WL789</guid>
      <wurl:restrictions>
        <wurl:segments relationship="deny">
          <wurl:segment>all</wurl:segment>
        </wurl:segments>
      </wurl:restrictions>
   </item>
 </channel>
</rss>

Asset allowed for Bits w/ restrictions on sections content and distribution window

This example highlights an asset available for Bits creation, with time-ranges restricted from being included in any created Bits.  Additionally, restrict Bits distribution within a certain date range.

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/"
                 xmlns:atom="http://www.w3.org/2005/Atom"
                 xmlns:wurl="http://api.wurl.com/wurlrss/1.0">
 <channel>
   <atom:link href="http://origin_domain_here/rss/my-series.rss" rel="self" type="application/rss+xml"/>
   <title>MySite: Fantasy Channel</title>
   <description>Dragons, Wizards, Kings, and other fantasy realms</description>
   <link>http://origin_domain_here</link>
   <image>
     <url>http://origin_domain_here/thumbnails/series-2.png</url>
     <title>MySite: Fantasy Channel</title>
     <link>http://origin_domain_here</link>
   </image>
   <pubDate>Mon, 18 Dec 2023 18:56:21 +0000</pubDate>
   <item>
     <title>Game of Throws - Winter Isn’t Coming</title>
     <link>http://www.sbo.tv?series_id=123</link>
     <description>TV adaptation of the popular book series</description>
     <wurl:episode>
       <wurl:officialTitle><![CDATA[Winter Isn’t Coming]]> </wurl:officialTitle>
       <wurl:seasonNumber>1</wurl:seasonNumber>
       <wurl:episodeNumber>1</wurl:episodeNumber>
       <wurl:firstAired>Mon, 18 Dec 2023 18:00:00 -0000</wurl:firstAired>
     </wurl:episode>
       <media:category scheme="urn:wurl:channel:slug">mysite_fantasy_1</media:category>
     <media:content url="http://www.sbo.tv?series_id=123" duration="5400"/>
     <media:thumbnail height="180"  url="http://www.sbo.tv/123.jpg" width="320"/>
      <dcterms:valid>start=Tue, 02 Dec 2023 00:00:00 -0600>
        end=Tue, 30 Jun 2024 00:00:00 -0500;  scheme=W3C-DTF</dcterms:valid>
     <media:category>Fantasy</media:category>
     <media:category scheme="urn:wurl:genre">Action</media:category>
     <media:rating scheme="urn:v-chip">tv-y7-fv</media:rating>
     <media:category scheme="urn:wurl:tms:series:id">SH1234</media:category>
     <media:category  scheme="urn:wurl:tms:episode:id">EP1234</media:category>
     <media:category  scheme="urn:wurl:ads:content:id">ABC123</media:category>
     <wurl:closedCaptions type="SCC" lang="en-us" href="http://wurl.com/en-us.scc"/>
      <guid isPermaLink="true">http://www.sbo.tv?series_id=123</guid>
      <wurl:restrictions>
        <wurl:segments relationship="deny">
          <wurl:segment>00:01:00.0-00:31:30.830</wurl:segment>
          <wurl:segment>01:12:00.0-01:45:01.431</wurl:segment>
        </wurl:segments>
      </wurl:restrictions>
   </item>
 </channel>
</rss>

Media File Specification

For the latest specifications, please visit our live Mezzanine Specification page.

 

Previous
Next

Was this article helpful?

0 out of 0 found this helpful