開発者コンソール

GetPlayableItemsディレクティブ


GetPlayableItemsディレクティブ

VideoNameActorNameGenreNameなどの条件を使用して映画やテレビ番組、録画などを再生するようユーザーがAlexaに依頼すると、GetPlayableItemsディレクティブがVideoContentProvider APIからLambdaに送信されます。

下図のように、LambdaからはレスポンスとしてGetPlayableItemsResponseを返す必要があります。

GetPlayableItemsディレクティブとLambdaのGetPlayableItemsResponse

GetPlayableItemsの発話

ユーザーが以下の発話を行うと、AlexaはLambdaにGetPlayableItemsディレクティブを送信します。

機能 サンプル発話 想定されるレスポンス バージョン
タイトルを再生

Watch breaking bad

ich möchte <VideoName> gucken

spiel <VideoName>

spiel watchlist ab von <VideoName>?

mets / joue / lance <VideoName> sur <AppName>

mets / joue / lance / pars <VideoName> sur <AppName>

metti / trasmetti / riproduci / fammi guardare / fammi vedere + VideoName (+ da/su DeviceName

pon interstellar

reproduce interstellar

ver interstellar

<VideoName>を再生して <VideoName>を<AppName>で再生して <AppName>で<VideoName><MediaType>を再生して

tocar/assistir/reproduzir <VideoName> no/na <AppName>

<VideoName> चलाओ/बजाओ/लगाओ/play/देखो <AppName> पे/पर/में <VideoName> चलाओ/बजाओ/लगाओ/play

リクエストされたメディアが再生されます。一致するコンテンツが複数ある場合、ユーザーは目的のメディアを選択するように求められます。

1.0

メディアタイプで再生

Watch a movie

spiel einen <MediaType>

spiel <MediaType> aus der/meiner watchlist

streame den <MediaType> <VideoName> auf <AppName>/<Device> spiel trailer von <VideoName>

spiel die neueste folge von <VideoName>

regarde un film

mets un film

joue un film

regarde un film

mets un film

joue un film

pars un film

guarda un film

metti un fim

trasmetti un film

riproduci un film

pon la película*

reproduce la película*

Note: Not supported in es-ES or es-US

<VideoName>を再生して <VideoName>を<AppName>で再生して <AppName>で<VideoName><MediaType>を再生して

<MediaType>を再生して

<ActorNameName>が出ている<MediaType>を再生

<Anaphor><MediaType>を流して

<AppName>で<GenreNameName><MediaType>を再生

<AppName>で<VideoName><MediaType>を再生して

<ChannelName>の<MediaType>を再生

assistir um filme

colocar um filme

nós podemos assistir um filme

ver um filme

<VideoName> movies चलाओ/बजाओ/लगाओ/play/देखो

タイトル以外のリクエストに一致するメディアが(ユーザーへのおすすめビデオを選び出すアルゴリズムによって)再生されるか、検索結果リストがユーザーに表示されます。

1.0

俳優で再生

Watch sean connery

spiel <VideoName> (mit <ActorName>) auf <AppName>

streame einen film mit <ActorName> auf <AppName>

streame einen <ActorName> film auf <AppName>

streame eine serie mit <ActorName> auf <AppName>

streame eine <ActorName> serie auf <AppName>

regarde un film avec <actor>

mets un film avec <actor>

joue un film avec <actor>

regarde un film avec <actor>

mets un film avec <actor>

joue un film avec <actor>

pars un film avec <actor>

guarda un film con <ActorName>

metti un film con <ActorName>

pon salma hayek

reproduce salma hayek

<ActorNameName>が出ている<MediaType>を再生

assistir <ator>

colocar <ator>

coloque filmes com <ator>

encontre filmes com <ator>

me mostre filmes com <ator>

<ActorName> का/की/के movies को चलाओ/बजाओ/लगाओ/play/देखो <ActorName> का/की/के movies चलाओ/बजाओ/लगाओ/play/देखो <ActorName> का/की/के <GenreName> को चलाओ/बजाओ/लगाओ/play/देखो <ActorName> का/की/के <GenreName> चलाओ/बजाओ/लगाओ/play/देखो <ActorName> का/की/के <VideoName> को चलाओ/बजाओ/लगाओ/play/देखो <ActorName> का/की/के <VideoName> चलाओ/बजाओ/लगाओ/play/देखो

<ActorName> का/की/के/वाला <GenreName> की <VideoName> को चलाओ/बजाओ/लगाओ/play/देखो <ActorName> का/की/के/वाला <GenreName> की <VideoName> चलाओ/बजाओ/लगाओ/play/देखो

該当する俳優が出演しているメディアが(ユーザーへのベストマッチを選び出すアルゴリズムによって)再生されるか、検索結果リストがユーザーに表示されます。

1.0

シーズン番号で<タイトル>を再生

Watch breaking bad season two

spiel <VideoName> <Season> <Season_Numer>

spiel <VideoName> <Season> <Season_Numer> auf <AppName>

Regarde la saison <x> de <title>

Mets la saison <x> de <title>

Regarde <title> saison <x>

Mets <title> saison <x>

Joue <title> saison <x>

Joue la saison <x> de <title>

regarde la saison <x> de <title>

mets la saison <x> de <title>

joue la saison

<x> de <title>

pars la saison <x> de <title>

regarde <title> saison <x>

mets <title> saison <x>

joue <title> saison <x>

pars <title> saison <x>

joue la saison <x> de <title>

guarda <VideoName> stagione due

metti <VideoName> stagione due

riproduci <VideoName> stagione due

empieza la segunda temporada de los rompecorazones

comienza la segunda temporada de los rompecorazones

reproduce la segunda temporada de los rompecorazones

<VideoName>の<Season><Season_Number>の

assistir <title> temporada <x>

colocar <title> temporada <x>

reproduzir <title> temporada <x>

<VideoName> का/की/के <SeasonNumber> को चलाओ/बजाओ/लगाओ/play/देखो <VideoName> का/की/के <SeasonNumber> चलाओ/बजाओ/लगाओ/play/देखो <VideoName> का/की/के <SeasonNumber> को चलाओ/बजाओ/लगाओ/play/देखो <VideoName> का/की/के <SeasonNumber> <SeasonNumber> चलाओ/बजाओ/लगाओ/play/देखो

シリーズの最後に視聴したエピソードが視聴途中の場合は、そのエピソードが再生されます。視聴が完了している場合は、次の未視聴エピソードが再生されます。

1.0

エピソード番号で<タイトル>を再生

Watch breaking bad episode five

spiel die <Episode_Number> <Episode> von <VideoName>

spiel <VideoName> <Episode_Number>

spiel von <VideoName> <Episode> <Episode_Number>

Regarde l'épisode <x> de <title>

Mets l'épisode <x> de <title>

Joue l'épisode <x> de <title>

Joue <title> épisode <x>

regarde l'épisode <x> de <title>

mets l'épisode <x> de <title>

joue l'épisode <x> de <title>

pars l'épisode <x> de <title>

joue <title> épisode <x>

mets <title> épisode <x>

guarda <VideoName> episodio cinque

metti <VideoName> episodio cinque

riproduci <VideoName> episodio cinque

pon el capítulo final de los serrano

<Episode_Number><Episode>を再生

assistir <title> episódio <x>

colocar <title> episódio <x>

reproduzir <title> episódio <x>

reproduzir o <title> episódio <x>

<VideoName> का/की/के <EpisodeNumber> को चलाओ/बजाओ/लगाओ/play/देखो <VideoName> का/की/के <EpisodeNumber> चलाओ/बजाओ/लगाओ/play/देखो

ユーザーが最後に視聴したエピソードから、適切なシーズンが特定されます。シリーズの最後に視聴したエピソードが視聴途中の場合は、そのエピソードが再生されます。視聴が完了している場合は、次の未視聴エピソードが再生されます。

1.0

シーズン番号とエピソード番号で<タイトル>を再生

Watch breaking bad season two episode five

spiel <Season> <Season_Numer> <Episode> <Episode_Number> von <VideoName>

spiel <VideoName> <Season> <Season_Numer> <Episode> <Episode_Number>

spiel die <VideoName> <Season> <Season_Numer> <Episode> <Episode_Number> auf <AppName> ab

Regarde l'épisode <x> de la saison <x> de <title>

Joue l'épisode <x> de la saison <x> de <title>

Mets l'épisode <x> de la saison <x> de <title>

Same as fr-FR

guarda <VideoName> stagione due episodio cinque

metti <VideoName> stagione due episodio cinque

riproduci <VideoName> stagione due episodio cinque

pon el segundo episodio de la primera temporada de anabel

reproduce el cuarto episodio de la temporada tres de águila roja

<Episode_Number><Episode>を再生

<VideoName>の<Season><Season_Number>の

assistir <title> temporada <x> episódio <x>

colocar <title> temporada <x> episódio <x>

reproduzir <title> temporada <x> episódio <x>

<VideoName> season one episode one चलाओ/बजाओ/लगाओ/play करो

<VideoName> season एक का episode एक चलाओ/बजाओ/लगाओ/play करो

リクエストされたシーズンとエピソードに対応するコンテンツが再生されます。

1.0

シリーズの<タイトル>で再生

Watch star trek

ich möchte <VideoName> gucken

spiel <VideoName>

spiel watchlist ab von <VideoName>?

Regarde <title>

Mets <title>

Joue <title>

regarde <title>

mets <title>

joue <title>

pars <title>

guarda star trek

fammi vedere star trek

mostra star trek

pon star wars

reproduce star wars

assitir jornada nas estrelas

colocar jornada nas estrelas

reproduzir jornada nas estrelas

você pode passsar jornada nas estrelas

por favor reproduzir jornada nas estrelas

star trek देखो/देखना/देखिए

リクエストされたシリーズの検索結果から最上位のおすすめが再生されるか、一致するシリーズのリストがユーザーに表示されます。

1.0

キャラクター名で再生

Watch james bond

Not supported

Not supported

Not supported

guarda <CharacterName>

fammi vedere un film con james bond

mostrami un film di james bond

reproduce algo con james bond

Not Supported

<CharacterName> का/की/के/वाला movies चलाओ/बजाओ/लगाओ/play/देखो <CharacterName> का/की/के/वाला movies को चलाओ/बजाओ/लगाओ/play/देखो Watch <CharacterName> movie <VideoName>

キャラクター名に一致するメディアが(ユーザーへのおすすめメディアを選び出すアルゴリズムによって)再生されるか、メディアの検索結果リストがユーザーに表示されます。

1.0

ジャンル名で再生

Watch comedy

spiel eine <GenreName> <MediaType> auf <DeviceType> ab

spiel eine <GenreName> <MediaType> auf <AppName> ab

<GenreName> <MediaType> schauen

spiel einen <GenreName> <MediaType>

regarder un <GenreName>

regarder une <GenreName>

mets un <GenreName>

mets une <GenreName>

joue un <GenreName>

joue une <GenreName

regarder un <GenreName>

regarder une <GenreName>

mets un <GenreName>

mets une <GenreName>

joue un <GenreName>

joue une <GenreName

guarda una <GenreName>

fammi vedere una commedia

mostra mi una commedia

metti una commedia

pon comedia en netflix (Not supported without AppName)

<AppName>で<GenreNameName><MediaType>を再生<AppName>で<GenreNameName>を再生

assitir <GenreName>

assistir programas de <GenreName>

programas de <GenreName>

colocar <GenreName>

por favor reproduzir <GenreName>

reproduzir programas de <GenreName>

c

olocar um programa de <GenreName>

<GenreName> <VideoName> को चलाओ/बजाओ/लगाओ/play/देखो <GenreName> <VideoName> चलाओ/बजाओ/लगाओ/play/देखो

リクエストされたジャンルからメディアが(ユーザーへのおすすめメディアを選び出すアルゴリズムによって)再生されるか、メディアの検索結果リストがユーザーに表示されます。

1.0

スポーツのチームで再生

Watch seahawks

spiel <SportsTeam> <Event> auf <AppName>

<SportsTeam> <Event> anschauen/ansehen

das <SportsTeam> <Event> auf <AppName> anschauen/ansehen

spiel das <SportsTeam> <Event> auf meinem <Device>

Regarde le <team>

Regarde le match de <team>

Regarde le <team>

Regarde le match de <team>

riproduci la partita del <SportsTeam>

ver el partido del real madrid

<SportsTeam>の<Event>を<AppName>で見せて

assisitr <SportTeam>

assitir o/a <SportTeam>

colocar no/na <SportTeam>

colocar o jogo do/da <SportTeam>

me mostre o jogo do/da <SportTeam>

mostre o jogo do/da <SportTeam>

<Sport/League/Seam> games चलाओ/बजाओ/लगाओ/play/देखो <Sport/League/Seam> के games को चलाओ/बजाओ/लगाओ/play/देखो

スポーツのチームに一致するメディアが(ユーザーへのおすすめメディアを選び出すアルゴリズムによって)再生されるか、メディアの検索結果リストがユーザーに表示されます。

1.0

スポーツの種類で再生

Watch soccer

spiel das <Sport> <Event> auf meinem <Device>

das <Sport> <Event> ansehen

Not supported

Not supported

not supported

reproduce el partido de fútbol en mi televisor

ver el partido de fútbol en mi tele

ver el partido de fútbol

<SportsTeam>の<Event>を<AppName>で見せて

assistir <Sport>

<Sport/League/Seam> games चलाओ/बजाओ/लगाओ/play/देखो <Sport/League/Seam> के games को चलाओ/बजाओ/लगाओ/play/देखो

スポーツの種類に一致するメディアが(ユーザーへのおすすめメディアを選び出すアルゴリズムによって)再生されるか、検索結果リストがユーザーに表示されます。

1.0

スポーツのリーグで再生

Watch n. b. a. league

spiel <SportsTeam> <Event> auf <AppName>

<SportsTeam> <Event> anschauen

Mets <league>

Joue <league>

Regarde <league>

Mets <league>

Joue <league>

Regarde <league>

trasmetti la partita della <League>

pon el partido de la a. c. b. en mi tele

ver el partido de la a. c. b. en mi televisor

<SportsTeam>の<Event>を<AppName>で見せて

assistir <League>

colocar <League>

<Sport/League/Seam> games चलाओ/बजाओ/लगाओ/play/देखो

<Sport/League/Seam> के games को चलाओ/बजाओ/लगाओ/play/देखो

スポーツのリーグに一致するメディアが(ユーザーへのおすすめメディアを選び出すアルゴリズムによって)再生されるか、検索結果リストがユーザーに表示されます。

1.0

スポーツのイベントで再生

Watch soccer game

spiel das <Sport> <Event> auf meinem <Device>

das <Sport> <Event> ansehen

Not supported

Not supported

not supported

ver el partido de fútbol

<SportsTeam>の<Event>を<AppName>で見せて

not supported

<Sport/League/Seam> games चलाओ/बजाओ/लगाओ/play/देखो <Sport/League/Seam> के games को चलाओ/बजाओ/लगाओ/play/देखो

スポーツのイベントに一致するメディアが(ユーザーへのおすすめメディアを選び出すアルゴリズムによって)再生されるか、検索結果リストがユーザーに表示されます。

1.0

GetPlayableItemsディレクティブの処理

Alexaは、ユーザーの発話を解析してインテントを判断し、それをGetPlayableItemsディレクティブとしてパッケージ化します。しかし、ユーザーが何を再生したいのかがはっきりとはわからない場合もあります。そこでAlexaは、再生するアイテムを検索できるよう、リクエストされたコンテンツをLambdaに送信します。

Lambdaから送信するレスポンスには、再生可能なコンテンツを特定する基本的な情報を含める必要があります。そのレスポンスに応じて、Alexaは次のことを行います。

  • Lambdaからレスポンスで返されたアイテムが1つだけの場合は、再生を開始するためにGetPlayableItemsMetadataディレクティブを送信します。
  • Lambdaからレスポンスで返されたアイテムが複数ある場合は、検索結果を表示するためにGetDisplayableItemsMetadataディレクティブを送信します。

GetPlayableItemsディレクティブは、header名を除けばGetDisplayableItemsと同じです。GetPlayableItemsディレクティブが使用されるのは、デバイスでコンテンツを再生するようユーザーから依頼された場合です。再生用のディレクティブと検索用のディレクティブとが分かれているため、よりユーザーのインテントに沿った処理を行うことが可能になります。 

各種のシナリオで検索を実行する方法についての一般的な指針は次のとおりです。

ビデオ名 (例:「『インターステラー』を再生して」)

「『インターステラー』を再生して」のように、ユーザーの発話にビデオ名が含まれていた場合、Alexaから送信されるGetPlayableItemsディレクティブには、カタログ内で見つかった関連性の高いビデオ名がすべて含まれます。また、このディレクティブのexternalIdsフィールドには、カタログIDも含まれています。videoNamesと共に送信されるIDに基づいてコンテンツを選定し、再生できるアイテムを選択して返すようにしてください。

ジャンル/俳優 (例:「コメディ映画を再生して」、「トム・クルーズのアクション映画を再生して」)

ビデオ名がなく、ジャンルや俳優といったその他のスロットがある場合は、GetPlayableItemsディレクティブがAlexaから送信されます。このような場合は、ディレクティブで送信されたエンティティを使用して検索を実行する必要があります。

たとえば、「アクション映画を再生して」という発話の場合、{mediaType: MOVIE, genreName: コメディ}GetPlayableItemsディレクティブで送信されます。この情報を基に検索を実行し、コメディ映画の識別子を返すことができます。 

「トム・クルーズのアクション映画を再生して」という発話の場合も同様に、{mediaType: MOVIE, genreName: アクション, actorName: トム・クルーズ}GetPlayableItemsディレクティブで送信されるので、この条件に一致する映画の識別子を検索して返すことができます。

識別子をレスポンスで返すと、追加のメタデータを取得するためのGetPlayableItemsMetadataディレクティブがAlexaから送信されます。

GetPlayableItemsの例

GetPlayableItemsディレクティブの例を次に示します。この例では、メディアのタイトル(「マンチェスター・バイ・ザ・シー」)がユーザーから明示的に指定されています。

{
    "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": "Video",
                    "value": "マンチェスター・バイ・ザ・シー",
                    "externalIds": {
                        "gracenote": "MV000000099001"
                    }
                }
            ],
            "contentType": "RECORDING",
            "locale": "ja-JP",
            "minResultLimit": 8,
            "maxResultLimit": 25,
            "timeWindow": {
                "end": "2016-09-07T23:59:00+00:00",
                "start": "2016-09-01T00:00:00+00:00"
            }
        }
    }
}

