Developer Console
Gracias por tu visita. Esta página solo está disponible en inglés.

Alexa.VideoRecorder Interface (VSK Fire TV)

When users say utterances to manage recordings (e.g., "Alexa, record new episode"), the Alexa.VideoRecorder interface sends SearchAndRecord, CancelRecording, and DeleteRecording directives to your Lambda. These directives are used to record scheduled content and manage recordings. They should only be implemented if your app can schedule recordings.

For start-and-stop recording directives, see Alexa.RecordController Directives. Note that directives sent by the VideoRecorder interface are available only for Fire TV, not for multimodal devices.

Utterances for VideoRecorder Directives

Alexa sends a directives from the VideoRecorder interface (SearchAndRecord, CancelRecording, and DeleteRecording) to your Lambda when users say the following utterances.

Feature Sample Utterances Expected Response Version
Record next episode of title

Record next episode of breaking bad

nimm die nächsten <Episode> von <VideoName> auf

Enregistre le prochain épisode de <title>

Enregistre le prochain épisode de <title>

registra il prossimo episodio di <title>

comincia a registrare il prossimo episodio di <title>

graba el próximo capítulo de gran hotel

gravar próximo episódio de <title>

breaking bad का अगला episode record करो/करना/कीजिए

The next episode of requested media title is set to be recorded.

2.0

Record new episode of title

Record new episode of breaking bad

nimm neue <Episode> von <VideoName> auf

Enregistre le nouvel épisode de <title>

Enregistre le nouvel épisode de <title>

registra il nuovo episodio di <title>

comincia a registrare il nuovo episodio di <title>

graba los capítulos nuevos de gran hotel

gravar novos episódios de <title>

record करो/करना/कीजिए breaking bad का नया episode

New episodes of the requested media title are set to be recorded.

2.0

Record network name

Record fox channel

nimm <ChannelName> auf

<ChannelName> aufnehmen

enregistre <ChannelName>

enregistre <ChannelName>

registra canale <ChannelName>

comincia a registrare <ChannelName>

graba antena tres

gravar <ChannelName>

आज तक channel record करो/करना/कीजिए

The network name is set to be recorded.

2.0

Record sports team

Record seattle seahawks

zeichne das <SportsTeam> <Event> auf

mach eine aufzeichnung vom  <SportsTeam> <Event>

Not supported

Not supported

registra <sportteam>

graba el partido del barcelona

gravar <SportTeam>

<SportsTeam> <Event> को <AppName> <MediaType> पर <Time> record कर देना

Either currently playing or upcoming content for the requested sports team is set to be recorded.

2.0

Cancel recording of <title>

Cancel recording of breaking bad

brich die <VideoName> aufnahme ab

aufnahme von <VideoName> abbrechen

Annule l'enregistrement de <title>

Annule l'enregistrement de <title>

cancella la registrazione

cancella registrazione

cancela la grabación de gran hotel

cancelar gravação de <title>

1. breaking bad का recording रद्द करना/कीजिए/करो

2. breaking bad वाला recording cancel करो/कीजिए/करना

Recording for the title is canceled.

2.0

Delete recording of <title>

Delete recording of breaking bad

lösch <VideoName>

lösch/entfern <VideoName> (auf <AppName>)?

lösch alle folgen/staffeln von <VideoName>

lösch die vorherigen folgen/staffeln von <VideoName>

lösch alle aufnahmen die ich gesehen/geschaut habe

alle aufzeichnungen die ich mir schon angesehen/angeschaut habe entfernen

Supprime l'enregistrement de <title>

Supprime l'enregistrement de <title>

elimina la registrazione

elimina registrazione

borra gran hotel

borra la grabación de psicosis

deletar gravação de <title>

breaking bad का recording हटा दो/निकाल देना/delete कर देना

Recording for the title is deleted.

2.0

SearchAndRecord Directives

SearchAndRecord directives are used to find and record a specified video item, given a set of search criteria. When a SearchAndRecord directive is successfully handled, respond with a SearchAndRecord.Response event.

Example: "Record the new episode of The Grand Tour next week"

