Alexa.VideoRecorderインターフェース


Alexa.VideoRecorderインターフェース

「アレクサ、新しいエピソードを録画して」などと、録画を管理するための発話をユーザーが行うと、Alexa.VideoRecorderインターフェースはSearchAndRecordCancelRecordingDeleteRecordingのいずれかのディレクティブをLambdaに送信します。これらのディレクティブは、コンテンツの予約録画や録画したコンテンツの管理に使用します。アプリで録画の予約が可能な場合にのみ実装してください。

録画開始および停止のディレクティブについては、Alexa.RecordControllerディレクティブを参照してください。なお、VideoRecorderインターフェースから送信されるディレクティブはFire TVでのみ使用可能で、マルチモーダルデバイスでは使用できません。

VideoRecorderディレクティブの発話

ユーザーが以下の発話を行うと、AlexaはVideoRecorderインターフェースのディレクティブ(SearchAndRecordCancelRecordingDeleteRecordingのいずれか)をLambdaに送信します。

機能 サンプル発話 想定されるレスポンス
タイトルの次のエピソードを録画

Record next episode of breaking bad

Nimm die nächste Folge von <title> auf

Nimm die nächste Episode von <title> auf

Nächste Folge von <title> aufnehmen

Nächste Episode von <title> aufnehmen

Nächste Folge von <title> aufzeichnen

Nächste Episode von <title> aufzeichnen

Enregistre le prochaine épisode de Breaking Bad

enregistre le/la prochain/prochaine épisode de breaking bad

registra il prossimo episodio di breaking bad

<House, The Office, Sneaky Pete>

graba el próximo episodio de breaking bad

graba el próximo episodio de breaking bad

{title}の次のエピソードを録画して

{title}の次のエピソードを撮って

リクエストされたメディアタイトルの次のエピソードを録画するように設定されます。

タイトルの新しいエピソードを録画

Record new episode of breaking bad

Nimm die neue Episode von <title> auf

Nimm die neue Folge von <title> auf

Neue Folge von <title> aufnehmen

Neue Episode von <title> aufnehmen

Neue Folge von <title> aufzeichnen

Neue Episode von <title> aufzeichnen

Enregistre le nouvel épisode de Breaking Bad

Enregistre le dernier épisode de Breaking Bad

enregistre le nouveau/le nouvel/la nouvelle épisode de breaking bad

enregistre le dernier épisode de breaking bad

registra il nuovo episodio di breaking bad

<House, The Office, Sneaky Pete>

graba el episodio nuevo de breaking bad

graba el episodio nuevo de breaking bad

{title}の新しいエピソードを録画して

{title}の新しいエピソードを撮って

リクエストされたメディアタイトルの新しいエピソードを録画するように設定されます。

ネットワーク名を録画

Record fox channel

Nimm <network name> auf

<Network name> aufnehmen

Enresgistre Fox

Enregistre la chaîne Fox

enregistre radio-canada

registra il canale Fox

graba el canal fox

graba el canal fox

{network name}を録画して

{network name}を撮って

ネットワーク名を録画するように設定されます。

スポーツのチームを録画

Record seattle seahawks

Nimm das Spiel/die Partie von <sports team> auf

Nimm <sports team> auf

Enregistre les Bleus

Enregistre le match des Bleus

enregistre le/les Canadiens

enregistre le match/la partie/ la game du/des Canadiens

enregistre le/la/l' (sports team)

registra la juventus

graba al Madrid

graba a/al/a la/a las/a los (sports team)

graba al América

graba a/al/a la/a las/a los (sports team)

{sports team}を録画して

{sports team}を撮って

リクエストされたスポーツのチームの現在再生中または次回のコンテンツを録画するように設定されます。

<タイトル>の録画をキャンセル

Cancel recording of breaking bad

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

Brich die Aufnahme von <title> ab

Aufnahme von <title> abbrechen

Stoppe die Aufnahme von <title> ab

