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

Vewd Snap helps you create applications based on video streams fetched from the following options:  

1. Supported video platforms such as Zype, JW Player, Brightcove, Ooyala, Kaltura etc. If you have an account at one of these platforms then we recommend using this option. For more information on how to generate a feed for each supported OVP check these articles

2. Live streams provided directly to the TV Snap. You need to have urls to live streams.

3. MRSS feeds. You need to have urls to your MRSS feeds.

All the options above let you:

This article explains the Snap app structure in detail. In addition, it describes how to tailor your MRSS feed to fit your needs. Therefore, it focuses on the 3rd option (MRSS feed), which may require a bit of effort to create or update your MRSS feeds, however, it gives you the most control of what the resulting app will look like.

The first option (using a supported video platform) is fairly straightforward to use - the content is fetched from your account through the mentioned video platforms and presented in the same Snap app structure. The second option allows you to immediately playback your live stream as soon as the app is launched. These options are not covered in this article.

In order to start creating the app with any of these options, use the Submission panel. Please see a video tutorial presenting how to submit your MRSS feeds as soon you have them available:

Let's look more into preparing your MRSS feed and how it is presented in the Snap application now.

Vewd Snap app content structure

Vewd Snap’s content structure is based around four elements: Sections, Categories, Collections and Items. The image below shows the placement of these elements in the application UI.

A Section is displayed on the left side menu of the application. Some sections can be customized (custom sections) while others are part of the application and cannot be changed (automatically generated sections).

Each custom section is associated with an MRSS feed. Custom sections are defined during the application submission in the ‘TV Snap’ tab (field ‘I have many feeds I want to include in this app’ must be selected). There can be a maximum of five custom sections, including a special "livestream" section that can contain one or more live feeds. The name of each section as well as its icon is provided in the submission portal.

Depending on the number of MRSS feeds submitted, the left side menu of the application will look different. Single-feed apps contain only the Home section and do not use custom sections. Multi-feed apps use both Home and custom sections.

The automatically generated sections are Settings and Search as well as the Home section mentioned above. These sections cannot be changed.

A Category is a single row of videos and/or collections in the application. In the MRSS feed, it is represented by the <media:category> tag associated with videos. Please note the following In order to optimize user experience, we only show a Category (row) if it contains at least 3 videos. If less than 3 videos are associated with a single category, then the Category (row) will not appear in the final app, and the corresponding videos will only be visible in other categories that meet the criteria (if any) or in the general autogenerated categories like "Latest Videos" (see below). If there is only one category in the feed, its name is not displayed in the application UI.

Some categories are generated by the application and cannot be changed (automatically generated categories). Automatically generated categories are:

It is also possible to generate categories based on the <media:keywords> tag as opposed to the <media:category> tag. See the description of the media:keywords tag further in this article if you would like to use it.

If the feed doesn’t contain categories and keywords were not used to generate categories Snap will then generate categories automatically by aggregating video clips based on their publication dates.

A Collection is a single element in the application’s category row. It may look like a single video, but it represents the collection of multiple videos and categories located inside. In the MRSS feed, it is represented by the <vmrss:categoryData> tag.

Collections can be nested. Nesting of collection is defined in the path attribute of <vmrss:categoryData> tag, with each level of nesting separated with a slash. For example, ‘Winter/Events’ path for ‘Events’ collection defines ‘Events’ collection as a child of ‘Winter’ collection. There are no limits to the nesting of collections. In theory, an infinite number of levels can be used, but it is best to limit your levels of nesting to two or three. More levels can make navigation too complicated for the users. Collections should not be used if the selection of the content is not big. For example, if, in total, there are only 20 video clips or less available in the feed it is better to have them available in the section without breaking down to collections.

An Item is a single video. It is represented by the <item> tag in the MRSS feed. Items can belong to collections, categories and sections. Single items can belong to multiple categories and collections (for details see the MRSS Item structure below).

Video thumbnail for the video can be in either landscape or portrait orientation. To use portrait orientation MRSS needs to include a thumbnail size; otherwise, landscape orientation will be assumed and the thumbnail will be trimmed. See the next chapter for details.

When preparing content, UI and navigation issues should be considered. For example, using numerous items or collections in one structural element (collection or category) will make the application difficult to navigate. It is recommended not to use more than 10 elements (items, collections, categories) in a single higher-level element (collection, category or section). This means that it’s better to create more categories than place many collections into a single category. Also, in the case of many categories, it’s better to divide them into separate sections.

The application can use multiple languages and the structure described above can be localized by language. In the submission portal, submitter can define the language for the application. If there is more than one language, the whole content structure should be prepared and submitted as per each language. This means submitting a new MRSS feed (or multiple feeds when the application uses multiple custom sections) for each language.

