Creating Your Own Custom Screensaver on Roku

Amitdogra
2 min readJan 21, 2024

--

Screensavers on Roku add a touch of personalization to the user experience, turning idle moments into visually engaging displays. In this guide, we’ll explore the world of Roku screensavers, understand their limitations, and walk through the process of creating our screensaver.

Understanding Roku Screensavers

Roku screensavers are standalone apps invoked when the device is idle. Unlike streaming channels, screensavers do not accept user input and are automatically triggered based on a user-specified idle time. When a screensaver is active, any user input returns them to the streaming channel.

Screensavers operate in a separate BrightScript context, distinct from streaming channels. This ensures a clean execution environment and prevents data sharing between screensavers and channels.

Prohibited Screensaver Features

To maintain a streamlined experience, certain features are restricted in screensavers:

  • DynamicComponent libraries: Screensavers cannot include dynamic components.
  • Ad insertion: Monetization through ads is not allowed in screensavers.
  • In-app purchases: Screensavers cannot implement in-app purchasing functionality.
  • Deep links: Deep linking from screensavers is prohibited.
  • User-initiated interactivity: Screensavers should not respond to user input.

Discovery and Settings

Screensavers are discovered in the Roku UI under Settings > Theme > Screensavers. Purchased screensavers are not displayed on the Roku Home screen. The RunScreenSaverSettings() function allows developers to implement customizable settings for their screensavers.

Important: A screensaver must include a manifest entry named screensaver_title with the screensaver's title. This entry is exclusive to screensavers and should not be used for other channels.

Usable Components

Screensavers typically use roScreen or roImageCanvas to display visuals. Components that accept user input, such as roAudioPlayer and roChannelStore, are not supported in screensavers.

SceneGraph Screensavers

While roScreen and roImageCanvas are common, SceneGraph can also be used for screensaver development. However, user input and video playback in SceneGraph screensavers are not supported.

See the screensaver sample channels for examples.

--

--

Amitdogra

Android developer 🚀 ✨ #Android #kotlin #Streaming #Roku #Web #Nodejs