Alexa.VideoRecorderインターフェース



Alexa.VideoRecorderインターフェース

Alexa.VideoRecorderインターフェースは、指定したビデオの検索と録画予約、スケジュール録画のキャンセル、DVRの録画容量の照会を行うのに使用するメッセージを提供します。現在再生中のコンテンツを録画するには、代わりに Alexa.RecordControllerインターフェースを実装してください。

VideoRecorderインターフェースでサポートされているロケールについては、機能インターフェースの一覧を参照してください。

ディレクティブ

このインターフェースのディレクティブはそれぞれ、検索および録画するコンテンツを指定するエンティティオブジェクトを含みます。詳細については、ビデオコンテンツのエンティティタイプを参照してください。

SearchAndRecord

検索条件のセットを渡して指定したビデオの検索と録画を行うリクエストです。SearchAndRecordディレクティブが正常に処理されると、SearchAndRecord.Responseイベントを使って応答します。

ユーザー: Alexa, record the new episode of the Grand Tour next week.

例: 来週のスーパーGTを録画する

{
    "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": "スーパーGT"
                }
            ],
            "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 timeウィンドウの開始時刻です。 ISO 8601形式YYYY-MM-DDThh:mm:ssZに則ったRFC 3339プロファイルを使用する文字列です。
timeWindow.end timeウィンドウの終了時刻です。 ISO 8601形式YYYY-MM-DDThh:mm:ssZに則ったRFC 3339プロファイルを使用する文字列です。

そのほかの例: 午後5時にNHKを録画する

{
    "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": "JOAK-DTV",
                        "channelNumber": 1
                    },
                    "externalIds": {
                        "gracenote": "MV000000099001"
                    },
                    "type": "Channel",
                    "value": "NHK"
                }
            ],
            "timeWindow": {
                "start": "2016-09-01T00:17:00.00Z"
            }
        }
    }
}

CancelRecording

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

ユーザー: Alexa, stop recording title.

ユーザー: Alexa, cancel recording of next week's episode of The Grand Tour.

例: 来週のスーパーGTの録画をキャンセルする


{
    "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": "スーパーGT",
                    "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 timeウィンドウの開始時刻です。 ISO 8601形式YYYY-MM-DDThh:mm:ssZに則ったRFC 3339プロファイルを使用する文字列です。
timeWindow.end timeウィンドウの終了時刻です。 ISO 8601形式YYYY-MM-DDThh:mm:ssZに則ったRFC 3339プロファイルを使用する文字列です。

DeleteRecording

録画を削除するリクエストです。このリクエストによって、指定されたタイトル、またはリクエストされたエンティティに最も一致するタイトルの録画が削除されます。

ユーザー: Alexa, delete the recording of The Grand Tour.

例: スーパーGTの録画を削除する

{
    "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": "スーパーGT",
                    "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 timeウィンドウの開始時刻です。 ISO 8601形式YYYY-MM-DDThh:mm:ssZに則ったRFC 3339プロファイルを使用する文字列です。
timeWindow.end timeウィンドウの終了時刻です。 ISO 8601形式YYYY-MM-DDThh:mm:ssZに則ったRFC 3339プロファイルを使用する文字列です。

修飾子名の値

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

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

プロパティとイベント

出力可能なプロパティ

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

SearchAndRecord.Response

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

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"
        }
    }
}
フィールド 説明 タイプ 必須
recordingStatus 録画ステータスを示す文字列の列挙値です。 文字列次のいずれかを指定します。 SCHEDULED、STARTED

ErrorResponse

何らかの理由によりユーザーのリクエストを完了できない場合、エラー応答を返す必要があります。

  • ビデオ固有のエラーについては、Video.ErrorResponseを参照してください。
  • 認証や接続の問題など、一般的なエラーについては、Error.Responseを参照してください。
インターフェース 説明
Alexa.RecordController コンテンツの録画を開始または停止するディレクティブを定義します。