Alexa.RecordController
The RecordController interface provides directives for recording content and ending the current record operation.
Implement this interface for devices that can start recording immediately. For devices that can schedule content to be recorded, see Alexa.VideoRecorder.
Directives
The control and query directives in this interface are supported in skills that target the following languages:
- English (U.K.)
- English (U.S.)
See Develop Smart Home Skills in Multiple Languages for more information.
StartRecording
A request to start recording the currently playing content.
User: Alexa, start recording
Example: StartRecording
{
"header": {
"payloadVersion": "3",
"messageId": "d93fb3c7-b9ef-4f68-89fc-5af43edde218",
"namespace": "Alexa.RecordController",
"name": "StartRecording",
"correlationToken": "4d64dccb-bebc-4990-990a-abb922fd285d"
},
"endpoint": {
"scope": {
"type": "BearerToken",
"token": "access-token-from-skill"
},
"endpointId": "video-endpoint-001",
"cookie": {}
},
"payload": {
}
}
StopRecording
A request to stop the current recording operation.
User: Alexa, stop recording
Example: StopRecording
{
"directive": {
"header": {
"namespace": "Alexa.RecordController",
"name": "StopRecording",
"messageId": "c8d53423-b49b-48ee-9181-f50acedf2870",
"correlationToken": "4d64dccb-bebc-4990-990a-abb922fd285d",
"payloadVersion": "3"
},
"endpoint": {
"scope": {
"type": "BearerToken",
"token": "access-token-from-skill"
},
"endpointId": "video-endpoint-001",
"cookie": {}
},
"payload": {
}
}
}
Properties and Events
For this interface, you must reply:
- Synchronously, which means you send a Response to Alexa from the Lambda function.
When you send a Response, you should include the state of the interface properties in the context of the message.
Reportable Properties
| Property Name | Type | Description |
|---|---|---|
RecordingState |
RecordingState | Indicates whether the endpoint is recording or not. Either RECORDING or NOT_RECORDING. |
Response
When a request to start or stop recording completes successfully, you should respond with an Alexa.Response with the status of RecordingState in the context of the message.
Example Response
{
"context": {
"properties": [{
"name": "RecordingState",
"namespace": "Alexa.RecordController",
"timeOfSample": "2017-5-6T16:20:50.52Z",
"uncertaintyInMilliseconds": 0,
"value": "RECORDING"
}]
},
"event": {
"header": {
"correlationToken": "4d64dccb-bebc-4990-990a-abb922fd285d",
"messageId": "aef437b1-607e-4a8f-bb41-23364eb7878c",
"name": "Response",
"namespace": "Alexa",
"payloadVersion": "3"
},
"payload": {}
}
}
Payload details
| Field | Description | Type | Required |
|---|---|---|---|
| None | No required or optional fields in the payload. | N/A | N/A |
ErrorResponse
You should reply with an error if you cannot complete the customer request for some reason.
- For video-specific errors, see Video.ErrorResponse
- For general errors, such as authentication and connection problems, see Error.Response.
Related Interfaces
| Interface | Description |
|---|---|
| Alexa.VideoRecorder | Defines directives to schedule content to be recorded, or to cancel scheduled recordings. |