開発者コンソール

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ä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 करो/करना/कीजिए

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

2.0

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

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

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

2.0

ネットワーク名を録画

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 करो/करना/कीजिए

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

2.0

スポーツのチームを録画

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 कर देना

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

2.0

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

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 करो/कीजिए/करना

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

2.0

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

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 कर देना

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

2.0

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プロファイルを使用する文字列 ×

修飾子名の値

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

説明
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プロファイルを使用する文字列 ×

修飾子名の値

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

説明
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 録画ステータスを示す文字列の列挙値です。 文字列( SCHEDULEDSTARTEDのいずれか)

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

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

エラーレスポンス

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