Alexa.ChannelController interface in your Alexa add-on so that users can change or increment the channel for an entertainment or video device. For details about entertainment device add-ons, see Connect Your Device Cloud with Smart Home Add-ons for Entertainment Devices and Understand Video Skills.
For the list of languages that the ChannelController 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.ChannelController interface uses the pre-built voice interaction model. After the customer says one of the following utterances, Alexa sends a corresponding directive to your add-on.
The following examples show some user utterances:
- Arabic
- English (All)
- French (All)
- German
- Hindi
- Italian
- Portuguese
- Spanish (All)
- Japanese
Properties and objects
TheAlexa.ChannelController interface includes the following properties and objects.
Reportable properties
TheAlexa.ChannelController interface uses the channel property as the primary property. You identify that you support the property in your discovery response.
Channel property
Thechannel property specifies a channel by number, call sign, or affiliate call sign. The channel property value is an object.
The following example shows the channel property.
Channel object.
| Property | Description | Type | Required |
|---|---|---|---|
number | TV channel number, such as 256 or 13.1. | String | No |
callSign | Call sign of the channel, such as WKCTS-TV. | String | No |
affiliateCallSign | Local affiliate call sign of the channel, such as KCTS. | String | No |
uri | URI of the channel, such as entity://provider/channel/12307. | String | No |
ChannelMetadata object
TheChannelMetadata property provides additional information about a channel.
The following example shows a ChannelMetadata object.
channelMetadata object.
| Property | Description | Type | Required |
|---|---|---|---|
name | Another name for the channel, such as “The CW.” | String | No |
image | URL of an image or logo for the channel. | String | No |
Lineup object
Live TV providers, such as multichannel video programming distributors (MVPDs), might want to build an Alexa add-on that can provide different channel lineups per user or zip code. A lineup is a set of TV channels based on a combination of stations, affiliate, and channel number. Alexa finds the TV channel lineup based on the parameters defined in theLineup object. You specify the lineup information in your discovery response. If you change the lineup, you must send an AddOrUpdateReport.
The following example shows a Lineup object.
Lineup object.
| Property | Description | Type | Required |
|---|---|---|---|
lineupName | Name of the provider lineup. | String | No |
operatorName | Name of the TV provider. | String | Yes |
type | Describes the type of lineup. Valid values: overTheAir, multiSystemOperator, streamingOperator. | String | Yes |
postalCode | Specifies the postal or zip code where the customer resides. | String | No |
Discovery
You describe endpoints that supportAlexa.ChannelController by using the standard discovery mechanism described in Alexa.Discovery.
Set retrievable to true for the properties that you report when Alexa sends your add-on a state report request. Set proactivelyReported to true for the properties that you proactively report to Alexa in a change report.
Use TV, STREAMING_DEVICE, GAME_CONSOLE, or other appropriate display category. For the full list of display categories, see display categories.
To let Alexa know the health of your device, also implement the Alexa.EndpointHealth interface.
Discover response example
The following example shows aDiscover.Response message for a television that supports the Alexa.ChannelController, Alexa.PowerController, and Alexa.EndpointHealth interfaces. For the full list of recommended interfaces for a television, see Smart Home Device Templates.
Show/hide Discovery response
Show/hide Discovery response
Discover response with lineup example
The following example shows aDiscover.Response message for an MVPD that supports different channel lineups per user or zip code. The example includes lineup information in the Alexa.ChannelControllerinterface.
Show/hide Discovery response with lineup
Show/hide Discovery response with lineup
AddOrUpdateReport
When a user adds a new endpoint to their account, or there are 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 add-on implementation. For details, see AddOrUpdateReport.
AddOrUpdateReport example
The following example shows anAddOrUpdateReport message for a new endpoint.
Directives
Alexa sends the followingAlexa.ChannelController interface directives to your add-on.
ChangeChannel directive
Support theChangeChannel directive so that users can change the channel on a device by specifying a channel number or call sign.
The following example shows a user utterance:
- English (All)
- German
- Japanese
ChangeChannel directive example
The following example shows aChangeChannel directive that Alexa sends to your add-on.
ChangeChannel directive payload
The following table shows the payload details for theChangeChannel directive.
| Property | Description | Type |
|---|---|---|
channel | The channel to change the device to. | Channel object |
channelMetadata | Additional information about the channel to change the device to. | ChannelMetadata object |
ChangeChannel response
If you handle aChangeChannel directive successfully, respond with an Alexa.Response event. A successful response confirms that the endpoint completed the requested action. In the context object, include the values of all properties that changed.
The following example shows a ChangeChannel response.
ChangeChannel directive error handling
If you can’t handle aChangeChannel 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.
SkipChannels directive
Support theSkipChannels directive so that users can change the channel on a device incrementally in a discrete step. Users can use a positive number for a step up, or negative number for a step down.
The following example shows a user utterance:
- English (All)
- German
- Japanese
SkipChannels directive example
The following example shows aSkipChannels directive that Alexa sends to your add-on.
SkipChannels directive payload
The following table shows the payload details for theSkipChannels directive.
| Property | Description | Type |
|---|---|---|
channelCount | Number of channels to increment by. A negative number changes the channel down, a positive number changes the channel up. Valid values: –1 and 1 | Integer |
SkipChannels response
If you handle aSkipChannels directive successfully, respond with an Alexa.Response event. A successful response confirms that the endpoint completed the requested action. In the context object, include the values of all properties that changed.
The following example shows a SkipChannels response.
SkipChannels directive error handling
If you can’t handle aSkipChannels 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.
State reporting
Alexa sends aReportState directive to request information about the state of an endpoint. When Alexa sends a ReportState directive, you send a StateReport event in response. The response contains the current state of all the retrievable properties in the context object. You identify your retrievable properties in your discovery response. For details about state reports, see Understand State and Change Reporting.
StateReport response example
Change reporting
You send aChangeReport event to report changes proactively in the state of an endpoint. You identify the properties that you proactively report in your discovery response. For details about change reports, see Understand State and Change Reporting.