ペイロードの説明

次の表は、GetPlayableItemsディレクティブのpayloadについて説明しています。

ペイロードの説明
フィールド 説明 データ型
entities
(必須)

検索するエンティティオブジェクトのリスト。通常、異なるエンティティタイプ間の関係は、AND演算と解釈されます。たとえば、{genreName = "コメディ," actorName ="トム・ハンクス"}を含むリクエストの場合、検索結果にはトム・ハンクスが出演するコメディの映画またはテレビ番組が含まれることになります。

一方、{videoName = "インターステラー," VideoName = "宇宙戦争"}など、同じタイプの複数のエンティティがリクエストに含まれる場合は、OR演算と見なし、ディレクティブ内のすべてのエンティティを検索することができます。不確かな場合は、そのタイプ(このケースではvideoName)の先頭のエンティティを最も関連性が高いものと見なします。

さらに、{mediaType = "MOVIE', genreName = "コメディ," actorName ="トム・ハンクス," actorName = "トム・ハンクス}というリクエストを考えてみましょう。これは、トム・ハンクスという名前の俳優が複数存在すると考えられます。このような場合は、リクエスト内のすべての俳優を含む映画を検索したうえで、コメディのジャンルでフィルタリングして、すべての検索結果を返すことができます。

現時点では、一致するエンティティが複数ある場合にユーザーが何を再生したいかを知る方法がAlexaにはないため、エンティティのランク付けは行われません。

