Introduction

RSS-TV is an extensible markup language (XML)-based navigation protocol for Internet Media services based on the RSS standard. The adoption of RSS-TV enables video device manufacturers to develop applications to seamlessly navigate premium Internet video services. Example video devices include set top boxes, portable video players, game consoles, broadband-connected digital video disc (DVD) players, digital video recorders (DVRs), portable video players and mobile phones. By implementing the RSS-TV protocol, these devices provide user access to a growing library of online media (video, audio, games) services.

 

RSS-TV is an extension of RSS and includes additional XML elements and attributes to enable broadband media service features such as:

Readers familiar with digital video broadcasting (DVB) can compare RSS-TV with the DVB Service Information standards developed in the 1990s for digital TV EPGs. The difference is that RSS-TV has been developed for two-way Internet Protocol (IP) networks rather than broadcasting networks. RSS-TV leverages the increasing availability of products that support RSS such as caching engines and RSS-enabled content management and publishing systems.

RSS-TV-compliant applications can be implemented using any language and operating system including AJAX/HTML, Flash, OpenTV, or C.  Similarly, service providers can use any web service technologies (Java, .NET, PHP) to build RSS-TV-compliant services.

Podcasting

RSS-compliant feeds that use enclosures for video/audio (podcasting) are fully compliant with RSS-TV. RSS-TV-compliant clients will display these feeds as a list of menu items and will play or download the media.

RSS-TV Namespace

RSS-TV uses the namespace 'tv'. For example, the RSS-TV XML element duration is identified by <tv:duration>. The official schema will be made available at http://www.rss-tv.org/rss/tv1.0.

Encoding

Similar to other XML-based standards, RSS-TV documents are assumed to be 8-Bit Unicode Transformation Format (UTF-8) encoded.

References to standards

RSS 2.0

http://blogs.law.harvard.edu/tech/rss

HTTP 1.1

http://www.w3.org/Protocol/rfc2616/rfc2616.txt

RSS-TV

http://www.rss-tv.org

ISO 8601

http://en.wikipedia.org/wiki/ISO_8601

ISO 639

http://en.wikipedia.org/wiki/ISO_639

RFC 822

http://asg.web.cmu.edu/rfc/rfc822.html

SAMI

http://en.wikipedia.org/wiki/SAMI

Revision history

0.9

April 2006

Beta release for review

1.0

July 2006

First official public release

1.1

September 2006

Support for (secure) download models and messaging

1.2

January 2007

Country availability, EPG, resuming media, and previews

1.3

March 2007

Media Zap, Style, Help

2.0

April 2007

Specification frozen.  All future changes shall be backwards compatible.  See below for change details.

2.1

November 2007

Fixed documentation issues. 

Added hidden image support for web site analytics. 

Added attribute ‘visibleitems’ to the <tv:widget> to hint the number of visible items. 

Added ‘tv:roprovider’ attribute to support proprietary rights object (license) acquisition protocols for download content.

Added <style> and <image> as optional input XML elements.  Clarified implementation of (server side) play lists. 

Explained the use of RSS element <guid> to signal currently playing and downloading media. 

Changed <tv:zap> default value to ‘false’, and introduced override on single item possible. 

Bandwidth signaling through private HTTP header for multi bitrate support. 

Support for advertising video through attribute <item tv:noskip>

2.2

January 2008

Added the <tv:autostart> element to enable the client device to immediately show a (pre)selected media.  This enables a traditional channel zapping interface.

Added the tv:preload attribute to <item> to inform the client the associated link (RSS-TV document) can be preloaded.

Added explicit remarks regarding HTTP caching directives and the implications for document caching.

2.3

April 2008

Removed the limitation that a response from the <tv:done> URI could only return a single item response rather than a full RSS-TV document.

Added default location for device information in HTTP cookie to simplify authentication and upgrade process.

RSS-TV services to implement redirection through HTTP redirect instead of RSS-TV single item response to simplify client status model.

Added ability to associate <tv:meta> data with channel element.

Added support for SAMI subtitling.

Added support for local device scripting services (network settings, firmware upgrades, device info, etc)

Added IP address input type

Added tv:value attribute for title

RSS-TV 2.0

RSS-TV 2.0 was established after field tests and numerous protocol reviews.  RSS-TV 2.0 is ready for commercial rollout of Internet video services to TV and other video capable devices.  Any future specifications will be fully backwards compatible with RSS-TV 2.0.

Changes

Summary of changes introduced with RSS-TV 2.0:


Sample RSS-TV Document

The following XML document is an example of a 'root' menu representing the top level of a hierarchical menu structure:

<?xml version="1.0"?>

<rss version="2.0" xmlns:tv="http://www.rss-tv.org/rss/tv1.0">

   <channel>

      <language>en-us</language>

      <title>Main Menu</title>

      <tv:help>http://www.test.com/menu/?id=help</tv:help>

      <item>

         <title>TV On Demand</title>

         <description>Watch TV from thousands of programs.</description>

         <link tv:type="rss">http://www.test.com/menu/?id=tvod</link>

      </item>

      <item>

         <title>Live TV</title>

         <description>Tune in to hundreds of live channels</description>

         <link tv:type="rss">http://www.test.com/menu/id=livetv</link>

      </item>

      <item>

         <title>Movie Store</title>

         <description>Starting at 1 Euro for 24 hours</description>

         <link tv:type="rss">http://www.test.com/vod/</link>

      </item>

      <item>

         <title>Local Weather</title>

         <description>Check out our 7 day weather forecast</description>

         <link>http://www.weather.com/iptv/</link>

      </item>

      <item>

         <title>Settings</title>

         <description>Change your PIN and network settings</description>

         <link tv:type="rss">http://www.test.com/menu/?id=setting</link>

      </item>

      <item>

         <title>Introduction video</title>

         <description>How to use this video service</description>

         <enclosure url="rtsp://www.test.com/v/intro.mp4" type="video/mpeg"/>

      </item>

   </channel>

</rss>

 

Most items in this sample RSS-TV document link to other RSS-TV documents, creating a hierarchical menu structure. The document also contains a node item linked to an HTML weather application.  Depending on the capabilities of the box, this item may be hidden from the user.

The document also includes an example node that links directly to a MPEG-4 video streaming media file using the RSS enclosure element.  All link types and RSS-TV extensions are described and specified in this document.


Menu Structure

A typical RSS-TV-compliant Internet video device will boot up, connect to the network, check for firmware upgrades, load the navigation client application, authenticate (optional), and load a predefined RSS-TV URI that contains the top level of the menu structure.

One of the important features of RSS-TV is its support for a hierarchical menu structure. This structure is achieved by linking one RSS XML document (parent) to other RSS XML documents (children) using <link tv:type="rss">.

The endpoints or 'leaves' of the hierarchical menu link to video, audio, Flash applications (through RSS enclosures), HTML applications, or special RSS-TV menu actions. The available item types are documented in the RSS-TV <item> Extensions section.