Snap MRSS feed

TV Snap 3.0 Template uses Snap Media RSS Specification (SMRSS).

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

The Basics

Example MRSS feed that can be used as a template can be found here: Sample Snap MRSS feed.

Required tags are:

Optional tags:

Feed structure:

<rss xmlns:media="" xmlns:vmrss="" 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 -->

Display special characters or markup

Whenever characters such as <, >, &, ", ' or a markup needs to be displayed the CDATA section or &lt; &gt; &amp; &quot; &apos; should be used. CDATA will disable markup recognition. Please refer to and for more information. Example:


<rss xmlns:media="" xmlns:vmrss="" version="2.0">
        <title>News &amp; Weather</title>
        <description><![CDATA[ Local "News & Weather" channel. ]]></description>
        <item><!-- Example item here --></item>
        <!-- More items -->

The Metadata tag extension

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

Required attributes of categoryData:

Optional attributes of categoryData:

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


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

The Item tag

The following children of the <item> tag are required:

The following children of the <item> tag are optional:

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…
    <vmrss: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"/>

Feeds availability

Since our server are distributed, in general we require feeds to be accessible. It is important that your MRSS feeds are available worldwide without any restrictions to e.g. location, IP addresses, User Agents or other. If any restriction is set then TV Snap servers may not be able to access and present your content.

In case it is a must have to limit access to your feeds by white-listing IP addresses then please use the below list. Please note that we recommend to not apply any restriction if not really needed though.

The following IP addresses must be allowed to access MRSS feeds:

Feed re-indexing rate

Feeds are indexed by our system on submission. After that, we periodically check changes in the feed and update our index. The refresh rate is around 6 hours for now. This means that any change to your content availability (adding or removing videos or change of metadata) might take up to 6 hours to show up in the actual application.

In the case where feeds include URL that may expire (e.g. URL includes a token that needs to be refreshed periodically), then such URLs should remain valid within those 6 hours periods plus in addition few more hours longer to let this change be propagated on devices where the application is launched.

Best practices

The MRSS feeds structure (e.g. categories, collections, items structure, and nesting) and content can be changed after submission. We recommend updating the video content in feeds periodically and often (especially adding new content) as an incentive for end users to run the app regularly. Although, the content structure should not change that often. (e.g. categories, collections, items structure, and nesting).

If there is no new content for a certain period then the Today’s Pick category comes in handy, (it will automatically rotate the existing content) however, it will not replace fresh content.

It is best to test the changes before publishing. In order to test submitted content, use the Preview  function in the Submission portal.

Graphical assets

Some graphical assets used by an application are provided through Submission portal, whereas other ones are provided in the MRSS feed. The image below shows the graphic assets tab in the Submission portal.

Wherever graphic assets are provided in the MRSS feed, an absolute url to your image file must be used as a tag value or attribute. The image below shows the placement of selected graphic assets in the application UI.


The Logo of your application is presented in the top-left corner of the app. The Logo is provided through the submission portal and is not a part of the MRSS feed.


The background of an application is defined in the submission panel and it is not included in the MRSS feed. 

The background should be a horizontal JPG image with size matching 1280x720px. It should not contain text or logos because they will overlap with application content. We recommend using dark background images, which usually provide better contrast for images and video content. Submission panel provides an option (a checkbox) to darken the background by 50% as well.

Items and collections thumbnails

For items and collections image guidelines see the item example section above.


Below are some examples of the application UI.

Single-MRRS feed application

Main page view (Home section)

The example above uses a single MRSS feed. The content is divided into several categories. The categories TV Shows and Serials, Featured and Bela Lugosi are visible on the screenshot and the  collection The Return of Chandu is highlighted. The category TV Shows and Serials contains collections, whereas other categories contain single items.

Multi-MRRS feed application

Main page view (Home section)

The example above uses few MRSS feeds - one for each Lifestyle, Music, Movies and Kids sections. Type of apps is a category defined in one of the MRSS feed. Latest Videos and Today's picks categories are generated automatically by the Vewd Snap.  

Example of TV Snap player.

Collection view

The example above shows Vewd Snap collection with videos. The first video in the collection is being played.

Multi-MRRS feed application with a large amount of content

Below is the example of multi-MRSS application with a complex content structure. The application is also an example of good content structure practices.

Main page view (Programmes section)

The example above uses two MRSS feeds (one for each News and Programmes custom section) and a Live Stream section. The section Programmes is opened. Content is divided into several categories. The categories Magazine and Discussion are visible in the screenshot and the collection Counting the Cost is highlighted. Each category contains collections.

The category Magazine contains only five collections, and, therefore, it’s easy to navigate.

The collection Counting the Cost is opened. It contains ten videos which also makes it easy to navigate.