type: Channelを持つentitiesには、 テレビチャンネルの識別データが格納されます。以下に例を示します。

 {
  "type": "Channel",
  "value": "PBS",
  "externalIds": {
      "gracenote": "MV000000099001"
  },
  "entityMetadata": {
      "channelCallSign": "KBTC",
      "channelNumber": "123"
  }
} 

リスト
type

ビデオコンテンツのエンティティタイプ。ビデオコンテンツのエンティティタイプの詳細については、ビデオコンテンツのエンティティタイプを参照してください。このリストに加えて、Alexa Skills Kitには、マルチモーダルデバイス用の新しいタイプ (LISTTYPESORTTYPE)が追加されています。

LISTTYPEは、ユーザーがウォッチリストやライブラリの閲覧を希望した場合に設定されます。たとえば、「ウォッチリストを見せて」や「ビデオライブラリを見せて」といった発話が挙げられます。 LISTTYPEには、次の列挙値を設定できます。

  • WATCHLIST: 「ウォッチリストを見せて」 - ユーザーのウォッチリストに追加されているビデオを表示する際に使用します。
  • LIBRARY: 「ビデオライブラリを見せて」 - ユーザーのライブラリに存在するビデオを表示する際に使用します。通常、これにはユーザーが購入したビデオが該当します。

