@amazon-devices/kepler-media-content-launcher
The Content Launcher API supports searching, browsing, and playing content using different interfaces.
Remarks
Fire TV supports searching and launching content using a Fire TV remote, touch, or voice. The modality agnostic Content Launcher API supports searching, browsing, and playing content using different interfaces. All Content Launcher integrated apps should integrate the Account Login API to to send your app's login status to the Fire TV. For API details, see Content Launcher API and Account Login API Overview in the Kepler API reference.
Get started
Setup
-
Add the following library dependency to the
dependencies
section of your package.json file."@amazon-devices/kepler-media-content-launcher": "~2.0.0",
-
To access the Content Launche API, add following privileges in your manifest.toml.
schema-version = 1 [package] title = "<Your app title>" id = "com.amazondeveloper.media.sample" [components] [[components.interactive]] id = "com.amazondeveloper.media.sample.main" runtime-module = "/com.amazon.kepler.keplerscript.runtime.loader_2@IKeplerScript_2_0" launch-type = "singleton" # The category "com.amazon.category.kepler.media" is only necessary for the primary component, which is identified in the [[extras]] # section of the manifest using the "component-id" value. categories = ["com.amazon.category.main", "com.amazon.category.kepler.media"] [processes] [[processes.group]] component-ids = ["com.amazondeveloper.media.sample.main"] [offers] [[offers.interaction]] id = "com.amazondeveloper.media.sample.main" [[message]] uri = "pkg://com.amazondeveloper.media.sample.main" # Match the privileges used in [[offers.interaction]]. If privileges are not added, then use "*". sender-privileges = ["*"] receiver-privileges = ["self"] [[offers.module]] id = "/com.amazondeveloper.media.sample.module@ISomeUri1" includes-messages = ["pkg://com.amazondeveloper.media.sample.main"] [[extras]] key = "interface.provider" component-id = "com.amazondeveloper.media.sample.main" [extras.value.application] [[extras.value.application.interface]] interface_name = "com.amazon.kepler.media.IContentLauncherServer" # The "override_command_component" field is only necessary when the "component-id" specified in the [[extras]] # section differs from the one you're providing here. This allows you to use a different component for # command execution than the one initially defined in the extras, giving you flexibility in your # configuration setup. # For example, if you're using Account Login interface in addition to the Content Laucher interface # you would need to override the Account Login status attribute to be directed to the service # component with the following line: # override_command_component = { Status = "com.amazondeveloper.media.sample.interface.provider" } attribute_options = ["partner-id"] static-values = { partner-id = "<Your partner id>" } [needs] [[needs.module]] id = "/com.amazon.kepler.media@IContentLauncher1"
Note: The partner-id is the same unique identifier (
PARTNER_ID
) used in Fire OS launcher integration. Contact your Amazon representative for support and further clarification.
Related topics
Content Launcher Integration Guide
Modules
Last updated: Sep 30, 2025