Sample Manifest for Content Launcher, Account Login, and Vega Media Controls

:exclamation: 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.

:triangular_flag: 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

  1. Package ID: Replace all instances of <com.yourcompany.yourapp> with your actual app’s package ID (e.g., com.example.contentlauncherapp)

  2. Partner ID: Replace <YOUR_PARTNER_ID> with the partner ID provided to you by Amazon

  3. Component IDs: Ensure all component IDs are consistent throughout the manifest:

    • Interactive component: <com.yourcompany.yourapp>.main
    • Service component: <com.yourcompany.yourapp>.interface.provider
  4. Runtime Module: The runtime-module path shown is for React Native 0.72. Do not modify this value.

  5. Override Attribute Component: The override_attribute_component field for Account Login is only necessary when the component-id specified 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.

  6. IMediaPlaybackServer: This interface entry is required for Vega Media Control integration and must be included for Content Launcher to work properly.

Related Documentation

Last updated: Mar 2, 2026