Roku SDK Documentation : The Roku Channel Developer Program

Table of Contents


Roku offers content owners and publishers the ability to create their own channels on the Roku devices and to make those channels available to Roku users. The Roku SDK documentation contains the necessary information for creating a Roku channel, including design tools and sample applications. The Roku Developer Tools License Agreement contains the terms of use of the Roku SDK and associated tools. After creating a channel application, content owners and publishers may upload the application to the Roku Developer Site for distribution to Roku users. They have to agree to the terms of Roku Application Distribution Agreement to distribute their content on the Roku Platform. The agreement stipulates commercial terms including revenue and/or advertising inventory revenue share.

There are two methods for distributing Roku channels through the Roku Developer Site after they have been uploaded: the Roku Channel Store for Public Channels, or as a non-certified channel.

Roku Public Channels 
Public Channels created for the Channel Store should be those intended for the widest possible distribution, without restriction other than as required for business reasons, such as payment of a monthly subscription. Public channels should be submitted to Roku for acceptance into the Channel Store. If accepted by Roku, a channel is made available through the Channel Store to all Roku users.

Roku non-certified channels 
A channel may be uploaded to the Roku Developer Site and made available to users through the non-certified channel mechanism. These channels are not available through the Channel Store, but can be accessed by Roku users by means of a unique channel access code provided to users. Channels intended for a very narrow audience, or carrying restrictions on access, such as membership in a group or organization, are better suited for non-certified channels. There is no Roku approval process necessary to publish a non-certified channel.

Welcome to the Roku Streaming Player Developer Guide

This Developer Guide is designed to help you quickly come up to speed on the Roku platform architecture, Channel Store, and the basics of how to develop and deploy an application to the Roku player in development mode, and to the Channel Store as a published application to end users. In this Developer Guide we refer to the development of new channels on the Roku player as "applications" since they consist of a set of scripts and related assets. Channels can access video streams, music, photos, or perform other functions enabled by the SDK.

Developing with the Roku SDK

The Roku SDK consists of a set of documentation and sample applications that enable channels to be developed for the Roku Streaming Player. To understand the Roku SDK, here are the key documents:

  • The Developer Guide covers the architecture, programming language, development process, and channel deployment requirements.
  • The BrightScript Reference Manual will bring you up to speed on the language and serves as a reference for the core components. BrightScript is the programming language used to develop channel applications on the Roku Streaming Player. BrightScript is a scripting language optimized to be the high level glue that ties together BrightScript Components and the Internet.
  • The Component Reference guide describes the Roku Streaming Player platform components that expose APIs to BrightScript.

The entire documentation set includes the following: 

Manual
Section 
Description
Developer Guide An introduction to developing for the Roku platform (this manual)
 Device Registration and LinkingLinking the Roku Streaming Player channel to an account on your site
 Streaming SpecificationsContains information on video encoding guidelines, trick play, and closed caption support
 Debug Console Commands Summarizes the debugging console commands
BrightScript Language Reference BrightScript programming language reference information
BrightScript Component Reference Reference information for the components exposed to the BrightScript programming language
Channel Packaging And Publishing Information on creating a channel package and uploading it to the Developer Site
Eclipse Plugin Guide Installing and using the Brightscript programming language in the Eclipse IDE
External Control Guide Information on the external control protocol that allows control of the Roku player over the network
Web Service API Information on the web service APIs developers can use to connect to the Channel Store
Roku Advertising Framework Information on using the Roku ad insertion API
SceneGraph Core Concepts A guide for developing applications using the Roku SceneGraph XML APIs
SceneGraph API Reference Reference material for the Roku SceneGraph XML APIs
SceneGraph Samples A repository of sample channels that use the Roku SceneGraph XML APIs
Release Notes A list of the SDK changes for each Roku player firmware revision

What Do I Need to Get Started?

Here's a list of the things you'll need to get started writing applications for the Roku Streaming Player:

  • Roku Streaming Player with Software Release 2.7 or later
  • Roku SDK (Development Kit Documentation and Sample Applications)
  • Development Workstation with Text Editor and Terminal Application
  • Standard Web Browser (Firefox, Internet Explorer or equivalent)

Roku Models and Features

