Alexa.RemoteVideoPlayer interface in your Alexa skill so that users can request Alexa to search and play video content. You can identify the public and private catalogs that your skill supports in the discovery response.
For the list of languages that the Alexa.RemoteVideoPlayer interface supports, see List of Alexa Interfaces and Supported Languages. For the definitions of the message properties, see Alexa Interface Message and Property Reference.
Utterances
TheAlexa.RemoteVideoPlayer interface uses the pre-built voice interaction model. After the user says one of the following utterances, Alexa sends a corresponding directive to your skill.
The following examples show some user utterances:
- Arabic
- English (All)
- French (All)
- German
- Hindi
- Italian
- Portuguese
- Spanish (All)
- Japanese (日本語)
Handle search criteria
When a user requests Alexa to search and display or search and play video content, Alexa sends the search criteria to your skill. TheAlexa.RemoteVideoPlayer directives might include multiple entity types. For example, the customer might say, and the resulting directive includes the content title in the Video entity object and the director’s name in the Director entity object. Entities rely on resolved catalog values. You might have specialized catalogs about specific entity types, such as movie catalog or genre catalog, or a data model that facilitates structured queries.
Even with the included entities, the request might be ambiguous. For example, the customer might say, and the resulting directive contains only the Genre entity object. Despite ambiguity, you decide how to act on a request. For example, you might:
- Play a popular comedy (
SearchAndPlaydirective) - Generate a list of the top 10 comedies and randomly select one for the customer (
SearchAndPlaydirective) - Display search results for the ambiguous entity (
SearchAndDisplayResultsdirective)
searchText to represent a transcribed version of the user’s search query. This version doesn’t contain action verbs. For example, the utterance, returns the search text, content provider movies. The utterance, returns the search text, content provider comedies. Use searchText if you want to focus on keyword searches.
The transcribed searchText has the following limitations:
- There’s no word order guarantee in the transcribed text.
- The content of transcribed text might change over time or by directive. For example, the same request might return
top ten comediesortop 10 comedies.
Performance requirements for search
The following table shows the latency limits for search responses by call percentage.| Call percentage | Latency limit in milliseconds (ms) |
|---|---|
| 50 percent | 50 ms |
| 90 percent | 100 ms |
| 99 percent | 200 ms |
Reportable properties
TheAlexa.RemoteVideoPlayer interface doesn’t have any reportable properties.
Discovery
You describe endpoints that supportAlexa.RemoteVideoPlayer by using the standard discovery mechanism described in Alexa.Discovery.
The Alexa.RemoteVideoPlayer interface doesn’t have any reportable properties. Set retrievable and proactivelyReported to true as appropriate for other interfaces that you implement in your skill.
Use TV, STREAMING_DEVICE, GAME_CONSOLE, or other appropriate display category. For the full list of display categories, see display categories.
Configurations object
In addition to the usual discovery response fields, forAlexa.RemoteVideoPlayer, include a configurations object that contains the following fields. The configurations object is required.
| Property | Description | Type | Required |
|---|---|---|---|
operations | Identifies the directives that your skill supports. If you don’t include this property, Alexa assumes that your skill supports all directives. Valid values: SearchAndPlay, SearchAndDisplayResults. | Array of strings | No |
entityTypes | Identifies the entity types that your skill supports. If you don’t include this property, Alexa assumes that your skill supports all entity types. For valid values, see Entity types. | Array of string | No |
catalogs | Identifies the public and private catalogs that your skill supports. You can report different catalogs per endpoint and customer. If you don’t have a catalog, include one object in the array with sourceId = imdb and type = VIDEO_PUBLIC_CATALOG_IDENTIFIER. | Array of Catalog objects | Yes |
catalogs.type | Type of catalog. Valid values: VIDEO_INGESTION_IDENTIFIER, VIDEO_PUBLIC_CATALOG_IDENTIFIER. | String | Yes |
catalogs.sourceId | Uniquely identifies the catalog. When type is VIDEO_INGESTION_IDENTIFIER, set sourceId to the partner ID that you used for catalog ingestion. For details, see Partner field in Catalog Data Format file.When type is VIDEO_PUBLIC_CATALOG_IDENTIFIER, such as IMDb, set to imdb. | String | Yes |
Discover response example
The following example shows anAlexa.Discover.Response message for a television that supports the Alexa.RemoteVideoPlayer, Alexa.PlaybackStateReporter, Alexa.PowerController, and Alexa.EndpointHealth interfaces. In this example, the endpoint supports searching for content with MediaType, League, Sport, and SportsTeam entity types in the IMDb public catalog and the ABCDE private catalog.
Proactive Discovery
When a user adds a new endpoint to their account or makes changes to an existing endpoint, you must send anAlexa.Discovery.AddOrUpdateReport message proactively to the Alexa event gateway. You can include all the endpoints associated with the user account, or only the new or updated endpoints. You can choose based on your skill implementation. For details, see AddOrUpdateReport.
AddOrUpdateReport example
The following example shows aAddOrUpdateReport message for a new endpoint.
Directives
Alexa sends the followingAlexa.RemoteVideoPlayer interface directives to your skill.
SearchAndPlay directive
Support theSearchAndPlay directive so that users can request to play specific video content. The payload contains an array of entities that specifies what to search for.
SearchAndPlay directive example
The following example shows a request for specific video content from 2017-2018.SearchAndPlay directive payload
The following table shows the payload details for theSearchAndPlay directive.
| Property | Description | Type | Required |
|---|---|---|---|
entities | User-requested search terms. | Array of Entity objects | Yes |
searchText | Specifies the text version of the user’s utterance after natural language understanding (NLU) processing. The word order is non-deterministic and can change based on point in time and directive. Use searchText if you want to focus on keyword searches. | Object | No |
searchText.transcribed | Transcribed version of the user’s search query. | String | No |
experience | Suggests how to display the results to give the best user experience. | Object | No |
experience.mode | Suggests the mode to display the requested results.VOICE_OPTIMIZED indicates voice-centric results, such as a shorter search result list. Make sure that the customer can navigate the results by voice.DEFAULT indicates your default mode. If you receive an unknown value, use your default mode instead of failing the request.Valid values: DEFAULT, VOICE_OPTIMIZED | String | Yes |
timeWindow | Specifies the span of time over which to search. | Object | No |
timeWindow.start | The start time for the content search. Formatted as a UTC string in ISO 8601 format, YYYY-MM-DDThh:mm:ssZ. | String | No |
timeWindow.end | The end time for the content search. Formatted as a UTC string in ISO 8601 format, YYYY-MM-DDThh:mm:ssZ. | String | No |
SearchAndPlay response
If you handle aSearchAndPlay directive successfully, respond with an Alexa.Response event. The response doesn’t require a payload, but include the values of all other reportable properties in the context object.
The following example shows a SearchAndPlay response.
SearchAndPlay error handling
If you can’t handle aSearchAndPlay directive successfully and the error is specific to video, respond with an Alexa.Video.ErrorResponse event. For general errors, respond with a generic Alexa.ErrorResponse event.
SearchAndDisplayResults directive
Support theSearchAndDisplayResults directive so that users can search for video content. The payload contains an array of entities that specifies what to search for.
You display the results in a way that’s appropriate for your skill. For example, you might provide the user with a side-loaded search screen, send the results to a companion mobile app, or display the search results on a device.
SearchAndDisplayResults directive example
The following example shows a request for specific video content from 2017–2018.SearchAndDisplayResults directive payload
TheSearchAndDisplayResults directive contains the same payload parameters as the SearchAndPlay directive.
SearchAndDisplayResults response
If you handle aSearchAndDisplayResults directive successfully, respond with an Alexa.Response event. The response doesn’t require a payload, but include the values of all other reportable properties in the context object.
The following example shows a SearchAndDisplayResults response.
SearchAndDisplayResults error handling
If you can’t handle aSearchAndDisplayResults directive successfully and the error is specific to video, respond with an Alexa.Video.ErrorResponse event. For general errors, respond with a generic Alexa.ErrorResponse event.
Change reporting
You send anAlexa.ChangeReport event to report changes proactively in the state of an endpoint. You identify the properties that you proactively report in your discovery response.
The Alexa.RemoteVideoPlayer interface doesn’t define any proactively reportable properties. However, you send change reports for the other interfaces that you implement in your skill. For details about change reports, see State Reporting for Video Skills.