The following diagram shows a small sample hierarchical menu:

In one example implementation, the user can navigate the services by simply using the up, down, left, and right navigation keys.

The user navigates <up> and <down> to make selections, and <right>/<ok> to activate selected items. Navigating <left>/<cancel> cancels the current menu and returns the user to the previous menu.

During navigation, the user's thumb remains around the arrow control, except when entering alphanumeric information such as a user PIN or a movie search query.

RSS-TV does not impose any specific user interface or design.  The look and feel of the navigation client application can be completely customized and optimized for the client device platform, independently of the services. It is therefore possible to present the same RSS-TV items using a completely different navigation client application.  RSS-TV does allow service directives to instruct the navigation client application to apply certain widgets (text, image, mosaic) and styles.

Menu Levels

An RSS-TV-compliant client device maintains the notion of menu levels. Each menu is served on a particular level in the menu hierarchy, starting with level 0 at the root. This enables an RSS-TV application to jump to a previous menu level or to jump n steps backward in the hierarchy.

RSS-TV services that contain circular menu structures (one where a user enters an incorrect email address and password, for example) should ensure that menus are traversed correctly so that the 'back' function operates as expected.

For example, a user who attempts to enter a PIN code should be directed to the PIN entry menu through relative addressing (menu:-2) rather than hard-coded URIs.  More information can be found in the section RSS-TV <item> Extensions.

HTTP POST

The menu history may contain POST links resulting from an input item. The client shall automatically re-POST content entered by the user if a previous menu level is called.

Bypassing Menu History

By default, the client stores each menu TV URI in a menu history.  This enables the device to go back in history when the user presses a 'back' button or 'left' button on the remote control.

An input item may indicate that the associated RSS-TV URI should not be stored in the menu history. See the section on 'Capturing User Input' for more details.  This can be used for functionality such as capturing a PIN code, in which case the user should not return to the PIN entry screen when going 'back' from a subsequent menu page.  Example sequence:

Displaying Currently Playing and Downloading Media

When the client navigates through the menu structure, the menu item list may contain a media item that is currently playing or downloading.  In that case it is useful to show the user a specific icon (like a speaker icon for playing audio) or the state of the download process.  This is referred to as ‘active media’.

In order for the client to identify active media, the RSS-TV service must include the RSS <guid> element in the media <item> elements.  The client can use the RSS <guid> to match the currently active media with the media item in any media item list.

The <enclosure> URL can not be used to uniquely identify a media item because:

Play Lists

A menu may contain a number of media items with audio or video enclosures.  An RSS-TV compliant client may or may not automatically start the subsequent item in a list after an item has finished playing.  It is recommended that the client enables ‘zapping’ functionality using ‘next’ and ‘prev’ to allow the consumer to zap through the media items.  See the specification of <tv:zap> for more information.

Server Side Play Lists

Server Side Play Lists can be used for dynamically inserting advertising or dynamically creating play lists for online radio channels.  The RSS-TV service provides a URL which is called to return the ‘next’ item in the play-list.  This URL will be called by the client at the end of the current item using the <tv:done> extension of the <item> element.  See the specification of <tv:done> for more information.  See the specification of <item tv:noskip> for more information about implementing advertising models.

An example URL and HTTP response of such a play list web service:

http://www.last.tv/playlist/

 

<?xml version="1.0"?>

<item xmlns:tv="http://www.rss-tv.org/rss/tv1.0">

   <title>Umbrella</title>

   <tv:meta type="artist" display="Artist">Rihanna</tv:meta>

   <guid>8435987546</guid>

   <enclosure url="rtsp://www.cdn.com/v/?id=8435987546"/ >

   <tv:done>http://www.last.tv/playlist/</tv:done>

</item>

The web service may use session and cookie information to determine the next media item in the list and construct a personalized play list.

User, Device and Network Information

A TV service can be made more compelling if basic user and device information can be accessed by services automatically. This enables various features such as:

User Information

RSS-TV defines an HTTP cookie-based mechanism to set and access user information. Implementation of user information is not mandatory for RSS-TV compliance. The RSS-TV specification only makes it easier to exchange this information if it exists.

Service providers should ensure that information shared with third-party services is in line with privacy policies accepted by the user.

Cookies

All information is exchanged through the use of standard HTTP cookies. Cookies are typically set on the domain level (e.g. iptv.net) to ensure that multiple RSS-TV media services can access the cookies (e.g. music.iptv.net, movies.iptv.net, or sports.iptv.net).

User Information

User data is exchanged using a multi-value cookie named 'User'. The following parameters are defined:

Parameter

Description

Name

User name

Language

Two-character, ISO 639-compatible

TZ

Regional time zone identifier e.g. 'America/New_York'

TZOffset

Time zone offset in minutes from GMT

IPCountry

Three-character ISO 3166-1 parameter based on IP address

IPState

Local state name based on IP address

IPCity

Local city name based on IP address

 

Example:

User=Name=Robert&Language=en&IPCountry=us&IPState=ca&IPCity=San Diego

Local Device Services

A DNS entry of localhost.<domain> (e.g. localhost.iptv.net) on the client device can be mapped to localhost (127.0.0.1) to ensure that cookie values are also passed to the local web services. Similar techniques can be used to provide other local home network servers access to the cookies (homepc.iptv.net).

Since version 2.3, RSS-TV also supports local device services through scripting.  RSS-TV 2.3 documents may contain links to local script functions (such as JavaScript or Flash ActionScript) that generate RSS-TV XML documents.  More information about scripting can be found in the item extension section describing the link type=”action”.

Security and Trust

Cookie values can be modified by the user and cookies can also be modified by any of the other web services that operate in the same domain. Therefore, web services should not rely on cookies for tasks that require authenticity.

Device Information

Client devices will differ in capabilities based on installed hardware and software. Presenting services to users that can not be accessed with the device can be frustrating and should be prevented.

Basic device information is exchanged using a multi-value cookie named 'Device'. The following parameters are defined:

Parameter

Description

DeviceType

Type of device using an integer: 1 (PC), 2 (PC-MCE), 3 (STB), 4 (MOBILE).  Default value is 1.

Storage

‘true’ or ‘false’ to indicate support for media download.  Default is ‘true’

DeviceId

String containing unique identifier of the device.  Can be used to ease the binding of a device to a user (in combination with a user PIN code)

Model

String that uniquely identifies the hardware configuration of a STB (e.g. MBox.50)

Version

Version string that is used to detect possible upgrade of firmware.

Example:

Device=DeviceId=1234-ABCD&DeviceType=3&Storage=false&Model=MBox.50&Version=45

User-Agent

Additional device information should be carried in the standard HTTP header 'User-Agent' to include device information that can be linked with device capabilities.  The minimum information about the device included in the User-Agent HTTP header is:

Example:

 