Aufnahme von <title> stoppen

<Breaking Bad>

Annule l'enregistrement de Breaking Bad

annule/cancelle l'enregistrement de breaking bad

cancella la registrazione di breaking bad

<House, The Office, Sneaky Pete>

cancela la grabación de breaking bad

cancela la grabación de breaking bad

{title} の録画キャンセル

{title} の録画をキャンセルして

{title} の録画を取り消して

タイトルの録画がキャンセルされます。

<タイトル>の録画を削除

Delete recording of breaking bad

Delete the recording of The Grand Tour

Lösche die Aufnahme von <title>

Aufnahme von <title> löschen

<Breaking Bad>

Supprime l'enregistrement de Breaking Bad

Efface l'enregistrement de Breaking Bad

efface l'enregistrement de breaking bad

elimina la registrazione di breaking bad

<House, The Office, Sneaky Pete>

borra la grabación de breaking bad

borra la grabación de breaking bad

{title} の録画を消して

{title} の録画を削除して

タイトルの録画が削除されます。

SearchAndRecordディレクティブ

SearchAndRecordディレクティブは、検索条件のセットを渡して指定したビデオアイテムを検索および録画するために使用されます。SearchAndRecordディレクティブが正常に処理された場合は、SearchAndRecord.Responseイベントで応答します。

例: 「来週『グランドツアー』の新しいエピソードを録画して」

{
    "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"
            }
        }
    }
}

ペイロードの詳細

フィールド 説明 必須
entities このリクエストに関連付けられたエンティティオブジェクトの配列です。 エンティティオブジェクトの配列
quantifier 録画のタイプを表す修飾子です。指定したタイトルの新規コンテンツを録画するか、次回またはすべてのコンテンツを録画するかを指定します。 オブジェクト ×
quantifier.name ユーザーが指定した修飾子です。有効な値は、ALLNEWNEXTです。 文字列(修飾子名の値を参照) ×
timeWindow このリクエストに関連付けられた時間を表すタイムウィンドウオブジェクトです。 オブジェクト ×
timeWindow.start タイムウィンドウの開始時刻です。 ISO 8601形式(YYYY-MM-DDThh:mm:ssZ)のRFC 3339プロファイルを使用する文字列 ×
timeWindow.end タイムウィンドウの終了時刻です。 ISO 8601形式(YYYY-MM-DDThh:mm:ssZ)のRFC 3339プロファイルを使用する文字列 ×

その他の例: 午後5時にPBSを録画する

{
    "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ディレクティブ

CancelRecordingディレクティブは、指定したタイトルの録画予約をキャンセルするために使用されます。このリクエストによって、指定された録画、またはリクエストされたエンティティに最も一致するタイトルの録画がキャンセルされます。

ユーザー: アレクサ、<タイトル>の録画を停止して

ユーザー: アレクサ、「グランドツアー」の来週のエピソードの録画をキャンセル

例: 「グランドツアー」の来週のエピソードの録画をキャンセルする

{
    "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"
            }
        }
    }
}

ペイロードの詳細

フィールド 説明 必須
entities このリクエストに関連付けられたエンティティオブジェクトの配列です。 エンティティオブジェクトの配列
quantifier キャンセルリクエストの修飾子です。次の録画予約、またはすべての録画予約のいずれかです。 オブジェクト ×
quantifier.name ユーザーが指定した修飾子名です(「次の録画予約」など)。 文字列(修飾子名の値を参照) ×
timeWindow このリクエストに関連付けられた時間を表すタイムウィンドウオブジェクトです。 オブジェクト ×
timeWindow.start タイムウィンドウの開始時刻です。 ISO 8601形式(YYYY-MM-DDThh:mm:ssZ)のRFC 3339プロファイルを使用する文字列 ×
timeWindow.end タイムウィンドウの終了時刻です。 ISO 8601形式(YYYY-MM-DDThh:mm:ssZ)のRFC 3339プロファイルを使用する文字列 ×

