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 (UK)
  • English (US)

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": "abc-123-def-456",
        "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": "abc-123-def-456",
      "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 capability, 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": "abc-123-def-456",
      "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.

Interface Description
Alexa.VideoRecorder Defines directives to schedule content to be recorded, or to cancel scheduled recordings.