Rolling out Roku: How?

Published on: January 11, 2021

Written by Thijs L., Solutions Architect at THEO Technologies & contributor at ottball.com. "Rolling out Roku: How?" is the second part of a 3-part series. "Rolling out Roku: Why?" was published on Jan 4th, but "Rolling out Roku: THEOplayer?" have 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 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 enroll 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 monetizing 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.

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.

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.

Average hourly salary of freelance Roku developers on Roku versus Roku engineers versus your time. The author cannot be held liable for the accuracy. This should be a pretty graph. Data comes from https://docs.google.com/spreadsheets/d/1duMXduA9UDELFTtaDIYujmnM5qZ1lhmo5eUw3unalN8/edit?usp=sharing. Feel free to expand.

TL;DR

Build a custom Roku channel if you A) need a custom UI, B) are using DRM or C) need account authorization. (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.

Wanna talk Roku? Reach out to our experts