Amazon Developer

as

Settings
Sign out
Notifications
Alexa
Amazon Appstore
Ring
AWS
Documentation
Support
Contact Us
My Cases
Get Started
Design and Develop
Publish
Reference
Support
Skip to main content
This document explains how to integrate Content Launcher into your app. Media apps typically require integration with three key APIs:
  1. The Content Launcher API
  2. Vega Media Controls API
  3. Account Login API
The system implements Content Launcher and Vega Media Controls APIs as in an interactive component, which is the main component handling Vega media queries. The Account Login API functions as a service component.

Step 1: Update your App’s manifest file

In your app’s manifest.toml file, include Content Launcher support. This example assumes your package ID is com.amazondeveloper.keplervideoapp. Replace this package ID with your app’s package ID. Configure your app to interact with the Vega Media Content Launcher APIs.

Step 2: Include the necessary package dependencies in your app

In the package.json file, add the @amazon-devices/kepler-media-content-launcher package as a dependency.

Step 3: Implement the Content Launcher API

  1. Define the Content Launcher handler. Instantiate a new ContentLauncherServerComponent. Develop a handler object that encapsulates the callback function.
    The handler should process the request, return a Promise to ILauncherResponse, and create it with an instance of the ContentLauncherServerComponent. Set the status of contentLauncherStatus for LauncherResponse to ContentLauncherStatusType.SUCCESS if your app successfully processed the request. Set the status to ContentLauncherStatusType.AUTH_FAILED if your app can’t process the request due to authorization issues. Set the status to ContentLauncherStatusType.URL_NOT_AVAILABLE for everything else.
  2. Implement the Vega Media Content Launcher in your interactive app. To implement the Vega Media Content Launcher in your interactive app, start by obtaining a singleton instance of IContentLauncherServerAsync. Implement IContentLauncherServerAsync by using the getOrMakeServer method on your ContentLauncherServerComponent instance. Next, create a handler object implementing the IContentLauncherHandler interface to process content launch requests. Call the ‘setHandlerForComponent’ method for the ‘IContentLauncherServerAsync’ instance. This associates the handler with the correct component. Pass the handler and the appropriate IComponentInstance. In an interactive app, you can obtain the IComponentInstance using the useComponentInstance method. For React Native apps, set up the handler within the useEffecthook. It should initialize Content Launcher as soon as the component mounts and the IComponentInstance are available. This tightly integrates Content Launcher functionality with your component’s lifecycle. It also lets your app to handle Vega Content Launcher commands efficiently from the moment it’s initialized. This setup is important for apps with multiple components, so that each component uses IComponentInstance, preventing confusion in callback routing.

Implementation details

The IContentLauncherHandler handler takes one parameter that defines what content to play or show search results.
  • Optional fields passed through a pointer to an object implementing the ILaunchContentOptionalFields interface.

Content Launcher request examples

The following examples explain contentSearch parameter values for some key Content Launcher use cases. This example lists all supported use cases. Content Launcher is invoked and the app launches for every use case. The following sample catalog for streamz_us includes example entries for the movie Seabound and the TV show The SeaShow: The Real Story.

Launch content through the remote

Launch the movie Seabound using a remote from the Vega TV Home screen.
The app should identify the movie using tv.streamz/movie/46720000 for the LaunchId, and play it directly.

Quickplay with voice

Play movie Seabound through voice. Use the utterance “Alexa, Play Seabound.” autoPlay will be true here. The following example includes the contentSearch: IContentSearch values. The app launches and it should play content directly using ID 1700000725.

Playing a specific episode with voice

The following catalog sample represents a TV Show SeaShow: The Real Story, its season, and an episode. The Alexa utterance “Alexa, Play Season 2 Episode 5 from The SeaShow: The Real Story,” invokes the app to play the specific episode. autoPlay will be true here. contentSearch includes the show ID, not the episode ID. The app must identify the exact episode using ID 1700000123, ContentSearchParamType::SEASON, and ContentSearchParamType::EPISODE values.

Last modified on March 23, 2026