mobile

Rolling out Roku: How?

Published on: January 26, 2021
blog-author-avatar
Written by:
Thijs Lowette

"Rolling out Roku: How?" is the second part of a 3-part series. You can read "Rolling out Roku: Why?" here, but "Rolling out Roku: THEOplayer?" has not yet been published.

You decided that you want to put your OTT app in the Roku Channel Store after reading our previous article, but you're not yet sure how to achieve this. This article walks you through three options to launch your Roku channel:

  1. Direct Publisher: easiest, but least flexible
  2. Custom App: most complex, but most flexible
  3. Partners: between easy and flexible

Direct Publisher

The easiest way to distribute a Roku channel is by using the Direct Publisher framework. You just need an existing video library, and you don't need to do any software development. Unfortunately, it's also the most restrictive approach. Use the quiz below to determine whether your app fits within the constraints of Direct Publisher (or check the boring tables on the Roku website).

Do your viewers need to log-in to access your app, or do you offer a subscription-based service (SVOD, e.g. Netflix) or transaction-based service (TVOD/pay-per-view)?

1/5

 

 

Did you survive the test? (Great! 🙌) Here are the next steps to launch your channel through Direct Publisher:

  1. Prepare Feed
  2. Create Account
  3. Submit Channel

Prepare Feed

Roku requires you to submit "a feed" through the Direct Publisher wizard. A feed is a list of items, and each item describes your video (e.g. title, thumbnail) and provides a URL of your (HLS/DASH/MP4) video. A feed adheres to a formatting style, and Roku accepts two styles:

  1. JSON (AKA "Direct Publisher Feed"). It's relatively intuitive (if you're familiar with JSON) and it's Roku's in-house specification.
  2. MRSS. MRSS is an established media syndicating approach, and is also supported by Roku.

Roku really encourages you to use their JSON over the generic MRSS. Only consider MRSS if you have short-form video content, no ads and are using a service which provides MRSS feeds out-of-the-box.

{
"providerName": "Roku Developers",
"language": "en-US",
"lastUpdated": "2020-03-15T02:01:00+02:00",
"shortFormVideos": ...,
"movies": [{
"id": "rsg_unit1_intro",
"title": "Introduction to the course",
"content": {
"dateAdded": "2020-07-22T02:32:24Z",
"videos": [{
"videoType": "MP4",
"url": "https://image.roku.com/ZHZscHItMTc2/rsg-unit1-intro-v3.mp4",
"quality": "HD"
}],
"duration": 178,
"language": "en-us"
},
"thumbnail": "https://image.roku.com/ZHZscHItMTc2/video1-intro-course-v2.png",
"shortDescription": "Watch the introduction to the \"SceneGraph: Build a Channel\" development course. This video outlines the course syllabus.",
"releaseDate": "2020-07-21",
"longDescription": "Watch the introduction to the \"SceneGraph: Build a Channel\" development course. This video outlines the course syllabus.",
"tags": [
"rsg_row"
],
"genres": [
"educational"
]
}],
"series": ...,
"playlists": [{
"name": "rsg_category_row",
"itemIds": ["rsg_unit1_intro", "rsg-unit2-developerSetup", "video3-scenegraph-overview", "rsg - unit4 - contentFeed", "video5-grid-screen-1", "video5-grid-screen-2", "video6-video-player", "video7-debugger", "video8-detailsScreen-part1", "video8-detailsScreen-part2", "video9-episodesScreen-part1", "video9-episodesScreen-part2", "video10-videoAds-part1", "video10-videoAds-part2", "video11-subscriptions-part1", "video11-subscriptions-part2", "video12-deep-linking-part1", "video12-deep-linking-part1", "video12-deep-linking-part2", "video12-deep-linking-part3", "video12-deep-linking-part4", "video12-deep-linking-part5", "video13-certification-testing-part1", "video13-certification-testing-part2"]
}],
"categories": [{
"name": "Roku SceneGraph Developers",
"playlistName": "rsg_category_row",
"order": "manual"
}]
}

Example of a modified JSON sample.

Read more on Roku's article on "Creating the content feed". You can also team up feed providers if this step is a bit too intimidating.

Create Account

