チャンネルナビゲーション用のGetPlayableItemsディレクティブ
チャンネルを変更するための発話(「PBSを見せて」など)をユーザーが行うと、表示するチャンネルについての情報を含むGetPlayableItemsディレクティブがVideoContentProvider APIからLambdaに送信されます。
下図のように、LambdaからはレスポンスとしてGetPlayableItemsResponseを返す必要があります。
GetPlayableItemsディレクティブとGetPlayableItemsMetadataディレクティブがLambdaのコードとどのようにやり取りするかについては、手順3: AlexaディレクティブとLambdaのレスポンスを理解するを参照してください。- GetPlayableItemsの発話(チャンネルナビゲーション)
- GetPlayableItemsの例(チャンネルナビゲーション)
- ペイロードの説明
- Lambdaのレスポンス
- レスポンスの例(チャンネルナビゲーション)
- ペイロードの説明
GetPlayableItemsの発話(チャンネルナビゲーション)
ユーザーが以下のチャンネル変更の発話を行うと、AlexaはLambdaにGetPlayableItemsディレクティブを送信します。これは通常のGetPlayableItemsディレクティブとほぼ同じですが、チャンネル固有のプロパティが含まれます。
| 機能 | サンプル発話 | 想定されるレスポンス | 
|---|---|---|
| チャンネル名に移動 認定に必須 | Go to fox | ビューが指定されたチャンネル名に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネル番号に移動 認定に必須 | Go to channel thirteen | ビューが指定されたチャンネル番号に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネルコールサインに移動 認定に必須 | Go to channel k. c. p. q. | ビューが指定されたチャンネルコールサインに切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネル名を視聴 認定に必須 | Watch fox | ビューが指定されたチャンネル名に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネル番号を視聴 認定に必須 | Watch channel thirteen | ビューが指定されたチャンネル番号に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| 機能 | サンプル発話 | 想定されるレスポンス | 
|---|---|---|
| チャンネル名に移動 認定に必須 | Va sur [ChannelName] | ビューが指定されたチャンネル名に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネル番号に移動 認定に必須 | va sur [ChannelNumber] | ビューが指定されたチャンネル番号に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネルコールサインに移動 認定に必須 | cambia canal a t. p. d. | ビューが指定されたチャンネルコールサインに切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネル名を視聴 認定に必須 | mets [ChannelName] joue [ChannelName] | ビューが指定されたチャンネル名に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネル番号を視聴 認定に必須 | mets la chaîne[ChannelNumber] joue la chaîne[ChannelNumber] | ビューが指定されたチャンネル番号に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| 機能 | サンプル発話 | 想定されるレスポンス | 
|---|---|---|
| チャンネル名に移動 認定に必須 | Va sur [ChannelName] | ビューが指定されたチャンネル名に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネル番号に移動 認定に必須 | va sur [ChannelNumber] | ビューが指定されたチャンネル番号に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネルコールサインに移動 認定に必須 | va sur [channel] | ビューが指定されたチャンネルコールサインに切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネル名を視聴 認定に必須 | mets [ChannelName] joue [ChannelName] | ビューが指定されたチャンネル名に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネル番号を視聴 認定に必須 | mets la chaîne[ChannelNumber] joue la chaîne[ChannelNumber] | ビューが指定されたチャンネル番号に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| 機能 | サンプル発話 | 想定されるレスポンス | 
|---|---|---|
| チャンネル名に移動 認定に必須 | (schalt auf|geh zu) [ChannelName] schalt kanal [ChannelName] ein (geh|schalt|wechsel|änder) zum kanal [ChannelName] (geh|schalt|wechsel|änder) zu [ChannelName] kanal (wechsel|änder) den kanal zu [ChannelName] (wechsel|änder) den kanal zu [ChannelName] auf [AppName] schalt [ChannelName] auf [AppName] an schalt kanal [ChannelName] auf [AppName] an (geh|schalte|wechsel) zu [ChannelName] auf [AppName] (stell|schalt) [ChannelName] ein auf [AppName] (stell|schalt|wechsel) (um zu|auf) [ChannelName] auf [AppName] schalt kanal [ChannelName] auf [AppName] an mach [ChannelName] auf [AppName] an | ビューが指定されたチャンネル名に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネル番号に移動 認定に必須 | schalt kanal [ChannelNumber] ein (geh|schalt|wechsel|änder) zum kanal [ChannelNumber] (geh|schalt|wechsel|änder) zu [ChannelNumber] kanal (wechsel|änder) den kanal zu [ChannelNumber] (wechsel|änder) den kanal zu [ChannelNumber] auf [AppName] schalt [ChannelNumber] auf [AppName] an schalt kanal [ChannelNumber] auf [AppName] an (geh|schalte|wechsel) zu [ChannelNumber] auf [AppName] (stell|schalt) [ChannelNumber] ein auf [AppName] (stell|schalt|wechsel) (um zu|auf) [ChannelNumber] auf [AppName] schalt kanal [ChannelNumber] auf [AppName] an mach [ChannelNumber] auf [AppName] an kanal [ChannelNumber] | ビューが指定されたチャンネル番号に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネルコールサインに移動 認定に必須 | schalte/änder/geh zu/auf den fernsehsender [ChannelName] geh zum (fernseh)kanal [ChannelName] ändern den (fernseh)kanal zu/auf [ChannelName] | ビューが指定されたチャンネルコールサインに切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネル名を視聴 認定に必須 | [ChannelName] auf [AppName] ansehen spiel den kanal [ChannelName] ab | ビューが指定されたチャンネル名に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネル番号を視聴 認定に必須 | Zeige Kanal/Sender [channel number] Kanal/Sender [channel number] anschauen | ビューが指定されたチャンネル番号に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| 機能 | サンプル発話 | 想定されるレスポンス | 
|---|---|---|
| チャンネル名に移動 認定に必須 | fox पर/पे जाओ/जाइए/जाना/चलो/चलना | ビューが指定されたチャンネル名に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネル番号に移動 認定に必須 | channel दस पर/पे जाओ/जाना/जाइए/चलो/चलना | ビューが指定されたチャンネル番号に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネルコールサインに移動 認定に必須 | channel sony पर/पे जाओ/जाना/जाइए/चलो/चलना | ビューが指定されたチャンネルコールサインに切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネル名を視聴 認定に必須 | fox देखो/देखिए/देखना/देखें | ビューが指定されたチャンネル名に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネル番号を視聴 認定に必須 | channel बारह देखो/देखना/देखिए/देखें | ビューが指定されたチャンネル番号に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| 機能 | サンプル発話 | 想定されるレスポンス | 
|---|---|---|
| チャンネル名に移動 認定に必須 | vai su [ChannelName] vai a [ChannelName] | ビューが指定されたチャンネル名に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネル番号に移動 認定に必須 | vai al [ChannelNumber] vai su [ChannelNumber] | ビューが指定されたチャンネル番号に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネルコールサインに移動 認定に必須 | vai su [Channel] vai a [Channel] | ビューが指定されたチャンネルコールサインに切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネル名を視聴 認定に必須 | guarda [ChannelName] fammi vedere [ChannelName] | ビューが指定されたチャンネル名に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネル番号を視聴 認定に必須 | metti [ChannelNumber] | ビューが指定されたチャンネル番号に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| 機能 | サンプル発話 | 想定されるレスポンス | 
|---|---|---|
| チャンネル名に移動 認定に必須 | [ChannelName]を検索 | ビューが指定されたチャンネル名に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネル番号に移動 認定に必須 |  | ビューが指定されたチャンネル番号に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネルコールサインに移動 認定に必須 |  | ビューが指定されたチャンネルコールサインに切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネル名を視聴 認定に必須 | [ChannelName]を見せて | ビューが指定されたチャンネル名に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネル番号を視聴 認定に必須 | チャンネル[ChannelNumber]を見せて | ビューが指定されたチャンネル番号に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| 機能 | サンプル発話 | 想定されるレスポンス | 
|---|---|---|
| チャンネル名に移動 認定に必須 | vá/vai/ir para o canal [ChannelName] | ビューが指定されたチャンネル名に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネル番号に移動 認定に必須 |  | ビューが指定されたチャンネル番号に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネルコールサインに移動 認定に必須 | vá para o canal [CallSign] | ビューが指定されたチャンネルコールサインに切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネル名を視聴 認定に必須 | assistir/assiste/assista [ChannelName]Assistir/assiste/assistao [ChannelName] | ビューが指定されたチャンネル名に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネル番号を視聴 認定に必須 | assitir canal [ChannelNumber] | ビューが指定されたチャンネル番号に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| 機能 | サンプル発話 | 想定されるレスポンス | 
|---|---|---|
| チャンネル名に移動 認定に必須 | cambia a antena tres | ビューが指定されたチャンネル名に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネル番号に移動 認定に必須 | cambia el canal a la dos | ビューが指定されたチャンネル番号に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネルコールサインに移動 認定に必須 | cambia canal a t. p. d. | ビューが指定されたチャンネルコールサインに切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネル名を視聴 認定に必須 | ver la sexta pon la sexta | ビューが指定されたチャンネル名に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
| チャンネル番号を視聴 認定に必須 | pon canal dos | ビューが指定されたチャンネル番号に切り替わり、そのチャンネルのコンテンツが再生されます。 | 
チャンネルに関しては、マルチモーダルデバイスとFire TV対応アプリとで実装が異なることに注意してください。Fire TV対応アプリではチャンネルナビゲーション専用のディレクティブ(ChangeChannel)があるのに対し、マルチモーダルの実装では、再生とチャンネルナビゲーションのどちらの発話にもGetPlayableItemsを使用します(ただしプロパティは異なります)。
GetPlayableItemsの例(チャンネルナビゲーション)
特定のチャンネルのGetPlayableItemsディレクティブの例を次に示します。payloadには、チャンネルのシナリオに固有のフィールドが存在します。
{
    "directive": {
        "header": {
            "correlationToken": "dFMb0z+PgpgdDmluhJ1LddFvSqZ/jCc8ptlAKulUj90jSqg==",
            "messageId": "9f4803ec-4c94-4fdf-89c2-d502d5e52bb4",
            "name": "GetPlayableItems",
            "namespace": "Alexa.VideoContentProvider",
            "payloadVersion": "3"
        },
        "endpoint": {
            "scope": {
                "type": "BearerToken",
                "token": "access-token-from-skill"
            },
            "endpointId": "videoDevice-001",
            "cookie": {
            }
        },
        "payload": {
            "entities": [
                {
                    "type": "Channel",
                    "value": "PBS",
                    "externalIds": {
                        "imdb": "tt4574334"
                    },
                    "entityMetadata": {
                        "channelCallSign": "KBTC",
                        "channelNumber": "123"
                    }
                }
            ],
            "contentType": "RECORDING",
            "locale": "ja-JP",
            "minResultLimit": 8,
            "maxResultLimit": 25,
            "timeWindow": {
                "start": "2016-09-01T00:00:00+00:00",
                "end": "2016-09-07T23:59:00+00:00"
            }
        }
    }
}
"type": "Channel"を持つentitiesには、 テレビチャンネルに関する情報が含まれていることに注意してください。
ペイロードの説明
次の表は、GetPlayableItemsディレクティブのpayloadについて説明しています。
| フィールド | 説明 | データ型 | 
|---|---|---|
| entities(必須) | 検索するエンティティオブジェクトのリスト。通常、異なるエンティティタイプ間の関係は、AND演算と解釈されます。たとえば、 一方、 さらに、 現時点では、一致するエンティティが複数ある場合にユーザーが何を再生したいかを知る方法がAlexaにはないため、エンティティのランク付けは行われません。 
  {
  "type": "Channel",
  "value": "PBS",
  "externalIds": {
      "imdb": "tt4574334"
  },
  "entityMetadata": {
      "channelCallSign": "KBTC",
      "channelNumber": "123"
  }
}  | リスト | 
| type(必須) | ビデオコンテンツのエンティティタイプ。ビデオコンテンツのエンティティタイプの一覧については、エンティティタイプを参照してください。 例:  | 文字列 | 
| value(必須) | エンティティの値。チャンネルの場合は、チャンネル名。 例:  | 文字列 | 
| externalIds(省略可能) | このエンティティの外部識別子のマップ。 keyはプロバイダー、valueはidです。例: | オブジェクト | 
| minResultLimit(必須) | この呼び出しで返される結果で 
 例:  | 整数 | 