Mozilla/4.0 (compatible; Sony; PS3; V3.289.2; 720x576)

Network Information

Network information is exchanged using a multi-value cookie named 'Network'.  The following parameters are defined:

Parameter

Description

Bandwidth

Approximate bandwidth available in kbps.

 


Single Item Response

Instead of returning an RSS document with multiple items, a service may return a single item containing a media enclosure or a menu action.  The item is immediately executed by the client device.  For example:

A single item response may not contain a link to another RSS-TV feed (redirect):  To redirect to another RSS-TV feed the web service should use a regular HTTP redirect response (status code 3xx).

A single-item response contains a single XML item element. The following example provides a sample response:

<?xml version="1.0"?>

<item xmlns:tv="http://www.rss-tv.org/rss/tv1.0">

   <link tv:type="action">menu:0</link>

</item>

In this response, the client returns to the top-level root or 'home' menu. The response may also contain a link of another type (rss or action) or enclosures (audio, video, or flash), and the item may include any regular item XML elements such as title and <tv:meta>.

The single item response may also include an enclosure with metadata as shown by the following example:

<?xml version="1.0"?>

<item xmlns:tv="http://www.rss-tv.org/rss/tv1.0">

   <title>The Matrix</title>

   <description>A computer hacker learns from mysterious rebels about the true nature of his reality and his role in the war against the black force</description>

   <tv:meta type="rating" display="Rating">PG-13</tv:meta>

   <tv:meta type="genre" display="Genre">Action</tv:meta>

   <enclosure url="rtsp://www.cdn.com/v/?id=23"/ >

</item>

Menu history

A single-item response should not be added to the menu history of the client device. Pressing 'back' on a menu that resulted from a single-item response shall return the client device to the most recently processed RSS menu or user input request.  Read section 'Menu Structure' for more information about maintaining menu history information.


Capturing User Input

The RSS-TV protocol allows a service provider to capture user input such as a PIN code, an email address, or a search string to find a movie. This is achieved using the 'input' XML document.

The RSS protocol only allows a single input field per RSS document. This ensures a user-friendly, wizard-like experience. Capturing multiple fields such as email and password must be implemented using two separate RSS-TV documents (thus using two consecutive screens). This is an intended limitation.

The RSS-TV input response includes elements that enable features such as strict input text types (password, email, text, pin, or telephone), automated suggestions, and input language selection.

The following example shows a sample response to capture a search string:

<?xml version="1.0"?>

<input xmlns:tv="http://www.rss-tv.org/rss/tv1.0">

   <name>search</name>

   <action>http://www.iptv.net/search.jsp</action>

   <type>alphanumeric</type>

   <maxlength>10</maxlength>

   <suggest>http://www.iptv.net/suggest.jsp</suggest>

   <title>Search</title>

   <description>Type the name of the movie or actor</description>

   <style>premium</style>

   <image>

      <url>images/boxart.jpg</url>

      <height>180</height>

   </image>

</input>

 

When the user confirms the input, the client device shall POST the value of the input field to the action URI using regular FORM POST syntax (the value must be URL encoded). The following example assumes the name of the input field is 'search' and the user entered 'james' to complete the search query:

search=james

The following sections specify the input XML elements:

Action

XML element

<action>

Type

URI

Occurrence

Required

Attributes

None

 

The element 'action' contains the URI where the final result shall be posted, e.g.: 

   <action>script:submit()</action>

 

The URI may also contain a local script (JavaScript, ActionScript, C++ method) rather than a URL to send the input value to a local service, for example:

   <action>script:submit()</action>

 

The client shall call the local script and pass the input parameter as follows:

<function>(string inputName, string inputValue)

The client will assign the name of the input element to the first parameter (name) and the value of the input element to the second parameter (value).  For example:

setVideo (“ratio”, “4:3”)

The client will assign the name of the input element to the first parameter (name) and the value of the input element to the second parameter (value).  For example:

Description

XML element

<description>

Type

String with basic markup

Occurrence

Optional

Attributes

None

 

The element 'description' contains a long string to describe the input field. This information helps the user understand what input is required. Example values are 'Enter the first characters of a movie name or the name of an actor to find a movie'.  The description may contain basic markup as specified in the section RSS-TV <description> Extensions.

Image

XML element

<image>

Type

See RSS <image> XML schema

Occurrence

Optional

Attributes

None

 

The input can be associated with an image to remind the user why the input is required.  For example a thumbnail of a movie to confirm a purchase, or an image of a lock for entry of a PIN code.

Language

XML element

<language>

Type

ISO 639, two-character language string

Occurrence

Optional

Attributes

None

 

The 'language' element is used to determine the appropriate character set for entering user input.

Maximum Length

XML element

<maxlength>

Type

Number

Occurrence

Optional

Attributes

None

 

The 'maxlength' element contains the maximum length of the field. The default value is device dependent.

Menu History

XML element

<menuhistory>

Type

Boolean

Occurrence

Optional (default = true)

Attributes

None

 

The 'menuhistory' element can be set to 'false' to prevent the client device from adding the input item in the menu history. See also Menu History.

Name

XML element

<name>

Type

String

Occurrence

Required

Attributes

None

 

The element 'name' contains the form field name of the value that shall be posted to the action URI.

Style

The service can request the navigation client application to change the style (background, colors, etc.) of the input menu page.

Read the RSS-TV Channel Extensions section for more information about styles.

Suggest

XML element

<suggest>

Type

URI

Occurrence

Optional

Attributes

None

 

The 'suggest' element is used to retrieve suggestions based upon currently entered characters.