{
    "directive": {
        "endpoint": {
              "scope": {
                "type": "BearerToken",
                "token": "some-access-token"
              },
              "endpointId": "endpoint-001",
              "cookie": {}
            },
        },
        "header": {
            "correlationToken": "dFMb0z+PgpgdDmluhJ1LdjCc8ptlAKulUj90jSqg==",
            "messageId": "708758c5-d1ca-4022-85ba-517f64b07a6c",
            "name": "SearchAndRecord",
            "namespace": "Alexa.VideoRecorder",
            "payloadVersion": "3"
        },
        "payload": {
            "entities": [
                {
                    "externalIds": {
                        "gracenote": "MV000000000001"
                    },
                    "type": "Video",
                    "value": "The Grand Tour"
                }
            ],
            "quantifier": {
                "name": "NEW"
            },
            "timeWindow": {
                "end": "2017-09-07T23:59:00.00Z",
                "start": "2017-09-01T00:00:00.00Z"
            }
        }
    }
}

Payload details

Field Description Type Required
entities An array of entity objects associated with this request Array of entity objects Yes
quantifier A quantifier for the type of recording; whether to create a new recording, or to record the next or all occurrences of the items with the specified title. Object No
quantifier.name The quantifier specified by the customer; possible values ALL, NEW, NEXT String, see Quantifier values No
timeWindow A time window object representing a time associated with this request Object No
timeWindow.start The start time for the time window. A string that uses the RFC 3339 profile of the ISO 8601 format, YYYY-MM-DDThh:mm:ssZ. No
timeWindow.end The end time for the time window. A string that uses the RFC 3339 profile of the ISO 8601 format, YYYY-MM-DDThh:mm:ssZ. No

Additional example: Record PBS at 5:00 PM

{
    "directive": {
        "endpoint": {
              "scope": {
                "type": "BearerToken",
                "token": "some-access-token"
              },
              "endpointId": "endpoint-001",
              "cookie": {}
            },
        },
        "header": {
            "correlationToken": "dFMb0z+PgpgdDmluhJ1LdjCc8ptlAKulUj90jSqg==",
            "messageId": "1b391648-5346-4bf5-9444-6f14e749b4e3",
            "name": "SearchAndRecord",
            "namespace": "Alexa.VideoRecorder",
            "payloadVersion": "3"
        },
        "payload": {
            "entities": [
                {
                    "entityMetadata": {
                        "channelCallSign": "KBTC",
                        "channelNumber": 123
                    },
                    "externalIds": {
                        "gracenote": "MV000000099001"
                    },
                    "type": "Channel",
                    "value": "PBS"
                }
            ],
            "timeWindow": {
                "start": "2016-09-01T00:17:00.00Z"
            }
        }
    }
}

CancelRecording Directive

CancelRecording directives are used to cancel a scheduled recording for a specified title. This request should result in the cancellation of the specified recording, or a title that best matches the requested entity.

User: Alexa, stop recording title.

User: Alexa, cancel recording of next week's episode of The Grand Tour.

Example: Cancel recording of next week's episode of The Grand Tour

{
    "directive": {
        "endpoint": {
              "scope": {
                "type": "BearerToken",
                "token": "some-access-token"
              },
              "endpointId": "endpoint-001",
              "cookie": {}
            },
        },
        "header": {
            "correlationToken": "dFMb0z+PgpgdDmluhJ1LdjCc8ptlAKulUj90jSqg==",
            "messageId": "d4a5a7a6-a45a-4e3f-b55a-f583c822384b",
            "name": "CancelRecording",
            "namespace": "Alexa.VideoRecorder",
            "payloadVersion": "3"
        },
        "payload": {
            "entities": [
                {
                    "externalIds": {
                        "gracenote": "MV000000000001"
                    },
                    "name": "The Grand Tour",
                    "type": "Video"
                }
            ],
            "timeWindow": {
                "end": "2017-09-07T23:59:00+00:00",
                "start": "2017-09-01T00:00:00+00:00"
            }
        }
    }
}

Payload details

Field Description Type Required
entities An array of entity objects associated with this request Array of entity objects Yes
quantifier A quantifier for the cancellation request; whether it's the next item or all items. Object No
quantifier.name Name of the quantifier such as the "next item" as specified by the customer. String, see Quantifier Values No
timeWindow A time window object representing a time associated with this request Object No
timeWindow.start The start time for the time window. A string that uses the RFC 3339 profile of the ISO 8601 format, YYYY-MM-DDThh:mm:ssZ. No
timeWindow.end The end time for the time window. A string that uses the RFC 3339 profile of the ISO 8601 format, YYYY-MM-DDThh:mm:ssZ. No

Quantifier Name Values

The following table describes the possible quantifier name values.