| maxResultLimit(必須) | 返される結果の最大件数(上限)。詳細については、 例:  | 整数 | 
| timeWindow(省略可能) | リクエストされた処理の開始時刻と終了時刻を指定します。これは通常、ライブTVや録画にのみ使用され、オンデマンドコンテンツには使用されません。一般的に、タイムウィンドウが指定されており、それを使用して結果をフィルタリングできる場合は、タイムウィンドウを使用する必要があります。 検索対象がオンデマンドコンテンツのみとなるプロバイダーの場合は、タイムウィンドウフィールドが通常nullに設定されているため、無視して構いません。 ライブTVや録画でユーザーがタイムウィンドウを指定している場合(「午後4時から5時のテレビ番組を検索して」や「先週録画したテレビ番組を探して」など)、開始時刻と終了時刻が指定されていれば、それらを使用して結果をフィルタリングする必要があります。 機能によって、 | startとendの時間を含むオブジェクト | 
| start(省略可能) | タイムウィンドウの開始時刻。 例:  | ISO 8601形式の文字列 | 
| end(省略可能) | タイムウィンドウの終了時刻。 例:  | ISO 8601形式の文字列 | 
| contentType(必須) | 
 
 例:  | 列挙型 | 
| locale(必須) | ユーザーのロケール。検索結果に対応する表示可能な情報を取得するために必要となります。ロケールの形式は、Network Working Groupの「Best Current Practice 47(BCP-47)」(英語のみ)で規定されている言語の形式と同じです。認識されないロケールを受信した場合は、デフォルトで 例: | 文字列 | 
| imdb(省略可能) | 外部IMDB識別子です。 例: | 文字列 | 
| entityMetadata(省略可能) | チャンネルに関連付けられたメタデータのマップです。 | オブジェクト | 
| channelCallSign(channel)(省略可能) | チャンネルのコールサインです。 例:  | 文字列 | 
| channelNumber(channel)(省略可能) | チャンネル番号です。 例:  | 整数 | 
エンティティタイプ
entitiesオブジェクトは、オブジェクトのリストで構成されています。それぞれのオブジェクトには、タイプ(type)や値のほか、外部IDなどのその他のデータが含まれます。type値として使用できる値は、 Actor、App、Channel、Character、Director、Episode、Event、Franchise、Genre、League、MediaType、ProductionCompany、Season、Sport、SportsTeam、Video、Popularity、Recency、VideoResolutionです。以下のセクションでは、各エンティティタイプのペイロードの詳細について説明します。
Actor
Actorは、ビデオメディアコンテンツに出演している俳優を表します。たとえば、俳優の「ケイシー・アフレック」の場合は、以下のようなフィールドが含まれます。
| Actorペイロードのフィールド | 説明 | 型 | 例 | 
|---|---|---|---|
| externalIds | このエンティティの外部識別子のマップです。キーはプロバイダー、値はIDです。 | オブジェクト | — | 
| └─ ASIN | このエンティティの外部ASINです。 | 文字列 | B01LTHZVKG | 
| └─ imdb | 俳優のIMDB識別子です。 | 文字列 | tt4034228 | 
| uri | 俳優/女優へのURIマッピングです。 | URI | entity://provider/actor/caseyaffleck  | 
| value | 俳優の名前です。 | 文字列 | ケイシー・アフレック | 
App
Appは、ユーザーが発話で指定した明示的なアプリ名を表します。たとえば、「Amazonプライム・ビデオの『マンチェスター・バイ・ザ・シー』」の場合は、以下のようなフィールドが含まれます。
| Appペイロードのフィールド | 説明 | 型 | 例 | 
|---|---|---|---|
| externalIds | このエンティティの外部識別子のマップです。キーはプロバイダー、値はIDです。 | オブジェクト | — | 
| └─ ENTITY_ID | アプリのリストに含まれるアプリ識別子です。 | 文字列 | amzn1.alexa-ask-target.app.72095 | 
| value | アプリの名前です。 | 文字列 | Amazonプライム・ビデオ | 
Channel
Channelは、テレビチャンネルの識別データを表します。たとえば、「PBS」には以下のようなフィールドが含まれます。
| Channelペイロードのフィールド | 説明 | 型 | 例 | 
|---|---|---|---|
| externalIds | このエンティティの外部識別子のマップです。キーはプロバイダー、値はIDです。 | オブジェクト | — | 
| └─ imdb | 外部IMDB識別子です。 | 文字列 | tt4034228 | 
| entityMetadata | チャンネルに関連付けられたメタデータのマップです。 | オブジェクト | — | 
| └─ channelNumber | チャンネル番号です。 | 整数 | 1234 | 
| └─ channelCallSign | チャンネルのコールサインです。 | 文字列 | KBTC | 
| uri | チャンネルのURIです。 | URI | entity://provider/channel/1234  | 
| value | チャンネルの名前です。 | 文字列 | PBS | 
Character
Characterは、ビデオメディアコンテンツのキャラクターを表します。
| Characterペイロードのフィールド | 説明 | 型 | 例 | 
|---|---|---|---|
| externalIds | このエンティティの外部識別子のマップです。キーはプロバイダー、値はIDです。 | オブジェクト | — | 
| └─ ASIN | このエンティティのASIN(Amazon Standard Identification Number)です。 | 文字列 | B00DT55P3K | 
| └─ imdb | キャラクターのIMDB識別子です。 | 文字列 | character id | 
| uri | キャラクターへのURIマッピングです。 | URI | entity://provider/character/snowwhite  | 
| value | キャラクターの名前です。 | 文字列 | 白雪姫 | 
Director
Directorは、ビデオメディアコンテンツの監督名を表します。たとえば、「ケネス・ロナーガン」の場合は、以下のようなフィールドが含まれます。
| Directorペイロードのフィールド | 説明 | 型 | 例 | 
|---|---|---|---|
| externalIds | このエンティティの外部識別子のマップです。キーはプロバイダー、値はIDです。 | オブジェクト | — | 
| └─ imdb | 外部IMDB識別子です。 | 文字列 | tt4034228 | 
| uri | 監督へのURIマッピングです。 | URI | entity://provider/director/kennethlonergan | 
| value | 監督の名前です。 | 文字列 | ケネス・ロナーガン | 
Episode
Episodeは、TV番組などの連続コンテンツのエピソード番号を表します。たとえば、「トランスペアレント」第8話のエピソード番号は「8」になります。
| Episodeペイロードのフィールド | 説明 | 型 | 例 | 
|---|---|---|---|
| value | エピソード番号です。 | 整数 | 8 | 
Event
Eventは、イベントタイプへの参照です。これには、スポーツ、音楽、その他のタイプのイベントが含まれます。たとえば、「フットボールの試合」を検索する場合、「試合」というイベントエンティティと「フットボール」というスポーツエンティティが検索されます。
| Eventペイロードのフィールド | 説明 | 型 | 例 | 
|---|---|---|---|
| externalIds | このエンティティの外部識別子のマップです。キーはプロバイダー、値はIDです。 | オブジェクト | — | 
| └─ imdb | イベントのIMDB識別子です。 | 文字列 | tt4034228 | 
| uri | イベントへのURIマッピングです。 | URI | entity://amazon/events/games  | 
| value | イベントタイプの名前です。 | 文字列 | 試合 | 
Franchise
Franchiseは、映画やTV番組など、複数のビデオエンティティを表すビデオエンティティです。たとえば、「宇宙大戦争」というSFシリーズの場合、映画シリーズのほか、アニメと実写のTV番組もあります。このエンティティタイプを使用すると、たとえばユーザーが「『宇宙大戦争』の映画を探して」とリクエストした場合、1つのタイトルだけでなく、MediaTypeがMOVIEである「宇宙大戦争」の全コンテンツを検索できます。
| Franchiseペイロードのフィールド | 説明 | 型 | 例 | 
|---|---|---|---|
| externalIds | このエンティティの外部識別子のマップです。キーはプロバイダー、値はIDです。 | オブジェクト | — | 
| └─ imdb | 外部IMDB識別子です。 | 文字列 | tt4034228 | 
| uri | シリーズへのURIマッピングです。 | イベントへのURIマッピングです。 | entity://amazon/franchise/intergalacticwars | 
| value | ジャンルの名前です。 | 文字列 | 宇宙大戦争 | 
Genre
Genreは、アクション、ドラマ、コメディといった、ビデオメディアコンテンツのジャンルを表します。たとえば、アクションのジャンルの場合は、以下のようなフィールドが含まれます。
| Genreペイロードのフィールド | 説明 | 型 | 例 | 
|---|---|---|---|
| externalIds | このエンティティの外部識別子のマップです。キーはプロバイダー、値はIDです。 | オブジェクト | — | 
| └─ imdb | 外部IMDB識別子です。 | 文字列 | tt4034228 | 
| uri | ジャンルへのURIマッピングです。 | URI | entity://provider/genre/action | 
| value | ジャンルの名前です。 | 文字列 | アクション | 
League
Leagueは、スポーツリーグのカテゴリー情報を表します。たとえば、NCAAというリーグの場合は、以下のようなフィールドが含まれます。
| Leagueペイロードのフィールド | 説明 | 型 | 例 | 
|---|---|---|---|
| externalIds | このエンティティの外部識別子のマップです。キーはプロバイダー、値はIDです。 | オブジェクト | — | 
| └─ imdb | リーグのIMDB識別子です。 | 文字列 | tt4034228 | 
| uri | リーグへのURIマッピングです。 | URI | entity://amazon/league/ncaa | 
| value | リーグの名前です。 | 文字列 | NCAA | 
MediaType
MediaTypeは、特定のコンテンツのメディアタイプカテゴリーを表します。たとえば、「マンチェスター・バイ・ザ・シー」という映画の場合、MediaTypeはMOVIEになります。
| MediaTypeペイロードのフィールド | 説明 | 型 | 例 | 
|---|---|---|---|
| value | メディアタイプです。有効な値は、 MOVIE、VIDEO、TV_SHOWです。 | 列挙型 | MOVIE | 
ProductionCompany
ProductionCompanyは、ビデオメディアコンテンツの制作会社名を表します(例:Marvels、Disney)。
| ProductionCompanyペイロードのフィールド | 説明 | 型 | 例 | 
|---|---|---|---|
| value | 制作会社の名前です。 | 文字列 | Marvel | 
Season
Seasonは、TV番組などの連続コンテンツのシーズン番号を表します。たとえば、「トランスペアレント」シーズン2のシーズン番号は「2」になります。
| Seasonペイロードのフィールド | 説明 | 型 | 例 | 
|---|---|---|---|
| value | シーズン番号です。 | 整数 | 2 | 
Sport
Sportは、スポーツのカテゴリー情報を表します。たとえば、フットボールの場合は、以下のようなフィールドが含まれます。
| Sportペイロードのフィールド | 説明 | 型 | 例 | 
|---|---|---|---|
| externalIds | このエンティティの外部識別子のマップです。キーはプロバイダー、値はIDです。 | オブジェクト | — | 
| └─ imdb | スポーツのIMDB識別子です。 | 文字列 | tt4034228 | 
| uri | スポーツへのURIマッピングです。 | URI | entity://amazon/sport/football  | 
| value | スポーツの名前です。 | 文字列 | フットボール | 
SportsTeam
SportsTeamは、プロスポーツチームのカテゴリー情報を表します。たとえば、「ワシントン大学ハスキーズ」というスポーツチームの場合は、以下のようなフィールドが含まれます。
| SportsTeamペイロードのフィールド | 説明 | 型 | 例 | 
|---|---|---|---|
| externalIds | このエンティティの外部識別子のマップです。キーはプロバイダー、値はIDです。 | オブジェクト | — | 
| └─ imdb | このチームのIMDB識別子です。 | 文字列 | tt4034228 | 
| uri | スポーツチームへのURIマッピングです。 | URI | entity://amazon/sportsteam/huskies | 
| value | スポーツチームの名前です。 | 文字列 | ワシントン大学ハスキーズ | 
Video
Videoは、ビデオコンテンツの識別データを表します。たとえば、「マンチェスター・バイ・ザ・シー」という映画の場合は、以下のようなフィールドが含まれます。
| Videoペイロードのフィールド | 説明 | 型 | 例 | 
|---|---|---|---|
| externalIds | このエンティティの外部識別子のマップです。キーはプロバイダー、値はIDです。 | オブジェクト | — | 
| ASIN | このエンティティの外部ASINです。 | 文字列 | B01LTHZVKG | 
| └─ imdb | IMDB識別子です。 | 文字列 | tt4034228 | 
| userConfirmations | アイテムのユーザー確認に関する情報を含むオブジェクトです。 | オブジェクト | |
| └─ entitlementVoiceActivation | 視聴期間または視聴権限の音声有効化に成功したかどうかをパートナーに通知するフラグです。有効な値 - CONFIRMED(省略可能)。 | 列挙型(デフォルトポリシー:認識されない値は無視) | CONFIRMED | 
| uri | ビデオへのURIマッピングです。 | URI | entity://provider/movie/manchesterbythesea | 
| value | ビデオの名前です。 | 文字列 | マンチェスター・バイ・ザ・シー | 
Popularity
Popularityは、ユーザーが人気コンテンツを求めているかどうかを示します。
| Popularityペイロードのフィールド | 説明 | 型 | 例 | 
|---|---|---|---|
| value | ユーザーが人気コンテンツを検索したことをプロバイダーに示します。 | 文字列 | TRUE | 
Recency
Recencyの解決済みの値は、ユーザーが新しいコンテンツを求めているか、古いコンテンツを求めているかを示します。
| Recencyペイロードのフィールド | 説明 | 型 | 例 | 
|---|---|---|---|
| value | ユーザーが新しいコンテンツと古いコンテンツのどちらを検索するかを示します。有効な値は、 NEW、OLDのいずれかです。 | 列挙型 | NEW | 
VideoResolution
VideoResolutionは、リクエストされたビデオ解像度を次のいずれかの規格で表します。
- SD (480p)
- HD (720p-1080p)
- 4k (2160p)
- 8k (4320p)
| VideoResolutionペイロードのフィールド | 説明 | 型 | 例 | 
|---|---|---|---|
| value | ビデオ解像度です。有効な値は、 SD、HD、4k、8kです。 | 列挙型 | HD | 
マルチモーダルデバイスでは、追加のエンティティタイプとして、 LISTTYPEとSORTTYPEが用意されています。
LISTTYPEは、ユーザーがウォッチリストやライブラリの閲覧を希望した場合に設定されます。たとえば、「ウォッチリストを見せて」や「ビデオライブラリを見せて」といった発話が挙げられます。 LISTTYPEには、次の列挙値を設定できます。
- WATCHLIST: 「ウォッチリストを見せて」 - ユーザーのウォッチリストに追加されているビデオを表示する際に使用します。
- LIBRARY: 「ビデオライブラリを見せて」 - ユーザーのライブラリに存在するビデオを表示する際に使用します。通常、これにはユーザーが購入したビデオが該当します。
SORTTYPEは、検索時に使用するリクエストや、結果のソート方法に関して、追加情報を提供する際に使用されます。たとえば、「おすすめの映画を見せて」という発話の場合、Alexaはコンテンツプロバイダーからのおすすめコンテンツを取得する必要があります。SORTTYPEには、次の列挙値を設定できます。
- RECOMMENDED: 「おすすめの映画を見せて」や「おすすめのアクション映画を見せて」といった発話の場合、この値が設定されます。
エクスペリエンスタイプ
experienceオブジェクトを使用すると、検索に使用されたデバイスに基づいて、検索結果の表示を最適化できます。たとえば、ユーザーがFire TVリモコンを使用して検索した場合、ユーザーはリモコンを使用して結果を閲覧できるため、experienceオブジェクトによって多数の検索結果が表示されます。一方、Fire TVとペアリングされたEchoを使用して検索リクエストが行われた場合は、experienceオブジェクトによって表示される結果の数と表示方法が制限され、ユーザーはリモコンを使用せずに結果を確認できます。
experienceオブジェクトは、検索結果の表示方法を決定するmodeオブジェクトで構成されています。modeオブジェクトは、 VOICE_OPTIMIZEDとDEFAULTの2つの値を取ります。
- 
    VOICE_OPTIMIZED: 音声専用デバイス向けに最適化された表示方法です。リモコンを使用せずに音声で操作できる検索結果のリストが表示されます。