SORTTYPEは、検索時に使用するリクエストの追加情報や、結果のソート方法を指定する際に使用します。たとえば、「おすすめの映画を見せて」という発話の場合、Alexaはコンテンツプロバイダーからのおすすめコンテンツを取得する必要があります。SORTTYPEには、次の列挙値を設定できます。

  • RECOMMENDED: 「おすすめの映画を見せて」や「おすすめのアクション映画を見せて」といった発話の場合、この値が設定されます。

例: MEDIATYPEVIDEOACTORGENREFRANCHISESEASONEPISODE

文字列
value
(必須)

エンティティの値。チャンネルの場合は、チャンネル名。

例: インターステラーPBS

文字列
externalIds

このエンティティの外部識別子のマップ。keyはプロバイダー、valueidです。

例:key = gracenote(またはgti)、value = SH000000012

オブジェクト
Gracenote

外部Gracenote ID。

例: ST0000000666661

文字列
contentType

contentTypeは、検索するコンテンツのカテゴリーを指定します。エンティティのmediaTypeとは異なることに注意してください。mediaTypeでは、検索するメディアのタイプ(映画、テレビ番組など)を指定します。そのため、録画した映画を閲覧する場合は、「録画した映画を見せて」などと発話します。このとき、mediaTypeはMOVIEに、contentTypeはRECORDINGに設定されます。同様に、ライブTVのコンテンツを閲覧する場合は、「今放送中の番組を見せて」などと発話します。このとき、contentTypeはLIVEに設定されます。

