開発者コンソール

APIリファレンスの概要


APIリファレンスの概要

Alexaは、ユーザーの発話(TV番組の検索や映画の再生など)をディレクティブに変換します。ディレクティブは、JSON形式で記載されたデータと命令のセットのことで、AlexaからLambdaに送信されます。Fire TV対応アプリ用ビデオスキルでは、SearchAndPlaySearchAndDisplayResultsなど、さまざまなディレクティブをサポートできます。Lambdaに送信されるディレクティブは、ビデオスキルAPIのインターフェース(API)によって異なります。

Lambdaはユーザーのリクエストを満たすために、ディレクティブを解釈して処理する必要があります。Lambdaでは、Alexaにレスポンスを返し、さらにリクエストを満たすための適切なアクションも実行します。

使用可能なディレクティブ

AlexaはFire TV対応アプリで次のディレクティブを送信します。

ディレクティブ 説明
RemoteVideoPlayer - SearchAndPlay ユーザーが特定ビデオコンテンツの再生をAlexaにリクエストした際に送信されます。
RemoteVideoPlayer - SearchAndDisplayResults ユーザーがビデオコンテンツの検索をAlexaにリクエストした際に送信されます。
PlaybackController ユーザーがビデオコンテンツの再生、停止、ナビゲーションをリクエストした際に送信されます。
SeekController ユーザーが時間を指定して早送り(またはスキップ)や巻き戻しをリクエストした際に送信されます。
ChannelController ユーザーがチャンネルの変更をリクエストした際に送信されます。
RecordController ユーザーが録画の開始または停止をリクエストした際に送信されます。
VideoRecorder ユーザーが録画の検索、キャンセル、または削除をリクエストした際に送信されます。
KeypadController ユーザーが左右へのスクロール、ページの上下スクロール、フォーカスされているアイテムの選択をリクエストした際に送信されます。

これらの各ディレクティブの詳細や、ディレクティブをトリガーする発話については、上記のリンクを参照してください。

ビデオスキルのターゲット指定

発話でビデオスキルをターゲットにするには、以下を実行します。

  • アプリを開いた状態で発話します。
  • 「番組Xを再生して」ではなく、「XYZで番組Xを再生して」のように、リクエストでビデオスキルの名前を明示的に指定します(これは「明示的な発話」と呼ばれます)。

マルチモーダルディレクティブとの比較

マルチモーダルデバイス用VSK(Video Skills Kit)の実装では、Alexaから送信されるディレクティブを解釈して応答する必要があります(ディレクティブリファレンスの概要を参照)。このディレクティブは、Fire TV対応アプリで使用されるディレクティブと似ていますが、以下のように違いがあります。

  • SearchAndPlay(Fire TV用)はGetPlayableItems(マルチモーダル用)と似ています。これらのディレクティブは再生の発話をサポートします。
  • SearchAndDisplayResults(Fire TV用)はGetDisplayableItems(マルチモーダル用)と似ています。これらのディレクティブは検索の発話をサポートします。

ただし、マルチモーダルデバイスには、上記のそれぞれに対して2つのディレクティブが用意されています(GetPlayableItemsGetPlayableItemsMetadataGetDisplayableItemsGetDisplayableItemsMetadata)。これは、基本的な対話モデルが異なるためです。マルチモーダルデバイスでは、LambdaはレスポンスでAlexaに情報を返します。Fire TV対応アプリでは、LambdaはAmazon Device Messagingを通じて必要な情報を直接アプリにプッシュします。

用語 – リクエストとディレクティブ

「リクエスト」と「ディレクティブ」という用語は、このビデオスキルのドキュメントではほぼ同じ意味です。リクエストは、AlexaからLambdaに送信されるメッセージを指す、より一般的な用語です。ビデオスキルでは、メッセージはdirectiveとして記述されるため、コード内ではリクエストを「ディレクティブ」と呼びます。 これは、その他のAlexa Skills Kitドキュメントで使用されている用語と一致しています。

また、この「ディレクティブ」という用語を使用することで、ユーザーの発話(映画を再生するリクエストなど)と、AlexaからLambdaに送信される情報とを区別することができます。