With the release of the Roku 2 platform, Roku's product line has expanded to the point that there are significant capability differences between many of the models. While all the models have the same basic streaming video playback support, the hardware internals of the models will support different levels of game play. There is even a new SDK method, SetMaxVideoDecodeResolution() (a member of roVideoScreen or roVideoPlayer), that only has an effect on units with an OpenGL implementation. Please see the BrightScript Component Reference for more details on this method. 

The Roku models ship with incompatible power supplies as specified in the table below. If the wrong power supply is used, there is a risk of damaging the Roku unit when the power current of the supply is greater than what is specified for your Roku unit. On the other hand, if the power supply current is less than the Roku's specified power current, you run the risk of spontaneous reboots when the Roku unit cannot draw enough current.


When publishing your channel, you will have the opportunity to specify hardware requirements like "USB", "Roku 2", or "Bluetooth Game Remote". The tables below should help you in determining the target models for your channel.

Current Models

 Roku ExpressRoku Express+Roku Streaming StickRoku Streaming Stick+Roku UltraRoku TV4K Roku TV4K Roku TVRoku TV
Code NameGilbertGilbertAmarillo 1080Amarillo 4KBryanLibertyFt. WorthLongviewMidland
roDeviceInfo.GetModel()3900X3910X3800X3810X4660X5000X6000X7000X

8000X

CPUARM Cortex A53ARM Cortex A53ARM Cortex A53ARM Cortex A53ARM Cortex A53MIPS 1 GHzARM quad coreARM quad coreARM
Accelerated Graphics API 1OpenGL ES 2.0OpenGL ES 2.0OpenGL ES 2.0OpenGL ES 2.0OpenGL ES 2.0N/aOpenGL ES 2.0OpenGL ES 2.0OpenGL ES 2.0
RAM512 MB512 MB512 MB1 GB1 GB512 MB1.5 GB1 GB512MB (256M internal; 256M external)
NVM (Flash) Storage256 MB256 MB256 MB512 MB512 MB256 MB512 MB512 MB512 MB
HDMI/HDCP1.4/2.21.4/2.21.4/2.22.0a/2.22.0a/2.21.42.0/2.22.0a/2.21.4
Composite Video OutN/aYesN/aN/aN/aN/aN/aN/aN/a
Max UI Resolution720p720p720p1080p1080p1280x7201920x10801920x1080720p
Max Playback Resolution1080p1080p1080p4K60fps, HDR4K60fps, HDR1920x1080, 60fps23840x21603840x21601080p
HDRN/aN/aN/aN/aHDR 10N/aN/aHDR10 and/or Dolby Vision supported, varies by modelN/a
RemoteIR + TV Power/VolIR + TV Power/VolWiFiWiFiWiFi w/HPIRIR, Trinity3Trinity RF (HP, Voice, Locator)IR

Supported Models

These models are no longer manufactured but still run the latest Roku OS and are still supported.

              

Roku Streaming StickRoku ExpressRoku Express PlusRoku PremiereRoku Premier PlusRoku Ultra
Code NameBriscoeLittlefieldLittlefieldCooperCooperCooper

roDeviceInfo.GetModel()

3600X3700X3710X4620X4630X4640X

CPU

ARM Cortex A7 quad core 800 MHzMIPS 900 MHzMIPS 900 MHzARM Cortex A53 quad core 1.2 GHzARM Cortex A53 quad core 1.2 GHzARM Cortex A53 quad core 1.2 GHz

Accelerated Graphics API 1

OpenGL ES 2.0n/an/aOpenGL ES 2.0OpenGL ES 2.0OpenGL ES 2.0

RAM

512 MB512 MB512 MB1 GB1 GB1 GB

NVM (Flash) Storage

256 MB256 MB256 MB512 MB512 MB1 GB
HDMI Version1.3a1.41.42.0a2.0a2.0a
HDCP Version1.41.41.42.22.22.2

Composite Video Out

n/an/ayesn/an/an/a

HDMI 720p Video Out

yesyesyesyesyesyes

HDMI 1080p Video Out

yesyesyesyesyesyes
HDMI 2160p Video Outn/an/an/ayesyesyes
Max UI Resolution1280x7201280x7201280x7201920x10801920x10801920x1080
Max Playback Resolution1920x10801920x10801920x10804K UHD, 60fps4K UHD, 60fps4K UHD, 60fps
HDRn/an/an/an/aHDR10HDR10
S/PDIF Portn/an/an/an/an/ayes