例: RECORDINGLIVEON_DEMAND

列挙型
locale
(必須)

ユーザーのロケール。検索結果に対応する表示可能な情報を取得するために必要となります。ロケールの形式は、Network Working Groupの「Best Current Practice 47(BCP-47)」(英語のみ)で規定されている言語の形式と同じです。認識されないロケールを受信した場合は、デフォルトでen-USになります。

例:en-USen-GBde-DE

文字列
minResultLimit
(必須)

この呼び出しで返される結果でpageTokenが必要となる最小件数。pageTokenは次の結果を取得するためのもので、新しいアイテムを取得する際にこれと一緒に返されたアイテムの件数がminResultLimitフィールドよりも少ない場合、AlexaはpageTokenを無視し、受信したアイテムをそのまま表示します。

pageTokenを使用して次の結果を取得するのは、アイテムの件数がminResultLimitの値以上である場合のみです。ただし、アイテムの件数がminResultLimitを超える場合は、maxResultLimitが上限となります。アイテムの件数がmaxResultLimitを超えると、maxResultLimitを超えたアイテムはAlexaによって破棄されます。

例: 8

整数
maxResultLimit
(必須)

返される結果の最大件数(上限)。詳細については、minResultLimitフィールドの説明を参照してください。

例: 25

整数
timeWindow

