VideoApp Interface Reference
The VideoApp interface provides the VideoApp.Launch directive for streaming native video files in Echo Show. Your skill can send the VideoApp.Launch directive to launch a video. Your skill can send a launch directive in response to a voice request, or in response when a user taps a programmed item on the screen.
- Supported Video Formats
- VideoApp Features
- VideoApp as Seen on Echo Show
- Configure Your Skill for the VideoApp Directives
- Implement VideoApp Directives
- Parameters of Response
- Other Reference Materials
Supported Video Formats
The following formats are supported by VideoApp.
- Native Videos
- HLS
- H.264
VideoApp Features
The VideoApp as seen on Echo Show has the following features:
GUI features:
- Playback controls
- Title
- Subtitle
- Seek bar
Voice Controls:
- Alexa, pause/resume
- Alexa, stop/close
VideoApp as Seen on Echo Show
The VideoApp screens will look similar to the following.
Native Video

Error

Configure Your Skill for the VideoApp Directives
To use VideoApp directives for video playback, you must configure your skill as follows:
- Indicate that your skill implements this interface when configuring the skill. On the Skill Information tab in the developer portal, set the VideoApp option to Yes.
The standard built-in intents are implemented automatically. They are described in Standard Intents. These standard built-in intents work with VideoApp:
-
AMAZON.PauseIntentandAMAZON.StopIntent, which send the same message to the skill -
AMAZON.ResumeIntent
Implement VideoApp Directives
The VideoApp interface provides the VideoApp.Launch directive, which sends Alexa a command to stream the video file identified by the specified videoItem field.
The source for videoItem must be a native video file. Only one video item at a time may be supplied.
When including a directive in your skill service response, set the type property to the directive you want to send. Here is an example of a full response object sent from a LaunchRequest or IntentRequest.
In this example, one native-format video will be played.
{
"version": "1.0",
"sessionAttributes": null,
"response": {
"outputSpeech": null,
"card": null,
"directives": [
{
"type": "VideoApp.Launch",
"videoItem":
{
"source": "https://www.example.com/video/sample-video-1.mp4",
"metadata": {
"title": "Title for Sample Video",
"subtitle": "Secondary Title for Sample Video"
}
}
}
],
"reprompt": null
}
}
For the full response format, see Response Body Syntax in the JSON Interface Reference for Custom Skills.
The back button is displayed on every VideoApp screen, and cannot be hidden, unlike for the Display interface. If clicked, the back button takes the customer to the previous display template in the current session. See Back Button in Echo Show Templates.
Parameters of Response
See Response Body Syntax for more details. This section refers to the VideoApp-specific parameters of the response.
| Parameter | Description | Type | Required? |
|---|---|---|---|
videoItem |
Contains an object providing information about the video stream to play. | object | yes |
The following are sub-parameters of videoItem.
| Parameter | Description | Type | Required? |
|---|---|---|---|
source | Identifies the location of video content at a remote HTTPS location. The video file must be hosted at an Internet-accessible HTTPS endpoint. HTTPS is required, and the domain hosting the files must present a valid, trusted SSL certificate. Self-signed certificates cannot be used. Many content hosting services provide this. For example, you could host your files at a service such as Amazon Simple Storage Service (Amazon S3) (an Amazon Web Services offering). | string | yes |
metadata | Contains an object that provides the information that can be displayed on VideoApp. | object | no |
The following are sub-parameters of videoItem.metadata.
| Parameter | Description | Type | Required? |
title |
Title for the video, intended to be displayed in the VideoApp. | string | no |
subtitle |
Secondary title for the video, intended to be displayed in the VideoApp. | string | no |
shouldEndSession parameter must not be included in the response, even if the value is set to null.