バッジ
検索結果のタイルやビデオの再生画面でユーザーに有益な情報を提供するには、多くの場合、バッジ(コンテキスト画像)の使用が効果的です。このセクションでは、使用可能なバッジの種類とその用途について説明します。
実装できるバッジ
次の表に、実装できる表示バッジの種類を示します。
バッジの種類 | 説明 |
---|---|
Recording(録画中) | ユーザーが意図的にコンテンツを録画しているときに表示されます。このバッジは、ほかのどのバッジよりも優先されます。 |
Live(生放送中) | コンテンツがリアルタイムで放送されているときに表示されます(例:アカデミー賞、エミー賞、スポーツ中継などの番組)。 |
On Now(放送中) | 特定の時間にチャンネルでコンテンツが放送されているときに表示されます。生放送とはみなされません。 |
ネットワークロゴ
バッジに加えて、ネットワークロゴやネットワークコールサインを表示して、コンテンツの放送局を示す必要もあります。たとえば、ユーザーが「<プロバイダー>でコメディのテレビ番組を見せて」と発話したとします。 こうした場合、<プロバイダー>ではABC、HBO、CBSといった複数のネットワークのコンテンツを表示できることがあります。
マルチモーダルデバイスでこのような結果を返すときは、コンテンツの提供元を示すネットワークロゴをボックスアートの下部に表示する必要があります。ネットワークロゴが利用できない場合は、ABC、HBOなどのネットワークコールサインを表示してください。
コンテンツの鮮度
また、検索結果のメタデータと併せて、コンテンツが「新しい」ものかどうかも示す必要があります。コンテンツプロバイダーからこの情報を取得して表示することで、そのコンテンツが初回放送であることを示すことができます。
たとえば、「ビッグバン・セオリー」のエピソードを検索するとします。エピソード1~5は放送済みであり、新たにエピソード6の視聴が可能になっている場合、この情報がコンテンツプロバイダーから提供されるので、エピソード6についてはほかのメタデータと共に「NEW」を表示することができます。
スキルでバッジを指定するには、Lambdaから送信されるGetDisplayableItemsMetadataResponse
とGetPlayableItemsMetadataResponse
のレスポンスを使用します。
バッジAPI
バッジをサポートするには、GetDisplayableItemsMetadataResponse
レスポンスのペイロード内で次の構造体を使用する必要があります。
recording
: コンテンツが録画中であるかどうかを示す目的で使用されます。contentFreshness
: 新しいコンテンツであるかどうかを示す目的で使用されます。networkDetails
: チャンネルのメタデータを指定する目的で使用されます。airingDetails
: 開始時刻と終了時刻のほか、コンテンツが生放送中であるかどうかを指定する目的で使用されます。
GetDisplayableItemsMetadataResponseの例
Lambdaから送信される、バッジを含むGetDisplayableItemsMetadataResponse
の例を次に示します。
{
"payload": {
"searchResults": [
{
"name": "インターステラー",
"contentType": "LIVE",
"releaseYear": "2011",
"selectionAction": "PLAY",
"thumbnailImage": {
"contentDescription": "インターステラーの画像",
"sources": [
{
"url": "https://ecx.images-amazon.com/images/I/81nSh3pZUDL.RI.jpg",
"size": "X_SMALL",
"widthPixels": 480,
"heightPixels": 320
}
]
},
"runtime": {
"runTimeInMilliseconds": 120931123,
"displayString": "2時間30分"
},
"closedCaption": {
"status": "AVAILABLE",
"displayString": "字幕"
},
"absoluteViewingPositionMilliseconds": 0,
"parentalControl": {
"pinControl": "REQUIRED"
},
"viewingDisplayString": "PlayNow",
"rating": {
"category": "PG-13"
},
"recording": {
"status": "RECORDING"
},
"contentFreshness": {
"state": "NEW"
},
"networkDetails": [
{
"channel": {
"number": "1234",
"callSign": "PBS",
"affiliateCallSign": "KCTS9",
"uri": "someUrl"
},
"channelMetadata": {
"name": "AlternateChannelName",
"image": "https://ecx.images-amazon.com/images/I/81nSh3pZUDL.RI.jpg"
},
"airingDetails": [
{
"isLiveBroadcast": "true",
"end": "2018-01-24T02: 30: 00Z",
"start": "2018-01-24T00: 00: 00Z"
}
]
}
]
}
]
}
}
ペイロードの説明
フィールド | 説明 | データ型 |
---|---|---|
recording (省略可能) |
録画に関連する情報。現在のところ、構造体のフィールドは |
オブジェクト |
status (recording)(省略可能) |
コンテンツの録画ステータス。次の列挙値を使用できます。
例: |
文字列 |
contentFreshness (省略可能) |
コンテンツの鮮度についての詳細。 |
オブジェクト |
state (contentFreshness)(省略可能) |
Alexaに結果を返しているプロバイダーの新しいコンテンツであるかどうか。使用できる列挙値は 例: |
文字列 |
networkDetails (省略可能) |
番組を放送しているネットワークについての情報。たとえば、「ビッグバン・セオリー」の新しいエピソードであればCBS、サッカーの生中継であればESPNといった放送局の情報です。オンデマンドコンテンツの場合は、たとえばAmazonプライム・ビデオで配信される「ゲーム・オブ・スローンズ」であれば、制作局のHBOとなります。結果アイテムがチャンネルのライブ番組( |
リスト |
isLiveBroadcast (省略可能) |
このコンテンツがリアルタイムで放送されているかどうか。NFLフットボールの試合中継や、アカデミー賞、エミー賞のような授賞式など、リアルタイムで放送されるライブイベントの場合は、 実際に放送される時刻よりも前に撮影されたコンテンツの場合は、 例: |
ブール型 |
GetPlayableItemsMetadataResponseの例
GetDisplayableItemsMetadata
で使用されているnetworkDetails
構造体は、GetPlayableItemsMetadata
でも使用されます。GetPlayableItemsMetadataResponse
レスポンスの例を次に示します。
{
"event": {
"header": {
"correlationToken": "dFMb0z+PgpgdDmluhJ1LddFvSqZ/jCc8ptlAKulUj90jSqg==",
"messageId": "38ce5b22-eeff-40b8-a84f-979446f9b27e",
"name": "GetPlayableItemsMetadataResponse",
"namespace": "Alexa.VideoContentProvider",
"payloadVersion": "3"
},
"payload": {
"searchResults": [
{
"name": "インターステラー",
"contentType": "LIVE",
"playbackContextToken": "amzn1.dv.gti.b4a9f7c6-5def-7e63-9aa7-df38a479333e",
"parentalControl": {
"pinControl": "REQUIRED"
},
"networkDetails": [
{
"channel": {
"callSign": "PBS",
"affiliateCallSign": "KCTS9"
},
"channelMetadata": {
"name": "AlternateChannelName"
},
"airingDetails": [
{
"isLiveBroadcast": "true",
"end": "2018-01-24T02: 30: 00Z",
"start": "2018-01-24T00: 00: 00Z"
}
]
}
]
}
]
}
}
}