Wi-Fi

b/g/n dual-bandb/g/nb/g/nb/g/n/ac dual-bandb/g/n/ac dual-bandb/g/n/ac dual-band

Ethernet Port

n/an/an/an/a10/100 Mbps10/100 Mbps

USB Port

n/an/an/an/an/ayes

microSD Slot

n/an/an/an/ayesyes

Enhanced Remote

Supportedn/an/aSupported, not includedSupportedSupported
Gaming Buttonsn/an/an/aSupported, not includedSupported, not includedSupported
Motion Controln/an/an/an/an/an/a
Private ListeningSupported, Roku Mobile AppSupported, Roku Mobile AppSupported, Roku Mobile AppSupported, Roku Mobile AppSupported, via remote and Roku Mobile AppSupported, via remote and Roku Mobile App
Voice Remote SearchSupported, not includedn/an/aSupported, not includedSupported, not includedyes

                                                

Roku LT

Roku 2 HD

Roku 2 XD

Roku 2 XS

Roku LTRoku HDRoku Streaming StickRoku 3Roku LTRoku 1, Roku SERoku 2 Roku Streaming StickRoku 2Roku 3Roku 4
Code NameGigaGigaGigaGigaPaoloPaoloJacksonAustinTylerTylerTylerSugarlandMustangMustangDallas

roDeviceInfo.GetModel()

2400X

3000X

3050X

3100X

2450X2500X3400X, 3420X4200X2700X2710X2720X3500X4210X4230X4400X

CPU

ARM11 600 MHz

ARM11 600 MHz

ARM11 600 MHz

ARM11 600 MHz

MIPS 400 MHz

MIPS 400 MHz

ARM11 600 MHzARM Cortex A9 dual core 1 GHzMIPS 600 MHzMIPS 600 MHzMIPS 600 MHzARM11 600 MHzARM Cortex A9 dual core 1 GHzARM Cortex A9 dual core 1 GHz

 ARM quad core

Accelerated Graphics API 1

OpenGL ES 2.0

OpenGL ES 2.0

OpenGL ES 2.0

OpenGL ES 2.0

n/an/aOpenGL ES 2.0OpenGL ES 2.0n/an/an/aOpenGL ES 2.0OpenGL ES 2.0OpenGL ES 2.0OpenGL ES 2.0

RAM

256 MB

256 MB

256 MB

256 MB

256 MB256 MB256 MB512 MB512 MB512 MB512 MB512 MB512 MB512 MB1.5 GB

NVM (Flash) Storage

256 MB

256 MB

256 MB

256 MB

256 MB256 MB256 MB256 MB256 MB256 MB256 MB256 MB256 MB256 MB512 MB
HDMI Version1.3a1.3a1.3a1.3a1.3a1.3a1.3a1.41.4a1.4a1.4a1.3a1.41.42.0
HDCP Version1.41.41.41.41.41.41.41.41.41.41.41.41.41.42.2

Composite Video Out

yesyesyesyesyesyesn/an/ayesyesyesn/an/an/an/a

HDMI 720p Video Out

yesyesyesyesyesyesyesyesyesyesyesyesyesyesyes

HDMI 1080p Video Out

n/a

n/a

yesyesn/an/ayesyesn/ayesyesyesyesyesyes
HDMI 2160p Video Outn/an/an/an/an/an/an/an/an/an/an/an/an/an/ayes
Max UI Resolution1280x7201280x7201280x7201280x7201280x7201280x7201280x7201280x7201280x7201280x7201280x7201280x7201280x7201280x7201920x1080
Max Playback Resolution1280x720, 60fps1280x720, 60fps1920x1080, 60fps

1920x1080, 60fps

1280x720, 60fps1280x720, 60fps1920x10801920x1080, 60fps31280x720, 60fps1920x1080, 60fps1920x1080, 60fps1920x10801920x1080, 60fps31920x1080, 60fps34K UHD, 60fps
S/PDIF Portn/an/an/an/an/an/an/an/an/an/an/an/an/an/ayes

Wi-Fi

b/g/nb/g/nb/g/nb/g/nb/g/nb/g/nb/g/nb/g/n dual-bandb/g/nb/g/nb/g/n dual-bandb/g/n dual-bandb/g/n dual-bandb/g/n dual-bandb/g/n/ac dual-band

