Roku deeplink integration
Deep linking must work with our Dynamic MRSS Feeds that change constantly.
Here below are some of Roku’s requirements for deep linking.
Choosing a mediaType
A mediaType is a value used to categorize each type of content available on your channel. See MediaType behavior for more information.
NOTE: To pass certification, you must submit one sample deep link for each mediaType value used in your channel, along with a matching sample contentid. See Submitting deep linking content for certification.
Roku has defined the mediaType values as:
• movie - a long-form film or movie
• series - a set of related TV shows consisting of episodes or seasons
• season - as part of a series, a season is a single set of related TV shows consisting of episodes
• episode - a single content item
• short-form - a standalone content item of 15 minutes or less
• special - a single content item that does not fit into any other mediaType
• live - a live feed. *NOTE: You are not required to support deep linking to live feeds unless your channel has only live feeds.
Deep linking behavior
To ensure a standard user experience across the Roku platform, Roku has defined a set of behaviors that a channel should exhibit when responding to a deep link request.
• Support mediaType values to categorize your content: Your channel must support as many or as few mediaType values as is necessary to accurately categorize all the content in your channel. If your channel has a mix of TV shows and feature-length films, you must support mediaType values “movie,” “series,” “season,” and “episode”. If instead, your channel has many live feeds available at a time, use the “live” mediaType. Channels that include only a single live stream have only one possible behavior, but still must implement deep linking.
• Handle invalid deep links: Channels must handle invalid deep links gracefully and must not cause a crash. When deep linking with an invalid mediaType or contentid, the link must be set to return to the home screen of the channel.
• Handle unauthenticated users: Your channel must handle unauthenticated users who are deep linking into your channel or launching your channel for the first time. For example, this can happen when a user is deep linking into your channel from an ad or by using Roku Search for the first time. If the channel is uninstalled, Roku OS will prompt the user to install the channel before continuing with the deep link. Your code must route the user to the appropriate screen and then, when the user is authenticated, fulfill the deep link.
• Display paywall if needed: If your channel requires a purchase prior to launching, you are allowed to display a purchase screen before the user sees the content.
• Support a default profile If your service supports profiles, you must set a default profile for a movie, episode or series. Do not force a customer to choose a profile prior to playing a movie or episode. This is because Roku does not allow any screen (except a purchase or authentication screen) to be presented to the customer between choosing a movie or episode and playing it. Which profile you select as the default is your decision, but Roku recommends the last profile the customer used.