リクエストされた処理の開始時刻と終了時刻を指定します。これは通常、ライブTVや録画にのみ使用され、オンデマンドコンテンツには使用されません。一般的に、タイムウィンドウが指定されており、それを使用して結果をフィルタリングできる場合は、タイムウィンドウを使用する必要があります。

検索対象がオンデマンドコンテンツのみとなるプロバイダーの場合は、タイムウィンドウフィールドが通常nullに設定されているため、無視して構いません。

ライブTVや録画でユーザーがタイムウィンドウを指定している場合(「午後4時から5時のテレビ番組を検索して」や「先週録画したテレビ番組を探して」など)、開始時刻と終了時刻が指定されていれば、それらを使用して結果をフィルタリングする必要があります。

機能によって、startendの両方のフィールドが存在する場合と、どちらか一方のフィールドしか存在しない場合とがあります。たとえば、「午後4時から5時のテレビ番組を検索して」の場合は両方のフィールドが存在しますが、「午後5時に始まるテレビ番組を見せて」の場合、設定されるのはstartフィールドだけで、endフィールドはnullになります。

startendの時間を含むオブジェクト
start

タイムウィンドウの開始時刻。

例: 2016-09-07T23:59:00+00:002018-01-24T02:30:00Z

ISO 8601形式の文字列
end