Ethernet Port

n/a

n/a

n/a

10/100 Mbpsn/an/an/a10/100 Mbpsn/an/an/an/a10/100 Mbps10/100 Mbps10/100 Mbps

USB Port

n/a

n/a

n/a

yesn/an/an/ayesn/an/an/an/ayesyesyes

microSD Slot

n/a

yesyesyesn/an/an/an/anon/anon/ayesyesyes

Enhanced Remote

n/a

Bluetooth supported, not includedBluetooth supported, not includedBluetoothn/an/aBluetoothWi-Fi Directn/an/aWi-Fi DirectBluetoothWi-Fi Direct supported, not includedWi-Fi DirectWi-Fi Direct
Gaming Buttonsn/aSupported, not includedSupported, not includedSupportedn/an/aSupportedSupportedn/an/an/aSupportedSupported, not includedSupportedSupported
Motion Controln/aSupported, not includedSupported, not includedSupportedn/an/aSupportedSupportedn/an/an/an/aSupported, not includedSupportedSupported
Private Listeningn/an/an/an/an/an/an/aSupported via remoten/an/aSupported via remoten/aSupported via remote, not includedSupported via remoteSupported via remote
Voice Remote Searchn/an/an/an/an/an/an/aSupported, not includedn/an/an/an/aSupported, not includedSupportedSupported

Notes

1 The OpenGL ES 2.0 API is currently only available under NDA to select partners.

2 Supports 720@60fps with some frame drops when video is not scaled to 1080. Should set ContentMetaData.maxFrameRate to 60 so that player doesn't scale the video to 1080.

3 Supports 60fps at 720p. Supports 30fps at 1080p.

Legacy Models

These models are discontinued and are no longer supported.

 

Roku DVP

Roku SD

Roku HD

Roku HD-XR

Roku HDRoku XDRoku XD|S
Code NameGriffinRedwoodRedwoodRedwoodPicoPicoPico

roDeviceInfo.GetModel()

N1000

N1050

N1100

N1101

2000C2050X, 2050N2100X, 2100N

CPU

MIPS 400 MHz

MIPS 400 MHz

MIPS 400 MHz

MIPS 400 MHz

MIPS 400 MHzMIPS 400 MHz

MIPS 400 MHz

Accelerated Graphics API

n/a

n/a

n/a

n/a

n/an/an/a

RAM

256 MB

256 MB

256 MB

256 MB

256 MB256 MB256 MB

NVM (Flash) Storage

64 MB

64 MB

64 MB

256 MB

64 MB64 MB256 MB

Composite Video Out

yesyesyesyesyesyesyes
S-Video Outyesn/ayesyesn/an/an/a
Component Outyesn/ayesyesn/an/ayes

HDMI 720p Video Out

yes

no

yesyesyesyesyes

HDMI 1080p Video Out

no

no

noyesnoyesyes
S/PDIF Portyesn/ayesyesn/an/ayes

Wi-Fi

b/gb/gb/gb/g/n dual-bandb/gb/g/nb/g/n dual-band

Ethernet Port

yesyesyesyesyesyesyes

USB Port

no

no

noyesn/an/ayes

Max. Channel Size

750 KB 750 KB750 KB 2 MB750 KB 750 KB 2 MB

FHD User Interface Requirements and Recommendations

The following are the requirements and recommendations for creating and using a 1080p user interface for your channel or application.

To create and use a 1080p user interface in a channel or application, you must set up the manifest file as described in Manifest File.

The following are the graphic image sizes and formats for a 1080p user interface.

Graphic Image
Size
Format
Channel logo540x405 pixelsJPEG
Splash screen1920x1080 pixelsJPEG
Roku Search channel buttons

165x60 pixels

PNG
Roku Search brand tiles

147x113 pixels

JPEG

Attachments:

Channel_Checklist_v_1_14.xlsx (application/vnd.openxmlformats-officedocument.spreadsheetml.sheet)
architecturecrppd.png (image/png)
fig5.png (application/octet-stream)
fig4.png (application/octet-stream)
fig3.png (application/octet-stream)
fig2.png (application/octet-stream)
fig1.png (application/octet-stream)
architecture.png (application/octet-stream)