You need to setup a Roku customer account and enrol in the Roku Developer program, as explained in Roku's Getting Started guide. This is free, but you need to provide some billing information if you're monetising your app.

Roku on "Direct Publisher".

Submit Channel

Through your account dashboard, you can publish a channel. You'll have to supply some branding assets, a link to your feed, and some other minor things. That's basically it.

Custom App

You'll build a custom Roku application if your requirements are a bit more complex. More complex means: you failed the above test, or you read Roku's "Benefit Comparison" and decided that custom development is the way to go.

We won't go too in-depth on custom app development, but we'll elaborate on three cornerstones:

  1. BrightScript and SceneGraph
  2. Getting Started
  3. Resources

BrightScript and SceneGraph

BrightScript and SceneGraph are the two development frameworks in Roku. You probably won't ever use these two technologies outside of the Roku ecosystem.

  • BrightScript is a scripting language which you'll use to program the behavior. It kinda resembles Python and was invented by Roku's CEO.
  • SceneGraph is the UI framework and leverages XML.

Let's try an analogy. BrightScript is the Java of Android app development, or the Swift of iOS development. SceneGraph is the XML Layout of Android app development, or the Storyboard of iOS development.

Getting Started

Let's not reinvent the wheel, and instead refer to Roku's official developer portal.

Resources

Honestly, there's so much information on https://developer.roku.com/en-ot/overview, but here's an extract.

Partners

It's possible that Roku is of strategic importance to you, but that you're lacking time, resources or know-how. Embarking in a partnership with industry partners can be a great way to speed-up your time-to-market, or to overcome a (technical) resource hurdle. Additionally, working with partners mitigates risk since they bring expertise and liability to the table.

A partnership often goes in conjunction with the choice between the previously mentioned Direct Publisher or custom channel.

Let's discuss three types of partnerships:

  1. End-to-End
  2. App Developer
  3. SDK

End-to-End

If you opt for end-to-end, your partner will take care of your Roku app (and most likely also your hosting, your feeds, your CDN, your iOS app, etc.). Often, you can provide input on the styling of your Roku channel, or configure it through a dashboard. Examples of such end-to-end providers are 24i, Vimeo and dcafe.

Using an end-to-end service may be the smart thing to do if you would like to outsource the bulk of the complexity, and have limited resources.

App Developer

There are third-party Roku developers out there for you to contract. These development companies or freelancers can build your custom Roku app, or can help you get your Direct Publisher app up and running. An app developer is typically an extension of your team, but they offer know-how on the Roku ecosystem.

SDK

It might make sense to use a commercial (or open-source) Roku SDK offered by industry partners. A Roku SDK is a software library which you implement in your custom Roku project. The SDK exposes APIs which facilitate the implementation of your use-cases.

When should you consider using an SDK? It depends, but the main motivators are time, money and complexity.

  • Encapsulating a feature set to an SDK can reduce the complexity and risk of your app.
  • An SDK may come with useful pre-integrations or samples. For example, you may have a stream with server-side ad-insertion, and it would be great if your Roku SDK automatically shows them in the timeline, or offers an API to access them.
  • Perhaps you want to simplify your app ecosystem by using SDKs from one player vendor, since their APIs and supported features are quite similar.

There are different kind of SDKs:

Using an SDK doesn't mean you magically have an app in the Roku Channel Store. You still need to implement it into your custom app, and publish this app through your Roku dashboard.

SalaryGraph-01

Average hourly salary of freelance Roku developers on Roku versus Roku engineers versus your time. The author cannot be held liable for the accuracy. 

TL;DR

Build a custom Roku channel if you A) need a custom UI, B) are using DRM or C) need account authorisation. (There's plenty of information on https://developer.roku.com.) If you don't need any of those three, consider a no-code Direct Publisher channel. Team up with a partner to speed up your time-to-market or to reduce risk & complexity.

The next article in the series, "Rolling out Roku: THEOplayer?", will explain what we at THEOplayer are doing with Roku. We'll also build an SDK on the THEOplayer Developer Portal and deploy our first custom app! Subscribe to our newsletter if you want to be the first to know when this article is online.

Want to talk more about Roku, or our platform support? Contact our THEO experts.

Contact us

Want more information on one of our THEO solutions? Get in contact with us today.