Value Description
ALL All content matching the specified entity.
NEXT The content that matches the entity that airs closest to time specified, or the closest after the time specified.
NEW Any content airing for the first time that matched the specified entity.
WATCHED All content matching the entity that has already been watched.

DeleteRecording Directive

DeleteRecording directives are sent to your Lambda when a user asks to delete a recorded item. This directive should result in the deletion of the specified title, or a title that best matches the requested entity.

User: Alexa, delete the recording of The Grand Tour.

Example: Delete the recording of The Grand Tour

{
    "directive": {
        "endpoint": {
              "scope": {
                "type": "BearerToken",
                "token": "some-access-token"
              },
              "endpointId": "endpoint-001",
              "cookie": {}
            },
        },
        "header": {
            "correlationToken": "dFMb0z+PgpgdDmluhJ1LdjCc8ptlAKulUj90jSqg==",
            "messageId": "97b8ce2a-87f6-4c89-9b28-00d716e337ff",
            "name": "DeleteRecording",
            "namespace": "Alexa.VideoRecorder",
            "payloadVersion": "3"
        },
        "payload": {
            "entities": [
                {
                    "externalIds": {
                        "gracenote": "MV000000099001"
                    },
                    "name": "The Grand Tour",
                    "type": "TV_Show"
                }
            ],
            "quantifier": {
                "name": "ALL"
            },
            "timeWindow": {
                "end": "2016-09-07T23:59:00.00Z",
                "start": "2016-09-01T00:00:00.00Z"
            }
        }
    }
}

Payload Details

Field Description Type Required
entities An array of entity objects associated with this request array of entity objects objects Yes
quantifier A quantifier for the deletion request; whether all or just the watched items should be deleted for the specified title. Object No
quantifier.name Name of the quantifier specified by the customer. String enumeration value, see Quantifier Values No
timeWindow A time window object representing a time associated with this request Object No
timeWindow.start The start time for the time window. A string that uses the RFC 3339 profile of the ISO 8601 format, YYYY-MM-DDThh:mm:ssZ. No
timeWindow.end The end time for the time window. A string that uses the RFC 3339 profile of the ISO 8601 format, YYYY-MM-DDThh:mm:ssZ. No

Quantifier Name Values

The following table describes the possible quantifier name values.

Value Description
ALL All content matching the specified entity.
NEXT The content that matches the entity that airs closest to time specified, or the closest after the time specified.
NEW Any content airing for the first time that matched the specified entity.
WATCHED All content matching the entity that has already been watched.

Reportable Properties

Property Name Type Description
isExtendedRecordingGUIShown boolean Indicates the type of graphical user interface shown to the user. true to indicate an extended recording GUI is shown, false if the extended recording GUI isn't shown.
storageLevel integer The storage used on the recording device as a percentage.

SearchAndRecord Response

When a request to make a recording is successfully handled, you should respond with a SearchAndRecord.Response event. Specify the recording status in the payload of the message and the isExtendedRecordingGUIShown and storageLevel property values in the context of the message.

Example SearchAndRecord Response

{
    "context": {
        "properties": [
            {
                "name": "isExtendedRecordingGUIShown",
                "namespace": "Alexa.VideoRecorder",
                "timeOfSample": "2017-5-6T16:20:50.52Z",
                "uncertaintyInMilliseconds": 0,
                "value": false
            },
            {
                "name": "storageLevel",
                "namespace": "Alexa.VideoRecorder",
                "timeOfSample": "2017-5-6T16:20:50.52Z",
                "uncertaintyInMilliseconds": 0,
                "value": 75
            }
        ]
    },
    "event": {
        "header": {
            "correlationToken": "dFMb0z+PgpgdDmluhJ1LdjCc8ptlAKulUj90jSqg==",
            "messageId": "aa6fd930-ce42-498d-a225-3fb94df83853",
            "name": "Alexa.SearchAndRecordResponse",
            "namespace": "Alexa.VideoRecorder",
            "payloadVersion": "3"
        },
        "payload": {
            "recordingStatus": "SCHEDULED"
        }
    }
}
Field Description Type Required
recordingStatus A string enumeration value that indicates the status of the recording. String. One of the following values: SCHEDULED, STARTED Yes

Declaring Capability Support for this Interface

To indicate that your video skill supports the Alexa.VideoRecorder interface, you must indicate support for it in your response to the Discover directive sent through the Alexa.Discovery interface. More details are provided in Alexa.Discovery.

Error Response

If you cannot complete the customer request for some reason, reply with an error. See Error Handling for more details.