タイムウィンドウの終了時刻。

例: 2016-09-07T23:59:00+00:002018-01-24T02:30:00Z

ISO 8601形式の文字列

Lambdaのレスポンス

GetPlayableItemsディレクティブを受信したら、Lambdaはここで示す構造に準拠したGetPlayableItemsResponseレスポンスを返す必要があります。この場合のレスポンス構造は、GetDisplayableItemsディレクティブに対して返すレスポンスと同様です。

レスポンスについては、以下のガイドラインに従ってください。 

  • GetPlayableItemsディレクティブの目的は、そのディレクティブで再生できる単一のアイテムを取得することです。 

  • 再生するアイテムが1つしかない場合、そのアイテムを返せば、Alexaによってアイテムが再生されます。 

  • 再生するアイテムがはっきりしない場合は、レスポンスで複数のアイテムを返すことができます。Alexaは、その中から再生するアイテムを選択するようユーザーに促します。たとえば、ユーザーが「『スター・ウォーズ』を再生して」と言った場合、レスポンスで返すアイテムとしては、「スター・ウォーズ」シリーズの映画だけでなく、「スター・ウォーズ」に関連したさまざまな映画やテレビ番組が考えられます。複数の結果を返した場合、Alexaはメタデータを取得して検索結果を表示するためにGetDisplayableItemsMetadataディレクティブを送信します。1回目の呼び出しで返す結果の件数が、ディレクティブで指定されたresultLimitパラメーターの値を超えないように注意してください。

  • ユーザーにタイトルを再生する権限がないことや、定期購入が必要であることが原因で、見つかった唯一の結果が再生できない場合でも、そのアイテムを返すことができます。そのアイテムが再生できないとわかると、Alexaはメタデータを取得して、購入・レンタル・定期購入を促すプロンプトを提供します。その後、ユーザーは購入ワークフローを開始し、タイトルを購入・レンタルしてから再生することができます。

  • 再生できない結果が複数見つかった場合は、その結果をすべて返すことができます。Alexaは、再生するアイテムを選び出すようユーザーに求めるか、アイテムの購入・レンタル・定期購入を促すプロンプトを提供します。

  • 再生できるアイテムと再生できないアイテムとが混在する複数の結果が見つかった場合は、再生できるアイテムを優先する必要があります。デバイスで再生できるように、再生可能な結果を返すようにしてください。

レスポンスの例

GetPlayableItemsに対するLambdaからのレスポンスの例を次に示します。

{
    "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": "recordingId://provider1.dvr.rp.1234-2345-63434-asdf"
                    }
                },
                {
                    "mediaIdentifier": {
                        "id": "recordingId://provider1.dvr.rp.1234-2345-63434-asdf"
                    }
                }
            ]
        }
    }
}

ペイロードの説明

次の表は、GetPlayableItemsResponsepayloadフィールドについて説明しています。

ペイロードの説明
フィールド 説明 データ型
nextToken

次の結果セットを取得するためのトークン。プロバイダーから送信される不透明型の文字列で、後続の検索リクエストで返されます。

文字列
mediaItems
(必須)

検索結果として画面に表示されるビデオのmediaIdentifierのリスト。

リスト
mediaIdentifier
(必須)

mediaItemの識別子。mediaIdentifierオブジェクトからの画像サイズデータの取得を参照してください。

オブジェクト
id
(必須)

ビデオアイテムの識別子。後続のGetDisplayableItemsMetadataまたはGetPlayableItemsMetadataの呼び出しで、表示または再生に関連したメタデータ情報を取得する目的で使用されます。この識別子は、Alexaからは認識できず、メタデータ情報を照会する際にそのまま使用されます。

文字列