Table of Contents
Root Level
The root level of all Roku Channels must contain a manifest
file (pkg:/manifest
) containing important attributes for the application. The manifest file must be UTF-8 encoded.
The attributes in the manifest file include, but are not limited to, the following:
- name and version number of the application
- channel icon
- splash screen image
Manifest Guidelines
- Each attribute is on a separate line, and has the form
name=value
- Each
name=value
pair must end with a newline character, or it may not be parsed by the firmware - The last line must end with a newline character
- Empty lines are ignored
- Lines beginning with a '#' (number sign) are comment lines and are ignored
- All graphics files specified in the manifest file should be included in the
images
directory. - The URI to set the path to the files should use the
pkg:
resource prefix, such aspkg:/images/splash-screen.png
.
Example Manifest
# Channel Details title=HeroGridChannel subtitle=Roku Sample Channel App major_version=1 minor_version=1 build_version=1 # Channel Assets mm_icon_focus_hd=pkg:/images/channel-poster_hd.png mm_icon_focus_sd=pkg:/images/channel-poster_sd.png # Splash Screen + Loading Screen Artwork splash_screen_sd=pkg:/images/splash-screen_sd.jpg splash_screen_hd=pkg:/images/splash-screen_hd.jpg splash_screen_fhd=pkg:/images/splash-screen_fhd.jpg splash_color=#808080 splash_min_time=0 # Resolution ui_resolutions=fhd confirm_partner_button=1
Required Attributes
These are the minimum attributes required for every Roku channel:
Attribute | Type | Description | Sample manifest entry | Specification |
---|---|---|---|---|
title | string | name of the channel | title=Roku Media Player | |
major_version | integer | major portion of the channel version | major_version=1 | |
minor_version | integer | minor portion of the channel version | minor_version=2 | |
build_version | integer | build number | build_version=00150 | |
mm_icon_focus_hd | string | local URI for the HD channel icon. NOTE: The channel will not appear on devices or be accessible after publication without this attribute pointing to a valid image. The image's file name and file type must also match. | mm_icon_focus_hd=pkg:/images/channel-icon_HD.png | 336x210 |
mm_icon_focus_sd | string | local URI for the SD channel icon. NOTE: The channel will not appear on devices or be accessible after publication without this attribute pointing to a valid image. The image's file name and file type must also match. | mm_icon_focus_sd=pkg:/images/channel-icon_SD.png | 246x140 |
splash_screen_hd | string | local URI for the HD splash screen displayed when the channel is launched | splash_screen_hd=pkg:/images/splash-screen_HD.png | 1280x720 |
splash_screen_sd | string | local URI for the SD splash screen displayed when the channel is launched | splash_screen_hd=pkg:/images/splash-screen_SD.png | 720x480 |
Optional Attributes
The following categories of attributes are optional:
Splash Screen Attributes
Attribute | Type | Description | Sample manifest entry | Specification |
---|---|---|---|---|
splash_color | hex value | background color to use if the splash screen image is not full screen | splash_color=#121212 | |
splash_min_time 1 | integer | minimum amount of time (in milliseconds) to display the splash screen | splash_min_time=1500 | |
splash_screen_fhd 2 | string | local URI for the FHD splash screen | splash_screen_fhd=pkg:/images/splash-screen_FHD.png | 1920x1080 |
splash_rsg_optimization | integer | NOTE: Roku recommends that you do not use this attribute at this time as it may deplete your channel's available memory resources. Set this attribute to remove the black screen flash in SceneGraph channels. This is only applicable for SceneGraph channels and only if the first screen is a SceneGraph component. | splash_rsg_optimization=1 |
1 If no value is specified, then 1600 (1.6 seconds) is used. If 0 is specified, then there is no default time, so the splash screen disappears as soon as the application displays its first screen. (This may result in the appearance of flashing, if your application shows its first screen quickly).
2 The FHD splash screen image is scaled down for HD display mode but this attribute can be used to specify a resolution-specific splash screen image.
Graphics Scaling Attributes
Attribute | Type | Description | Sample manifest entry |
---|---|---|---|
ui_resolutions 1 | comma separated values | A comma-separated list of up to three strings that identify the UI resolutions the application has been designed to support. | ui_resolutions=sd,hd,fhd |
uri_resolution_autosub 2 | comma separated values | Provides a flexible way to specify graphical image URIs that are automatically modified to replace a specified string with a string that gets a resolution-specific graphical image. | uri_resolution_autosub=$$RES$$,SD,720p,1080p |
1 The default setting is ui_resolutions=sd,hd
sd
Applications designed for standard definition 720x480hd
Applications designed for high definition 1280x720fhd
Applications designed for full high definition 1920x1080
2 The attribute value is a comma-separated list of four strings that specify the string to be replaced along with the replacement strings for SD, HD and FHD resolutions.
For example, suppose the manifest includes this line: uriresolutionautosub=$$RES$$,SD,720p,1080p And the Roku player supports full high-definition resolution.
Then if the application specifies a URI of: http://www.roku.com/testChannel/assets/$$RES$$/rokuTV.jpg. At runtime that URI will be modified to: http://www.roku.com/testChannel/assets/1080p/rokuTV.jpg and the application will get the full-high definition version of the graphical image in the specified directory.
Launch Requirement Attributes
Attribute | Type | Description | Sample manifest entry |
---|---|---|---|
supports_input_launch | integer | The roInputEvent is used to check whether a deep link has been passed into the application while your channel is running. This enables your application to deep link into content without re-launching your channel. This attribute must be added to the channel manifest for this functionality to work. | supports_input_launch=1 |
requires_audiometadata | integer | The roAudioMetadata component requires the use of a dynamically loaded library that is not part of the initially booted image. Therefore, an entry must be added to the manifest of any applications that use the roAudioMetadata component so that it can be loaded when the channel is launched. | requires_audiometadata=1 |
requires_gaming_remote | integer | Specifies that a gaming remote must be linked to the Roku Player to launch the application. If not, a dialog box is presented to the user. | requires_gaming_remote=1 |
requires_mkv | integer | Playing MKV files requires the use of a dynamically loaded library that is not part of the initially booted image. Therefore, an entry must be added to the manifest of any applications that require MKV support so that support is enabled when the channel is launched. | requires_mkv=1 |
network_not_required | integer | Set to 1 to specify the application does not require the network (such as the USB Media Player). This lets the user launch an application even if there is no network connection. | network_not_required=1 |
bs_libs_required | string | Specifies the BrightScript libraries required for the application. | bs_libs_required=roku_ads_lib |
usb_media_handler | integer | Set to 1 to specify if the channel can be auto-launched when a USB device is inserted. | usb_media_handler=1 |
DRM Attributes
Attribute | Type | Description | Sample manifest entry |
---|---|---|---|
requires_aaxs_drm | integer | Downloads the required library to use Adobe Access DRM. | requires_aaxs_drm=1 |
requires_aaxs_version | value | Specifies the version of Adobe Access to use. Roku currently supports version 1.0. | requires_aaxs_version=1.0 |
requires_verimatrix_drm | integer | Downloads the required library to use Verimatrix DRM. | requires_verimatrix_drm=1 |
requires_verimatrix_version | value | Specifies the version of Verimatrix DRM to use. Roku currently supports version 1.0. | requires_verimatrix_version=1.0 |
See Content Protection for implementation details.
Special Purpose Attributes
Attribute | Type | Description | Sample manifest entry | ||
---|---|---|---|---|---|
hidden | integer | The hidden property tells the firmware to not display the app on the home screen. Hidden apps can still be launched over the network via the External Control API. | hidden=1 | ||
playonly_aware | integer | Attribute to specify the application responds to the Play Only remote control button event. If not set, the application will receive the Play event instead when the user selects the button. | playonly_aware=1 | ||
rsg_version | value | Sets the SceneGraph observer callback model. If using firmware v9 or above, please use rsg_version=1.2. This enables a new internal mechanism for processing component <script> tags that optimizes the resulting compiled script code resulting in a reduced initial startup time and lesser memory usage while preserving compatibility. Note that Eval() is deprecated. Eval() cannot be used with The manifest entry defaults to 1.1 as of firmware v7.5 if it's not specified in the manifest. Please note that support for the “rsg_version=1.0” manifest flag is deprecated as of Roku OS 8. This deprecation means that the 1.0 features continue to work in Roku OS 8, but will no longer be supported (and thus should not be expected to work) starting with the next major firmware release. All channels will have to adopt the current observer callback model in successive firmware updates. | rsg_version=1.0 | ||
automatic_audio_guide_disabled | integer | Set to 1 to disable Audio Guide within a channel. | automatic_audio_guide_disabled=1 | ||
bs_prof_enabled | boolean | Enable BrightScript profiling | bs_prof_enabled=true | ||
confirm_partner_button | integer | Available since firmware version 7.7 This new feature has been added that launches a confirmation dialogue before launching a channel when the user presses one of the four channel-specific buttons on the Roku remote. This minimizes the number of unintended channel launches after accidentally hitting a button while fast forwarding or rewinding content in a different channel. When this manifest flag is set to “1” (confirm_partner_button=1), the OS will display a confirmation HUD (Head Up Display) any time the user presses a partner channel button while in that app. By default, the OS will always display this confirmation HUD when a partner button is pressed during video playback, regardless of if the manifest flag has been set. | confirm_partner_button=1 | ||
suppress_unconnected_hud | integer | Available since firmware version 7.7 Manifest entry for overriding network connectivity HUD. This attribute is used to override the system level display that indicates when media playback is interrupted due to network connection failures. For more information on the connectivity HUD, please read the related support article | suppress_unconnected_hud=[1|0] 1 suppresses, 0 enables. | ||
game | integer | Available since firmware version 9 All game channels must add the game manifest entry to their manifest file. This flag prevents the channel from having audio/sound effects delays in the game. | game=1 |
Screensaver Attributes
For an overview and guide on screensavers, see Screensavers on Roku.
Required Screensaver Attributes
For stand-alone screensavers, only the following attributes are required:
Attribute | Type | Description | Sample manifest entry |
---|---|---|---|
screensaver_title | string | name of the screensaver displayed in Settings | screensaver_title=Dog Screensaver |
major_version | integer | major portion of the screensaver version | major_version=1 |
minor_version | integer | minor portion of the screensaver version | minor_version=2 |
build_version | integer | build number | build_version=150 |
Optional Screensaver Attributes
Attribute | Type | Description | Sample manifest entry |
---|---|---|---|
screensaver_private | integer | Attribute to specify if the screensaver will only run within a channel. | screensaver_private=1 |
Legacy Attributes (Deprecated)
The following attributes are no longer required or used by Roku devices:
Attribute | Type | Description | Sample manifest entry |
---|---|---|---|
subtitle | string | Short promotional description of your application for display beneath the title | subtitle=providing the latest in cool videos |
mm_icon_side_hd | string | Local URI for side unfocused image for HD | mm_icon_side_hd=pkg:/images/side-hd.png |
mm_icon_side_sd | string | Local URI for side unfocused image for SD | mm_icon_side_sd=pkg:/images/side-sd.png |
requires_bluetooth | integer | Specifies that a Bluetooth remote must be linked to the box to launch the app. If not, a dialog box is presented to the user. This attribute has been superseded by requires_gaming_remote . | requires_bluetooth=1
|
Attachments:
confirm_partner_button.jpg (image/jpeg)
confirm_partner_button.jpg (image/jpeg)