- 
    DEFAULT: 検索に使用されたデバイスに関係なく、すべての検索結果をリスト形式で表示する、デフォルトの表示方法です。
上位互換性を確保するため、modeで不明な値を受け取った場合は、失敗とするのではなく、DEFAULTにフォールバックするようにしてください。
Lambdaのレスポンス
GetPlayableItemsディレクティブを受信したら、Lambdaはここで示す構造に準拠したGetPlayableItemsResponseレスポンスを返す必要があります。この場合のレスポンス構造は、GetDisplayableItemsディレクティブに対して返すレスポンスと同様です。
レスポンスについては、以下のガイドラインに従ってください。
- 
    GetPlayableItemsディレクティブの目的は、そのディレクティブで再生できる単一のアイテムを取得することです。
- 
    再生するアイテムが1つしかない場合、そのアイテムを返せば、Alexaによってアイテムが再生されます。 
- 
    再生するアイテムがはっきりしない場合は、レスポンスで複数のアイテムを返すことができます。Alexaは、その中から再生するアイテムを選択するようユーザーに促します。たとえば、ユーザーが「『スター・ウォーズ』を再生して」と言った場合、レスポンスで返すアイテムとしては、「スター・ウォーズ」シリーズの映画だけでなく、「スター・ウォーズ」に関連したさまざまな映画やテレビ番組が考えられます。複数の結果を返した場合、Alexaはメタデータを取得して検索結果を表示するために GetDisplayableItemsMetadataディレクティブを送信します。1回目の呼び出しで返す結果の件数が、ディレクティブで指定されたresultLimitパラメーターの値を超えないように注意してください。
