Skip to end of metadata
Go to start of metadata

Introduction

Opera TV Snap is an industry-first, end-to-end solution that allows content publishers to create and submit a Smart TV app to the Opera TV Store quickly and easily, for free. See the Opera TV Snap page for more details.

Before starting to prepare your MRSS feed for Opera TV Snap, it might be good for you to familiarize with the following specifications and resources:

Opera MRSS

TV Snap 3.0 Template uses Opera Media RSS Specification (OMRSS).

  • Feed must point to the MRSS compliant data.
  • MRSS may contain more tags than TV Snap Template supports, but they will be ignored.
  • We are still trying to provide backward compatibility with RSS, but OMRSS format is recommended and contains many improvements. Feed without media namespace will be parsed, but support for this format might be removed in the future.

The Basics

Example feed: Opera MRSS

Required tags are:

  • <rss> as a top level tag.
  • One <channel> as a child of <rss>.
  • <channel> must contain <title> and at least one <item>.
  • Each <item> must be a child of <channel>.

Optional tags:

  • <opera:metadata> as a child of <channel>. This custom extension to the MRSS spec allows a more flxible definition of content structure. See below for more details.

Additional requirements:

  • 16:9 thumbnail ratio is a must. 256 × 144 px is minimal and recommended for the best user experience. If the image is greater, it will be scaled down to 256 px.

Feed structure:

<rss xmlns:media="http://search.yahoo.com/mrss/" xmlns:opera="http://apps.tvstore.opera.com/broadcastspec/" version="2.0">
	<channel>
		<title>Channel Title</title>
		<description>Description of channel content</description>
		<opera:metadata>
			<!-- categoryData items - see next section -->
		</opera:metadata>
		<item><!-- See example in next section --></item>
		<item><!-- … --></item>
		<!-- More items -->
	</channel>
</rss>

Opera metadata

<opera:metadata> is a custom extension to MRSS that has been defined to overcome some limitations of the original MRSS spec. Inside <opera:metadata> you can use <opera:categoryData> to define categories and collections (i.e. categories nested inside other categories).

Required attributes of categoryData:

  • path argument defines category nesting. For each nested category you should define exactly one categoryData with correct path.
  • label is name of the category as it will be presented to the user

Optional attributes of categoryData:

  • description is description of category.
  • order argument is optional. If it’s not passed then order will be based on MRSS feed order.
  • thumbnailthumbnailwidth & thumbnailheight are used to provide a custom thumbnail for the category. If not provided, it will be randomly generated based on the thumbnails of the videos inside the category.

Important: If you use <opera:metadata> to define categories then in <media:category> you should use the string you used for the path attribute (in <opera:metadata>), as the user visible category name will be taken from value of the label attribute of <opera:categoryData> 

Example:

 <opera:metadata>
	<!-- 1st category level. -->
	<opera:categoryData order="1" path="videos" label="Clips" description="Section with cool clips."/>
	<!-- 2nd category level. -->
	<opera:categoryData order="1" path="videos/fail" label="Fail Compilations" description="Fail compilations" thumbnail="http://domain.com/category55image.jpg" thumbwidth="256" thumbheight="144" />
	<opera:categoryData order="2" path="videos/cats" label="Cute Cats" description="All the cute cats in one place" thumbnail="http://domain.com/category55image.jpg" thumbwidth="256" thumbheight="144" />
	<!-- 3rd category level. -->
	<opera:categoryData order="1" path="videos/cats/black" label="Black Cats" description="Only black cats" />
	<opera:categoryData order="2" path="videos/cats/white" label="White Cats" description="Only white cats" thumbnail="http://domain.com/category55image.jpg" thumbwidth="256" thumbheight="144" />
</opera:metadata>

The Item element 

Required tags are:

  • <media:title>
  • <media:content> with correct url & type.
    • You might also use <media:group> to group multiple media elements (like video in different formats)
    • Content might also contain duration & bitrate attributes.
    • Duration should be set as a number of seconds.
    • For widest device support and best user experience we recommend making sure that your minimum bitrate doesn't exceed 4000 kbit/s. Higher bitrate can be supported using adative bitrate streaming formats (e.g. HLS)
  • <media:thumbnail> with correct url pointing to an image.
    • 256 × 144 px format is recommended 
    • If there is more than one thumbnail then best will be selected based on width attribute (if present).
  • At least one <media:category> is needed but item can belong to many categories. It should contain path to the actual category defined in <opera:metadata> tag if one is present or just a simple name of the category.

Optional tags:

  • <pubDate> publcation date of the video. It will be used in different ways
    • it will be visible to the end user in the description of the video
    • it will be used in the autogenerated "latest videos" category where videos are sorter by publication date (if not set then order will be set based on video indexing date)
    • it will be used when autogenerating categories based on publication date (for feeds without category information
  • <media:description> if exist it will be displayed as description for the video.
  • <media:keywords> for content keywords (used in search)
  • <media:subTitle> for specifying the subtitles.
  • <opera:orderInCategory> is used to set order of item in category. If item is in many categories then it can have order set to each category separately. It has two required attributes:
    • path with value the same as defined in category
    • value as a number (ascending)

Item structure:

<item>
	<pubDate>Mon, 21 Mar 2016 11:00:01 GMT</pubDate>
	<media:title>
		Sam Smoothy Follows His Fathers
		Footsteps In The Andes | Lost…
	</title>
	<media:description>
		Many years ago, Sam Smoothy’s father
		climbed in the Andes mountains…
	</description>
	<media:category>Skiing</category>
	<media:category>Winter/Events</category>
	<opera:orderInCategory path="Winter/Events" value="12"/>
	<media:content url="video.mp4" type="video/mp4" bitrate="2200" duration="772"/>
	<media:thumbnail url="thumb.jpg" width="256" height="144"/>
</item>

Visualization

Below is example application look with defined categories. Latest and Popular Videos categories are generated automatically. Background and thumbnail of this app (right top corner) is provided through the submission panel and is not a part of Opera MRSS format.

Main page view
Main page view

 

Example of TV Snap player.

View with collections
View with collections