At this time, Content Launcher and Account Login are available to select partners only.
Content Launcher, Account Login and Vega Media Controls are interrelated integrations. While each integration works independently with its corresponding manifest declarations, combining all three requires certain manifest entries to be overridden for proper functionality.
Below is a sample manifest configuration when all three integrations are included.
When integrating Vega Media Control with the W3C Media Player API, use the same manifest entries as shown in the sample.
Add these dependencies to your package.json:
{
"dependencies": {
"@amazon-devices/react-native-kepler": "^2.0.0+rn0.72.0",
"@amazon-devices/kepler-media-content-launcher": "^2.0.0",
"@amazon-devices/kepler-media-account-login": "^1.0.0",
"@amazon-devices/kepler-media-controls": "^1.0.0",
"react": "18.2.0",
"react-native": "0.72.0"
}
}
Sample Manifest Configuration
schema-version = 1
[package]
title = "Content Launcher Sample"
version = "0.1.0"
id = "<com.yourcompany.yourapp>"
[components]
[[components.interactive]]
id = "<com.yourcompany.yourapp>.main"
runtime-module = "/com.amazon.kepler.keplerscript.runtime.loader_2@IKeplerScript_2_0"
launch-type = "singleton"
categories = ["com.amazon.category.main","com.amazon.category.kepler.media"]
[[components.service]]
id = "<com.yourcompany.yourapp>.interface.provider"
runtime-module = "/com.amazon.kepler.headless.runtime.loader_2@IKeplerScript_2_0"
launch-type = "singleton"
[processes]
[[processes.group]]
component-ids = ["<com.yourcompany.yourapp>.main"]
[[processes.group]]
component-ids = ["<com.yourcompany.yourapp>.interface.provider"]
# Required for Vega SDK v0.19 or later
[[message]]
uri = "pkg://<com.yourcompany.yourapp>.main"
sender-privileges = ["*"]
receiver-privileges = ["self"]
[offers]
[[offers.interaction]]
id = "<com.yourcompany.yourapp>.main"
[[offers.service]]
id = "<com.yourcompany.yourapp>.interface.provider"
required-privileges = ["com.amazon.multimedia.privilege.session.manage"]
# Required for Vega SDK v0.19 or later
[[offers.module]]
id = "/<com.yourcompany.yourapp>.module@IUris1"
includes-messages = ["pkg://<com.yourcompany.yourapp>.main"]
[[extras]]
key = "interface.provider"
component-id="<com.yourcompany.yourapp>.main"
[extras.value.application]
[[extras.value.application.interface]]
interface_name = "com.amazon.kepler.media.IContentLauncherServer"
attribute_options = ["partner-id"]
# Replace <YOUR_PARTNER_ID> with your actual partner ID provided by Amazon
static-values = { partner-id = "<YOUR_PARTNER_ID>" }
# The above entry can alternatively be used as shown below.
# [extras.value.application.interface.static-values]
# partner-id = "<YOUR_PARTNER_ID>"
[[extras.value.application.interface]]
interface_name = "com.amazon.kepler.media.IAccountLoginServer"
attribute_options = ["Status"]
override_attribute_component = { Status = "<com.yourcompany.yourapp>.interface.provider" }
# Below IMediaPlaybackServer entry is needed for KMC integration. Needs to be added for Content Launcher to work.
[[extras.value.application.interface]]
interface_name = "com.amazon.kepler.media.IMediaPlaybackServer"
command_options = [
"Play",
"Pause",
"StartOver",
"Previous",
"Next",
"SkipForward",
"SkipBackward",
]
attribute_options = ["AudioAdvanceMuted"]
features = ["AdvancedSeek", "VariableSpeed", "AudioTracks", "TextTracks"]
[needs]
[[needs.module]]
id = "/com.amazon.kepler.media.@IAccountLogin1"
[[needs.module]]
id = "/com.amazon.kepler.media@IContentLauncher1"
Key Configuration Notes
-
Package ID: Replace all instances of
<com.yourcompany.yourapp>with your actual app’s package ID (e.g.,com.example.contentlauncherapp) -
Partner ID: Replace
<YOUR_PARTNER_ID>with the partner ID provided to you by Amazon -
Component IDs: Ensure all component IDs are consistent throughout the manifest:
- Interactive component:
<com.yourcompany.yourapp>.main - Service component:
<com.yourcompany.yourapp>.interface.provider
- Interactive component:
-
Runtime Module: The
runtime-modulepath shown is for React Native 0.72. Do not modify this value. -
Override Attribute Component: The
override_attribute_componentfield for Account Login is only necessary when thecomponent-idspecified in the[[extras]]section differs from the one handling the Status attribute. This enables you to use a different component (the service component) for status updates than the one initially defined in extras. -
IMediaPlaybackServer: This interface entry is required for Vega Media Control integration and must be included for Content Launcher to work properly.
Related Documentation
- Content Launcher Integration Guide
- Account Login API Documentation
- Vega Media Controls Documentation
- Manifest Schema Reference
Last updated: Mar 2, 2026