- 
    ユーザーにタイトルを再生する権限がないことや、定期購入が必要であることが原因で、見つかった唯一の結果が再生できない場合でも、そのアイテムを返すことができます。そのアイテムが再生できないとわかると、Alexaはメタデータを取得して、購入・レンタル・定期購入を促すプロンプトを提供します。その後、ユーザーは購入ワークフローを開始し、タイトルを購入・レンタルしてから再生することができます。 
- 
    再生できない結果が複数見つかった場合は、その結果をすべて返すことができます。Alexaは、再生するアイテムを選び出すようユーザーに求めるか、アイテムの購入・レンタル・定期購入を促すプロンプトを提供します。 
- 
    再生できるアイテムと再生できないアイテムとが混在する複数の結果が見つかった場合は、再生できるアイテムを優先する必要があります。デバイスで再生できるように、再生可能な結果を返すようにしてください。 
レスポンスの例(チャンネルナビゲーション)
チャンネル変更のシナリオに関連するGetPlayableItemsResponseの例を次に示します。
{
    "event": {
        "header": {
            "correlationToken": "dFMb0z+PgpgdDmluhJ1LddFvSqZ/jCc8ptlAKulUj90jSqg==",
            "messageId": "5f0a0546-caad-416f-a617-80cf083a05cd",
            "name": "GetPlayableItemsResponse",
            "namespace": "Alexa.VideoContentProvider",
            "payloadVersion": "3"
        },
        "payload": {
            "nextToken": "fvkjbr20dvjbkwOpqStr",
            "mediaItems": [
                {
                    "mediaIdentifier": {
                        "id": "channelId://provider1.dvr.rp.1234-2345-63434-asdf"
                    }
                }
            ]
        }
    }
}
ペイロードの説明
次の表は、GetPlayableItemsResponseのpayloadフィールドについて説明しています。
| フィールド | 説明 | データ型 | 
|---|---|---|
| nextToken(省略可能) | 次の結果セットを取得するためのトークン。プロバイダーから送信される不透明型の文字列で、後続の検索リクエストで返されます。 | 文字列 | 
| mediaItems(必須) | 検索結果として画面に表示されるビデオの | リスト | 
| mediaIdentifier(必須) | 
 | オブジェクト | 
| id(必須) | ビデオアイテムの識別子。後続の | 文字列 | 

