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:
- Direct Publisher: easiest, but least flexible
- Custom App: most complex, but most flexible
- Partners: between easy and flexible
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).
Did you survive the test? (Great! 🙌) Here are the next steps to launch your channel through Direct Publisher:
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:
- JSON (AKA "Direct Publisher Feed"). It's relatively intuitive (if you're familiar with JSON) and it's Roku's in-house specification.
- 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",
"title": "Introduction to the course",
"shortDescription": "Watch the introduction to the \"SceneGraph: Build a Channel\" development course. This video outlines the course syllabus.",
"longDescription": "Watch the introduction to the \"SceneGraph: Build a Channel\" development course. This video outlines the course syllabus.",
"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"]
"name": "Roku SceneGraph Developers",
Example of a modified JSON sample.
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".
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.
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:
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.
Let's not reinvent the wheel, and instead refer to Roku's official developer portal.
- I'm a big fan of watching videos to get bootstrapped into a new technology. Roku provides a great "Getting Started" series to explain the basics, as well as tutorial on building your first channel through SceneGraph. I'd recommend starting here to ease into things.
- There's also cold documentation. Read up on preparing your Roku developer setup and deploying your first "Hello World!" app.
Honestly, there's so much information on https://developer.roku.com/en-ot/overview, but here's an extract.
- Specifications: supported streaming & DRM protocols, feed formatting, hardware specs, ...
- Developer tools: stream tester, layout editor, etc.
- Github: samples and much more.
- Release notes.
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:
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.
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.
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:
- Analytics SDKs, such as Conviva, Mux and Youbora.
- SSAI SDKs, such as Verizon Media and YoSpace.
- Video player SDKs, such as the THEOplayer Roku SDK.
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.
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.