修飾子名の値 {#quantifiers}

以下の表は、有効な修飾子名の値を示しています。

説明
ALL 指定されたエンティティに一致するすべてのコンテンツです。
NEXT 指定されたエンティティに一致するコンテンツのうち、指定から最も近い時間に放送されるコンテンツ、または指定した時間以降で最も近いコンテンツです。
NEW 指定したエンティティに一致するコンテンツのうち、初めて放送されるコンテンツです。
WATCHED エンティティに一致するコンテンツのうち、既に視聴済みのすべてのコンテンツです。

DeleteRecordingディレクティブ

DeleteRecordingディレクティブは、ユーザーが録画済みコンテンツの削除を依頼した場合にLambdaに送信されます。このディレクティブによって、指定されたタイトル、またはリクエストされたエンティティに最も一致するタイトルの録画が削除されます。

ユーザー: アレクサ、「グランドツアー」の録画を削除して

例: 「グランドツアー」の録画を削除する

{
    "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"
            }
        }
    }
}

ペイロードの詳細

フィールド 説明 必須
entities このリクエストに関連付けられたエンティティオブジェクトの配列です。 エンティティオブジェクトの配列
quantifier 削除リクエストの修飾子です。指定されたタイトルのすべて、または視聴済みのみのいずれかを指定します。 オブジェクト ×
quantifier.name ユーザーが指定した修飾子の名前です。 文字列の列挙値(修飾子名の値を参照) ×
timeWindow このリクエストに関連付けられた時間を表すタイムウィンドウオブジェクトです。 オブジェクト ×
timeWindow.start タイムウィンドウの開始時刻です。 ISO 8601形式(YYYY-MM-DDThh:mm:ssZ)のRFC 3339プロファイルを使用する文字列 ×
timeWindow.end タイムウィンドウの終了時刻です。 ISO 8601形式(YYYY-MM-DDThh:mm:ssZ)のRFC 3339プロファイルを使用する文字列 ×

修飾子名の値 {#quantifiers}

以下の表は、有効な修飾子名の値を示しています。

説明
ALL 指定されたエンティティに一致するすべてのコンテンツです。
NEXT 指定されたエンティティに一致するコンテンツのうち、指定から最も近い時間に放送されるコンテンツ、または指定した時間以降で最も近いコンテンツです。
NEW 指定したエンティティに一致するコンテンツのうち、初めて放送されるコンテンツです。
WATCHED エンティティに一致するコンテンツのうち、既に視聴済みのすべてのコンテンツです。

レポート可能なプロパティ

プロパティ名 説明
isExtendedRecordingGUIShown ブール型 ユーザーに表示されるGUIのタイプを示します。拡張録画GUIが表示される場合はtrue、拡張録画GUIが表示されない場合はfalseです。
storageLevel 整数 録画用デバイスで既に使用されているストレージ容量をパーセンテージで表します。

SearchAndRecordレスポンス

録画のリクエストが正常に処理された場合は、SearchAndRecord.Responseイベントで応答する必要があります。メッセージのペイロードで録画ステータスを、メッセージのコンテキストでisExtendedRecordingGUIShownstorageLevelのプロパティ値を指定します。

SearchAndRecordレスポンスの例

{
    "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"
        }
    }
}
フィールド 説明 必須
recordingStatus 録画ステータスを示す文字列の列挙値です。 文字列( SCHEDULEDまたはSTARTEDのいずれか)

インターフェース機能に対するサポートの宣言

ビデオスキルがAlexa.VideoRecorderインターフェースをサポートしていることを示すには、Alexa.Discoveryインターフェースを介して送信されたDiscoverディレクティブへのレスポンスで、そのサポートを明示する必要があります。詳細については、Discoveryインターフェースを参照してください。

エラーレスポンス

何らかの理由でユーザーのリクエストを完了できない場合は、エラーレスポンスを返す必要があります。詳細については、エラー処理を参照してください。