The 'suggest' URI can be used by the client device to display a list of suggestions based on the input characters entered so far. See also 'Google Suggest' (http://www.google.com/webhp?hl=en&complete=1) for an example implementation of such functionality. The client device shall POST the contents of the input element to the 'suggest' URI when a new character is entered by the user, using the same HTTP POST syntax as submitting the final result to the 'action' URI. The server responds with an RSS-TV compliant XML document with the suggested items included in the response.  The user can select one of the suggestions to activate the associated RSS-TV item.

Client device implementation of the suggest URI is optional and is not required for RSS-TV compliance.

The suggest URI may also contain a local script (JavaScript, ActionScript, C++ method) rather than a URL to send the input value to a local service.  See input <action> for more details.

Title

XML element

<title>

Type

String

Occurrence

Required

Attributes

None

 

The element 'title' contains a short string to describe the input field. Example values are 'Find a Movie' or 'Enter your PIN'.

Type

XML element

<type>

Type

String

Occurrence

Optional

Attributes

None

 

The element 'type' is used to indicate what type of input field is expected. This can be used by the client device to simplify the user interface. For example, entering a field of type 'email' could make the characters '.' and '@' more prominent and leave out the option of capitols, spaces and special characters that are not allowed as part of an email address.

Accepted values for <type> are:

text

Case sensitive single line string

password

Secret text field

numeric

0-9

pin

Secret numeric field

email

Email address

telephone

Telephone number including numeric, '+', '*' and '#' symbols.

url

Uniform Resource Locator

ipaddress

Standard IPv4 address in string format (e.g. “192.1.10.104”)

date

Date conforming ISO 8601.date standard

time

Time confirming ISO 8601.time standard

 

Value

XML element

<value>

Type

String

Occurrence

Optional

Attributes

None

 

The 'value' element allows the service provide to pre-fill the value of the input field to minimize user input efforts. For example, a URL input request could set <value> to 'http://www.'.


 RSS <channel> Extensions

This section lists the RSS-TV extensions of the RSS <channel> element that shall be supported by a RSS-TV-compliant client device.

This section describes the following extensions in alphabetical order:

<tv:autostart>

Activate (start) the media item when selected.

<tv:help>

RSS-TV compliant service URI to context sensitive help

<tv:meta>

Channel level meta data.

<tv:preview>

Preview video or background audio for this channel

<tv:style>

Change the style (background, colors, etc) of the navigation client application

<tv:subtitle>

Text located below the channel title.

<tv:tracker>

Contains URI to enable third party site analytics

<tv:widget>

Suggested user interface (UI) widget for displaying items

<tv:zap>

Allow user to zap through menu items

 

 

Autostart

XML element

<tv:autostart>

Type

Boolean

Occurrence

Optional

Attributes

None

 

The service may request the client to immediately start the selected media item.  The user only needs to enter the corresponding number (see <tv:number>), or the service may have pre-selected a media item (see <tv:selected>).  The user does not require to activate (press the RCU ‘OK’ button) the selected menu item.

The default value is ‘false’.

Example

<?xml version="1.0"?>

<rss version="2.0" xmlns:tv=" http://www.rss-tv.org/rss/tv1.0">

   <channel>

      <title>Live TV</title>

      <tv:autostart>true</tv:autostart>

      ...

Help

XML element

<tv:help>

Type

URI

Occurrence

Optional

Attributes

None

 

The service may provide contextual help for the current and descending menu pages.  The navigation client application may provide a special 'help' RCU button to access help.  If no special RCU button is available, the navigation client application may provide an on-screen option to access help.

Example

<?xml version="1.0"?>

<rss version="2.0" xmlns:tv=" http://www.rss-tv.org/rss/tv1.0">

   <channel>

      <title>Live TV</title>

      <tv:help>/menu/?id=help156</tv:help>

      ...

Meta

XML element

<tv:meta>

Type

String

Occurrence

Optional

Attributes

type, display

 

The service may associate META data with the channel.  See item extension <tv:meta> for a list of the meta types and other details.

Example

<?xml version="1.0"?>

<rss version="2.0" xmlns:tv="http://www.rss-tv.org/rss/tv1.0">

   <channel>

      <title>Action Movies</title>

      <tv:meta type="rating" display="Rating">PG-13</tv:meta>

      ...

Preview

XML element

<tv:preview>

Type

XML element

Occurrence

Optional

Attributes

force, in addition to standard RSS <enclosure> attributes

 

The client device can process this instruction to play the specified video/audio as a preview to the selected menu.  The syntax of the preview element follows the RSS <enclosure> syntax.  Read the section RSS-TV <enclosure> Extensions for more details about the enclosure element.

The attribute force can be set to "true" to ensure that any playing media (audio/video) is stopped.   The default value for force is "false".

It is also possible to set a different preview for each RSS item.  See item extensions for further details.

Note that the client device will have less space for displaying item titles if a video preview is included.  See the section on maximum string lengths for further details.

Example:

<?xml version="1.0"?>

<rss version="2.0" xmlns:tv=" http://www.rss-tv.org/rss/tv1.0">

   <channel>

      <title>Movies On Demand</title>

      <tv:preview force="true" url="mms://aod.iptv.net/featured.wmv" type="video/asf"/>

   ...

 

</rss>

Style

XML element

<tv:style>

Type

String

Occurrence

Optional

 Attributes

None

 

The service can request the navigation client application to change the style (background, colors, etc.) of the current and descending menu pages. The allowed values and detailed implementation is outside the scope of the RSS-TV specification.  The style element can contain spaces, which typically is used to signal multiple classes in style sheets.

Example

<?xml version="1.0"?>

<rss version="2.0" xmlns:tv=" http://www.rss-tv.org/rss/tv1.0">

   <channel>

      <title>Live TV</title>

      <tv:style>primetv livetv</tv:style>

      ...

Tracker

XML element

<tv:tracker>

Type

URI

Occurrence

Optional

Attributes

None

 

The client device should load an image from the URI and not render the image to the user.  The image will typically be small (1x1) and is used to implement third party site analytics.  Cookies do not need to be supported.

Example

<?xml version="1.0"?>

<rss version="2.0" xmlns:tv=" http://www.rss-tv.org/rss/tv1.0">

   <channel>

      <title>Live TV</title>

      <tv:tracker>http://siteanalytics.net/i/38/Main:Live%20TV</tv:tracker>

      ...

Widget

XML element

<tv:widget>

 

Type

String

Occurrence

Optional

Attributes

visibleitems, width, height

 

An RSS-TV service can suggest a specific UI widget for navigating menu items.  The widget type defines the navigation paradigm for the returned menu items, such as a list of text items, image items with text, or a mosaic with only images.

It is possible for the <tv:widget> element to contain multiple widget types options.  This allows a client to gracefully degrade from a complex (custom) widget type to a simple (standard) one. It also allows services to introduce custom widget types that are not necessarily implemented on all device types.  When a client detects multiple widget types, it should check if it supports the first widget type and use this if available. If the first widget type isn't available it should try the second type and so forth until ultimately it will use text.

Example:

<tv:widget>my_widget,image</tv:widget>

 

RSS-TV defines the following standard widget types: text, image, mosaic and epg.  They are described in the following sections.

<tv:widget>text</tv:widget>

The client device shall display menu items using text items. The title shall be displayed as the descriptive text for each item. This is the default client widget type.

<tv:widget>image</tv:widget>

The client device can display the items using a widget that lets the user select an item by scrolling through images. The recommended maximum number of visible items on a screen is included in the attribute ‘visibleitems’.   The recommended size of each image is included in attributes 'width' and 'height'.  Depending on the resolution of the device, the client application may chose to reduce the recommended size of the images.   In case of low resolution devices, the client application may chose to reduce the recommended number of visible items.

The following width and height combinations are recommended for best image quality display on most RSS-TV devices:

Boxart

140x196

Album cover

128x128

Video scenes

140x100

Icon

64x64

 

The RSS-TV service is assumed to include images for all items if the widget type is set to image.

The RSS-TV client application may decide to downscale images to fit the available screen resolution, but should never upscale images to avoid degrade of quality.

Example:

<tv:widget visibleitems="7" width="140" height="196">image</tv:widget>

 

Example implementation of an image-based widget:

<tv:widget>mosaic</tv:widget>

The client device implements the mosaic widget by showing images in a grid that can be navigated by using the arrow keys.  A user will need to use an 'Enter/OK' key to activate the selected item and a 'Back/Exit' key to return to the previous menu page.

The grid dimensions will be calculated based on the recommended number of visible items, the ratio of the image widget and the ratio of the resolution of the ‘work area’.  The exact calculation of the ‘box size’ for images is device specific.

The image dimensions follow the same guidelines as outlined for the image widget.

<tv:widget>epg</tv:widget>

The client device implements the epg widget by showing a 2 dimensional grid with the x-axis representing time and the y-axis representing the (live) services.  Each item should include a <tv:eventinfo> element to provide related schedule information.  See the section RSS-TV <item> Extensions for more information about <tv:eventinfo>.

Zap

XML element

<tv:zap>

Type

Boolean

Occurrence

Optional

Attributes

None

 

The client device can enable zapping across listed menu items that are contained in a single RSS-TV response (siblings).  The value can be set to 'true' or 'false' (default).

Zapping is typically implemented by the client device using the Channel UP/DOWN or Previous/Next RCU buttons.  It can be used for:

Note that an RSS-TV document may contain video, audio, (flash) applications and RSS-TV menu items.  Zapping should work consistently across all types of menu items.

The service may exclude certain items from the zap list by using the <tv:zap> element on an RSS-TV item level.

Example Client Implementation

The following image shows an example client implementation for some of the RSS-TV channel extensions:

This is the associated RSS-TV XML document:

<?xml version="1.0"?>

<rss version="2.0" xmlns:tv=" http://www.rss-tv.org/rss/tv1.0">

   <channel>

      <language>en-us</language>

      <title>Movies On Demand</title>

      <subtitle>Matrix</subtitle>

      <description>In The Matrix Revolutions, the final chapter in the Matrix trilogy, the rebels' long quest for freedom culminates in a final explosive battle. <tv:br/><tv:big>24 hours for 2 Euro</tv:big>

      </description>

      <image>

         <url>images/boxart.jpg</url>

         <height>180</height>

      </image>

      <item>

         <title>Confirm</title>

         <description>Yes, I want to see this movie</description>

         <link type="rss">http://www.test.com/purchase/?cid=188734</link>

      </item>

      <item>

         <title>Cancel</title>

         <description>No thank you</description>

         <link type="action">menu:-1</link>

      </item>

   </channel>

</rss>

 


RSS <item> Extensions

This section lists (in alphabetical order) the RSS-TV extensions of the RSS <item> element that shall be supported by an RSS-TV-compliant client device.

<tv:done>

RSS-TV URI that shall be called after the media is stopped or finished

<tv:duration>

Duration of a media item

<tv:eventinfo>

Event information associated with (semi) live media.

<tv:image>

Image associated with a media item

<tv:meta>

Used for short metadata of various types relating to a media item.

<item tv:noskip>

Used to disable player controls to prevent a user from skipping an advertisement.

<tv:number>

Used for quick access to an item using numeric keys

<item tv:preload>

Used to inform the client that the associated child RSS-TV document can be preloaded.

<tv:preview>

Preview video or background audio for selected media item

<tv:sami>

URI to the associated SAMI subtitling file

<item tv:selected>

Media item should be selected by default

<tv:start>

Start date/time of a live video or audio item

<item tv:status>

Indicates the status of the media item (playing, viewed, unauthorized, etc)

<link tv:type>

Attribute to explicitly declare type of item link

<tv:zap>

Override value of channel zap on item level

 

 

Done

XML element

<tv:done>

Type

URI

Occurrence

Optional

Attributes

None

 

The <tv:done> element is used in combination with a link to video, audio, or a game and is used to control the navigation of the client after the media is stopped or finished. The <tv:done> element contains a URI that must return a valid RSS-TV XML document. After the media has finished playing, the client device calls the URI of the <tv:done> element using an HTTP GET request and processes the response.   The <tv:done> element may return a single item containing another enclosure, enabling the implementation of server side play lists.

 

The navigation client application shall append the position of the video to the <tv:done> URI to enable a 'resume media' service function.  The URI parameter is 'position' and the value is the position in milliseconds.

The navigation client application shall store the <tv:done> URL in the history on the next menu level.

The element is optional. By default, the navigation client application will return to the last menu page after the media is stopped or finished.

Example

The following item node instructs the player to go to a 'done' URI after playing the media.

      <item>

         <title>Tonight Show</title>

         <tv:done>http://test.com/done/?id=2864</tv:done>

         <enclosure url="rtsp://www.test.com/videos/intro.mp4" type="video/mpeg"/>

      </item>

 

If the user stops the media 781 seconds and 235 milliseconds into the media, the navigation client application calls the following URI:

http://test.com/done/?id=2864&position=781235

 

The done service can return the client to the previous menu with the following response:

<?xml version="1.0"?>

<item xmlns:tv="http://www.rss-tv.org/rss/tv1.0">

   <link tv:type="action">menu:-1</link>

</item>

 

Example use:

The done service may return a single item response with a media item to implement dynamic playlist functionality.

The done service may also return a menu page with multiple items combined with <tv:autostart> to implement dynamic playlist functionality.  The advantage this method is that the device can enable the user to browse to previous or next media items in the playlist.

Duration

XML element

<tv:duration>

Type

ISO 8601.time

Occurrence

Optional

Attributes

None

 

The <tv:duration> element is used in combination with a link to a video or audio and is used to indicate the duration of the video/audio stream.

An example video item with a duration element:

      <item>

         <title>Tonight Show</title>

         <pubDate>Sat, 07 Sep 2008 09:00:00 GMT</pubDate>

         <tv:duration>02:00:00</tv:duration>

         <enclosure url="rtsp://www.test.com/v/intro.mp4" type="video/mpeg"/>

      </item>

Event Information

XML element

<tv:eventinfo>

Type

URI

Occurrence

Optional

Attributes

None

 

The <tv:eventinfo> element is used in combination with a link to a video or audio and is used to associate event information with the (semi) live video/audio stream.  The client can send a regular HTTP request to the link to receive event information associated with the live stream.  The client can append URI parameters 'begin' and 'end' (ISO 8601) to indicate for which period event information is requested. Omitting these parameters will indicate that only 'now' and 'next' event information is returned.

An example video item with an <tv:eventinfo> element:

      <item>

         <title>NBC</title>

         <tv:eventinfo>http://meta.test.com/rss/?id=nbc</tv:eventinfo>

         <enclosure url="rtsp://video.test.com/nbc" type="video/mpeg"/>

      </item>

Image

XML element

<tv:image>

Occurrence

Optional

Attributes

None

 

The image element enables an operator to associate images with items. The client device can use these images to allow a user to scroll through images rather than text.

It is recommended that the RSS-TV web service associates images to all items. See RSS-TV channel extension <tv:widget> for more information.

The XML schema of the item <tv:image> is consistent with the RSS-defined channel image XML element, limited to the sub-elements 'url', 'height' and 'width'.

Example item with an image:

      <item>

         <title>The Matrix (1999)</title>

         <description>A computer hacker learns from mysterious rebels about the true nature of his reality and his role in the war against the black force</description>

         <tv:image>

            <url>images/matrix.jpg</url>

            <width>80</width>

            <height>180</height>

         </tv:image>

         <tv:meta type="rating" display="Rating">PG 13</tv:meta>

      </item>

 

It is not mandatory for an RSS-TV-compliant client to process the image XML element. It is good practice for the web service to either associate images with all of the items, or not at all.

Meta

XML element

<tv:meta>

Type

String

Occurrence

0 or more

Attributes

type, display

 

The <meta> element is used for short pieces of metadata of various types relating to a content item. A content item may have one or more arbitrarily defined pieces of metadata, such as genre, episode or cast. Metadata are generally shown on the client as name and value pairs. The name is defined by the "display" attribute and the value by the contents of the <tv:meta> element. However since it is also important to have a language independent, machine readable identifier for the metadata there is also a "type" attribute.

Display

Used for the display name of the piece of metadata

Type

Used to identify the function of a particular piece of metadata.

 

Known <tv:meta> types are: rating, cast, artist, album, tags, series, episode, language, subtitles, copyright, genre, director, producer

Example item with some <tv:meta> data:

   <item>

      <title>The Matrix</title>

      <description>A computer hacker learns from mysterious rebels about the true nature of his reality and his role in the war against the black force</description>

      <tv:meta type="rating" display="Rating">PG-13</tv:meta>

      <tv:meta type="genre" display="Genre">Action</tv:meta>

      <tv:meta type="copyright" display="Copyright">Sony, 1999</tv:meta>

      <tv:meta type="cast" display="Cast">Keanu Reeves, Laurence Fishburne</tv:meta>

      <tv:meta type="language" display="Original Language">English</tv:meta>

      <tv:meta type="subtitles" display="Subtitles">German, French</tv:meta>

      <enclosure url="rtsp://www.server.com/video/?id=39813"/>

   </item>

No Skip

XML attribute

<item tv:noskip>

Type

Boolean

Occurrence

Optional

 

The <item tv:noskip> attribute is used to disable the player controls ‘skip’ and ‘forward’ to prevent a user from skipping (parts of) this media item.  The ‘noskip‘ attribute is typically used to force the user to view an advertisement, in combination with a server side playlist.  Note that the service should not assume any level of security since the XML can be spoofed or a client can be tampered to ignore this attribute.

      <item tv:noskip="true">

         <enclosure url="rtsp://ads.net/v/?id=24981" type="video/mpeg"/>

      </item>

Number

XML element

<tv:number>

Type

Number

Occurrence

Optional

Attributes

None

 

The number acts as a shortcut for the user by entering the corresponding number using a remote control.

Implementation of this RSS-TV extension is recommended, but not mandatory for RSS-TV compliance.

Preload

XML attribute

<item tv:preload>

Type

Boolean

Occurrence

Optional

 

The <item tv:preload> attribute is used to inform the player it is safe to preload the RSS-TV document associated with the item (link).   This feature is used to improve performance on slow networks.  Client applications that preload XML documents should be careful to adhere to HTTP caching directives.  The default value is ‘false’.

      <item tv:noskip="true">

         <enclosure url="rtsp://ads.net/v/?id=24981" type="video/mpeg"/>

      </item>

Preview

XML element

<tv:preview>

Type

XML element

Occurrence

Optional

Attributes

Same as RSS <enclosure>

 

The client device can process this instruction to play the specified video/audio as a preview to the selected item.  The syntax of the preview element follows the RSS <enclosure> syntax.

Note that the client device will have less space for displaying item titles if a video preview is included.  See the section on string lengths for further details.

Example:

<?xml version="1.0"?>

<rss version="2.0" xmlns:tv=" http://www.rss-tv.org/rss/tv1.0">

   <channel>

      <title>Action Movies</title>

      <item>

         <title>View to a Kill</link>

         <link type="rss">/purchase</link>

         <tv:preview url="mms://aod.iptv.net/prev?id=132" type="video/asf"/>

      </item>

   ...

 

</rss>

SAMI

XML element

<tv:sami>

Type

URI

Occurrence

Zero or more

Attribute

language

 

The SAMI element is used for displaying subtitles synchronized with the media.  The optional language attribute contains a 2 character ISO 639 language code that represents the language of the subtitling text.  The STB may use multiple entries to enable the user to ‘cycle’ through the available languages.

Example:

      <item>

         <title>Media with subtitling (closed caption)</title>

         <tv:sami language="en">http://www.serv.net/198.en.sami</tv:sami>

         <tv:sami language="sv">http://www.serv.net/198.sv.sami</tv:sami>

         <enclosure url="rtsp://www.video.net/1028/198.wmv"/>

      </item>

Selected (item)

XML attribute

<tv:selected>

Type

Boolean

Occurrence

Optional

Default

false

 

'Selected' determines whether the item should be selected by default by the navigation client application menu cursor.

Only a single item should have this attribute set to true. If none of the items is selected, the client shall select the first item in the list or select the item on the basis of the user's selection history.

Example:

      <item tv:selected="true">

         <title>Cancel</title>

         <link tv:type="action">menu-1</link>

      </item>

      <item>

         <title>Ok</title>

         <link tv:type="rss">/purchase/?action=confirm</link>

      </item>

Status

XML attribute

<item tv:status>

Type

String

Occurrence

Optional

 

The <item tv:status> attribute can be used to signal a specific status of a media item to the user.  The client navigation client application can implement this by using special icons or colors for those menu items with a special status.  Implementation of this feature is not mandatory to be RSS-TV compliant.  The following item status values are defined:

unauthorized

The user is not authorized to access the associated media

viewed

The user has already viewed this media

playing

The user is currently playing this media

expire

The system will soon expire this media from the network

 

Example:

      <item tv:status="viewed">

         <title>View to a kill</title>

         <enclosure url="rtsp://www.test.com/v/?id=24981" type="video/mpeg"/>

      </item>

Start

XML element

<tv:start>

Type

Conform date and time specification of RFC 822

Occurrence

Optional

Attributes

None

 

The <tv:start> element is used in combination with a live video or audio stream and is used to indicate the start of a specific item/event.

Type (link)

XML attribute

<link tv:type>

Type

String

Occurrence

Optional

Default

html

 

The client will process the item <link> element based on the value of the <tv:type> attribute. The default type is "html".

<link tv:type="rss">

The client will process the item <link> element as a submenu of the current menu. The HTTP response of this URI must be an RSS-TV document.

<link tv:type="html">

The client will process the item <link> element as a link to an HTML application that will be loaded in the browser.

Client devices are allowed to ignore (and hide) items with type 'html' to prevent users from accessing unsupported HTML applications. This is specifically applicable if the client device has no (or limited) support for HTML.

<link tv:type="action">

The client will process the item <link> element as one of the predefined actions. The following action links are defined:

Zap

XML attribute

<tv:zap>

Type

Boolean

Occurrence

Optional

Default

Value of <tv:zap> at <channel> level

 

Override zapping behavior on single item.  This is typically used in case the menu contains a list of media items combined with a single (or few) action items.  In this case, the channel level ‘<tv:zap>’ can be set to ‘true’ and the menu item with an action item can be set to ‘false’.


RSS <title> Extensions

The RSS <title> element of the <item> element has been extended for RSS-TV. The title element of an item element may contain a tv:value attribute to denote the value of a configuration setting.  Example:

   <title tv:value="4:3">TV Display</title>

 

The client can use this extension to – for example – right align the string contained in the tv:value element.  See the settings menu of the iPhone for an example implementation.


RSS <description> Extensions

The RSS <description> element, which can be a child element of the channel element, the item element and the input element, has been extended for RSS-TV. The description element may contain some basic HTML-like elements which are listed below. A long description may also be broken up into different visible sections using the <tv:card> element.

Supported markup elements

<tv:b>

Inline element which makes its contents bold.

<tv:i>

Inline element which makes its contents italic.

<tv:big>

Inline element which makes its content bigger than default.

<tv:small>

Inline element which makes its content smaller than default.

<tv:br />

Inline element which causes the client to insert a carriage return.

<tv:ol>

Block level container element which denotes the start of an ordered list.

<tv:ul>

Block level container element which denotes the start of an unordered list.

<tv:li>

Block level container element which contains a single list item. This element is a child element of either <tv:ol> or <tv:ul>.

<tv:p>

Block level container element used for containing paragraph text.

<tv:card>

Used for breaking long descriptions up into discrete elements.

 

All markup elements behave as they would be expected to in a normal web page. For HTML-based clients it is normal procedure to translate these into the HTML elements that they represent and then copy these into the navigation client application and let the browser take care of rendering these elements.

Nesting of markup elements

HTML-like elements that have been defined as being block level may not be nested inside each other. The only exception is <tv:li> which must be nested within <tv:ol> or <tv:ul>. It is therefore not permissible to have nested lists or have lists nested in <tv:p> elements. Inline elements may be nested within block-level elements.

An example:

   <description>

      <tv:p>Here is a list of fun things to watch</tv:p>

      <tv:ul>

         <tv:li>TV Shows</tv:li>

         <tv:li><tv:b>Short</tv:b> Films</tv:li>

         <tv:li><tv:i>Funny</tv:i> Films</tv:li>

      </tv:ul>

   </description>

Attributes for markup elements

All of the permitted HTML-like elements (listed above), with the exception of <tv:br /> support the following attributes. Any other attributes should be actively removed by the client.

Id

Optionally indicates the id of the element.

Class

Optionally indicates the class of the element.

 

Cards

Sometimes a description may contain more than the recommended maximum number of characters.  The client navigation application may simply hide the extra characters.   Intelligent clients may implement a means to scroll through the entire description.  Cards can be used by the service to 'hint' to the client navigation application how the large description should be broken into visible sections.  The client navigation application should include visual hints to explain the user how to scroll through the entire description.

Card

XML element

<tv:card>

Type

May contain the same data and the same HTML-like elements, which a description element does. It may however not contain <tv:card> elements as child elements.

Occurrence

Optional

Attributes

None


RSS <enclosure> Extensions

RSS feeds contain enclosures that represent links to actual media content.  RSS-TV introduces some extensions to enable secure download and resume functionality.

Internet media services are delivered in real-time using streaming protocols such as RTSP/RTP and MMS, or they can be downloaded to the client using protocols such as HTTP or FTP.  Streaming is useful for immediate viewing or listening, while download can be used to deliver games or high quality video files over slower connections.

<tv:delivery>

Type of delivery (streaming, download, P2P)

<tv:notify>

URI to notify service about download progress

<tv:publish>

Flag to indicate if downloaded media should be published within local (HOME) network.

<tv:remove>

Remove the downloaded media at a certain date/time

<tv:roprovider>

Identifies the technology provider for acquiring the rights object. 

<tv:rourl>

URI to acquire rights object (license)

<tv:startat>

Start the media at a random position

Delivery

XML attribute

<tv:delivery>

Type

String ("download" | "streaming")

Occurrence

Optional

Default

"streaming"

The RSS-TV navigation server shall include the RSS-TV enclosure extension <enclosure tv:delivery> to explicitly indicate that content is intended for download (and storage) rather than for real-time streaming. The default value is "streaming".  The client should process this instruction by initiating a file download process rather than streaming the content.  The enclosure URL shall be used to signal the delivery protocol (HTTP, FTP or other delivery protocols such as BitTorrent/P2P).

See the end of this section for an example enclosure.

Download complete notification

XML attribute

<tv:notify>

Type

URI

Occurrence

Optional

An enclosure linking to a downloadable content item may include an <enclosure tv:notify> attribute with a URI to notify the service that a download has completed.  The client shall call this URI when the download process has completed.  The URI shall be expanded by the client navigation application with a parameter named 'event' and a value set to 'complete'.

For example, if the URI is set to

http://test.iptv.com/notify/

Then the navigation client application will call the following URI when the download has completed:

http://test.iptv.com/notify/?event=complete

See the end of this section for an example enclosure.

Publish

XML attribute

<tv:publish>

Type

Boolean

Occurrence

Optional

The <enclosure tv:publish> attribute is used to indicate whether the downloaded media should be published within the local (home) network using standards such as UPnP and/or DLNA.  Publish is assumed to be "true" by default.

See the end of this section for an example enclosure.

Automatic removal

XML attribute

<tv:remove>

Type

Date

Occurrence

Optional

An enclosure linking to a downloadable content item may include an <enclosure tv: remove> attribute containing a date conforming RFC 822.  The client should automatically remove the downloaded content file at the indicated GMT date and time to comply with copyrights.  Note that secure and timely removal of the file should be enforced by DRM technology such as Windows Media DRM or OMA DRM.

See the end of this section for an example enclosure.

Rights Object Provider

XML attribute

<tv:roprovider>

Type

String

Occurrence

Optional

An enclosure linking to a downloadable content item may include an <enclosure tv:roprovider> attribute with a String to identify the Rights Object (license) provider.  This identifier allows the client device to apply the appropriate protocol for acquiring the rights object.  The protocol of acquiring the Rights Object is outside the scope of this document, the device manufacturers will need to work with the rights object issuers to exchange the details of the protocol.

The value of <tv:roprovider> should start with the publicly known company name of the Rights Object provider and may be augmented with a protocol version number.  Examples are ‘entriq.1’ or ‘theplatform.1’.

See the end of this section for an example enclosure.

Rights Object (license, EMM)

XML attribute

<tv:rourl>

Type

URI

Occurrence

Optional

An enclosure linking to a downloadable content item may include an <enclosure tv:rourl> attribute with a URI to acquire a Rights Object (license).  Encrypted content that is downloaded can only be viewed if the user has a corresponding key, contained in a Rights Object with certain access and copy control parameters.  The Rights Object acquisition protocol is implemented by a Rights Object provider <enclosure tv:roprovider> as described in the associated section.

See the end of this section for an example enclosure.

Start at random position

XML attribute

<tv:startat>

Type

Number

Occurrence

Optional

An enclosure linking to a streaming media item may include an <enclosure tv:startat> attribute containing a position measured in milliseconds from the beginning of the media.  The client shall start the media at the indicated position.  This attribute shall be ignored for live streams.

Example enclosures

<enclosure

         url="http://server.cdb.com/file.mp4"

         tv:delivery="download"

         tv:publish="false"

         tv:roprovider="entriq.1"

         tv:rourl="http://roserver.cp.com/?keyid=7A8f6gy3i6o4"

         tv:remove="Wed, 03 Jan 2018 15:00:00 GMT"/>

 

<enclosure

         url="rtsp://server.cdb.com/video/?id=234"

         tv:startat="635200"/>


Event Information for LIVE Streams

RSS-TV enables associating event information with live streams. This feature is used to create an EPG for live TV or radio channels, and can also be used to control PVR recording triggers.

Event information is associated with live or semi-live streams by including a video/audio enclosure to the media and a URI to locate the event information. The TV device can use this URI to retrieve information about previous, current, and upcoming events scheduled on the live channel.  The event URI returns an RSS compliant response with items, each item containing a start and a duration element.

It is not mandatory for a service provider to provide event information for live video/audio channels. Event information is optional and can be processed by the TV device if it is available.

For more information on the event information read the sections on RSS-TV item extension '<tv:eventinfo>', '<tv:start>' and '<tv:duration>'.


Error Handling

An RSS-TV web service may encounter system errors or other errors that prevent users from accessing the service.

The web service should respond with a valid RSS-TV response to inform users accordingly. This RSS-TV response may or may not contain information about the error. Users can be informed of errors and provided a single menu option to go to the root of the menu as demonstrated in the following example:

<?xml version="1.0"?>

<rss version="2.0" xmlns:tv=" http://www.rss-tv.org/rss/tv1.0">

   <channel>

      <language>en-us</language>

      <title>System Problem</title>

      <description>A system problem occurred. Our apologies for the inconvenience. Please try again later.</description>

      <item>

         <title>OK</title>

         <link tv:type="action">menu:0</link>

      </item>

   </channel>

</rss>


Length of Title, Description and Other Elements

The RSS-TV protocol contains various string elements such as 'title' and 'description'.  To prevent scrolling of text or missing characters, RSS-TV recommends the following maximum element length guidelines (for standard character sets):

channel.title

25 characters

channel.description

Maximum 300 characters in total or per card

item.title

40 characters
(16 characters in combination with video preview)

item.description

Maximum 300 characters in total or per card

input.title

25 characters

input.description

Maximum 80 characters

Whitespace

Unnecessary whitespace in text elements such as item title and item description should be removed before they are rendered, inline with standard HTML processing.


RSS-TV Compliance

A device may claim RSS-TV compliance to indicate the ability to seamlessly integrate with RSS-TV-compliant services. This section specifies under what conditions a product may claim RSS-TV compliance.

Basic and Standard Profile

A device manufacturer may either implement the RSS-TV ‘Basic Profile’ or the ‘Standard Profile’.  The following tables outline which functions are included by the basic and standard profiles.

Channel Extensions

 

Basic Profile

Standard Profile

<tv:help>

 

X

<tv:preview>

 

X

<tv:style>

 

X

<tv:subtitle>

 

X

<tv:tracker>

 

X

<tv:widget>

 

X

<tv:zap>

 

X

Item Extensions

 

Basic Profile

Standard Profile

<tv:done>

 

X

<tv:duration>

 

 

<tv:eventinfo>

 

 

<tv:image>

 

X

<tv:meta>

 

X

<tv:number>

 

X

<tv:preview>

 

X

<item tv:selected>

 

X

<tv:start>

 

 

<item tv:status>

 

X

<link tv:type>

X

X

Input Elements

 

Basic Profile

Standard Profile

<action>

X

X

<description>

X

X

<language>

 

X

<maxlength>

 

X

<menuhistory>

X

X

<name>

X

X

<suggest>

 

X

<title>

X

X

<type>

 

X

<value>

 

X

Description Extensions

 

Basic Profile

Standard Profile

<tv:b>

 

X

<tv:i>

 

X

<tv:big>

 

X

<tv:small>

 

X

<tv:br />

 

X

<tv:ol>

 

X

<tv:ul>

 

X

<tv:li>

 

X

<tv:p>

 

X

<tv:card>

 

X

Enclosure Extensions

 

Basic Profile

Standard Profile

<tv:delivery>

 

X

<tv:notify>

 

X

<tv:publish>

 

X

<tv:remove>

 

X

<tv:rourl>

 

X

<tv:startat>

 

X

Client Implementation

A device is RSS-TV compliant if it implements the ‘Basic Profile’ of RSS-TV 2.0.  A suite of test cases is available at www.rss-tv.org to validate compliance of the navigation client application.

Service Implementation

A service is RSS-TV compliant if a device that only implements the RSS-TV ‘Basic Profile’ can navigate and access the online media services.

Acronyms

The following table provides definitions for acronyms used in this document.

AJAX

Asynchronous JavaScript and XML

DHTML

Dynamic hypertext markup language

DNS

Refers to the Domain Name System, an Internet service that translates domain names into IP addresses

DVB

Digital Video Broadcasting. Refers to standards for the delivery of digital television and data services developed by the Digital Video Broadcasting Project.

DVD

Digital Versatile Disc

DVR

Digital Video Recorder

EPG

Electronic program guide

HTTP

Hyper text transfer protocol

IP

Internet Protocol

IPTV

Internet protocol television

OS

Operating system

MPEG

Refers to standards for coding representations of digital audio and video developed by the Moving Picture Experts Group.

NTSC

National Television System Committee. Refers to standards for analog television broadcasting developed by the National Television System Committee.

PAL

Phase-alternating line. Refers to the analog video encoding system used in broadcast television systems.

PHP

PHP: Hypertext Preprocessor.  Programming language originally designed for producing dynamic web pages.

PIN

Personal identification number

PVR

Personal video recorder

UTF-8

Unicode Transformation Format (8-Bit)

RSS

Really Simple Syndication

XML

Extensible markup language

 

Index