Opera TV Snap Data Format Requirements

Table of Contents


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.


Specifications you should be aware of before preparing a video feed for the TV Snap Template:

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.

Feed example

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:

  • <link rel="next"> with proper href should point to the next page of results.
  • <opera:metadata> as a child of <channel>
    • It is used as a wrapper to define nested categories.
    • You can indefinitely nest categories inside another one.

Example feed: Opera MRSS

Feed structure:

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

Opera metadata

Inside <opera:metadata> you can put <opera:categoryData> to define categories and collections (nested categories).

Important: If you use metadata to define categories then in <media:category> you should use path instead of real category name (it will be taken from categoryData’s label)

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 category

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. - background attribute replaces application’s background whenever user visits the category. This image should be in jpg format, 1280x720. - thumbnail, thumbnailwidth & thumbnailheight are used to display category thumbnail.


	<!-- 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" background="http://domain.com/category55image-background.jpg" 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" background="http://domain.com/category55image-background.jpg" 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" background="http://domain.com/category55image-background.jpg" thumbnail="http://domain.com/category55image.jpg" thumbwidth="256" thumbheight="144" />

Item example

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 use mp4 video type with bitrate up to 4000 kbit (see our Audio & Video Support).
  • <media:thumbnail> with correct url pointing to an image.
    • 256 × 144 px format is recommended (see Basics for more info)
    • 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> used to sort movies from newest to oldest
    • if not set then order will be set based on feed appearence
  • <media:description> if exist it will be displayed as description for the video.
  • <media:restriction> used to define country restrictions
  • <media:keywords> for movie keywords (used in search)
  • <media:credit> for move credits
  • <media:subTitle> providing subtitles in VTT format
  • <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)
  • Any other MRSS tag (see MRSS specification)

Item structure:

	<pubDate>Mon, 21 Mar 2016 11:00:01 GMT</pubDate>
		Sam Smoothy Follows His Fathers
		Footsteps In The Andes | Lost…
		Many years ago, Sam Smoothy’s father
		climbed in the Andes mountains…
	<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"/>


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