Fire TV対応アプリ用ビデオスキルについて


Fire TV対応アプリ用ビデオスキルについて

Fire TV対応アプリ用ビデオスキルを実装すると、自然言語コマンドを使用してアプリの起動やコンテンツ検索、メディア再生の制御、チャンネル変更などを行えるようになります。たとえば、「<アプリ名>の『Bosch』を再生して」や「『Bosch』をお願い」などのフレーズを言えば、アプリがメディア再生を始めてくれます。

Fire TV対応アプリ用ビデオスキルを実装する場合、まずAlexa Skills KitのAlexaビデオスキルAPIを実装します。ただし、AndroidベースのFire TV対応メディアストリーミングアプリに統合させる場合は、追加のAPIやサービスが必要になります(例:Amazon Device Messaging(ADM)AWS LambdaAWS S3AWS IAMLogin with AmazonCloudWatchNode.jsAlexa Client Libraryなど)。Fire TV対応アプリにビデオスキルを組み込むことで、優れた音声エクスペリエンスを提供しながらコンテンツをユーザーに届け、エンゲージメントやコンテンツの見つけやすさの向上を図れるようになります。

Fire TV対応アプリ用ビデオスキルで提供可能な機能

Fire TV対応アプリにビデオスキルを統合することで、以下の機能が利用可能になります。

  • アプリの起動: ユーザーが特定のコンテンツの再生や検索を依頼すると、Alexaが自動的に適切なFire TV対応アプリを起動します。「アレクサ、<アプリ名>を開いて」と言うと、アプリのホームページに移動します。ビデオスキルを使用すると、AlexaビデオスキルAPI経由でアプリを自動的に起動できるようになります。
  • クイック再生: 「アレクサ、<番組名>を再生して」または「アレクサ、<アプリ名>で<番組名>を再生して」と言うだけで、ビデオを再生することができます。その際、該当コンテンツを含む適切なアプリが開き、Fire TVが自動的に再生を開始します(詳細ページへは移動しません)。
  • 検索: 「アレクサ、<番組名>を探して」と言えば、Alexaにコンテンツのユニバーサル検索を依頼できます。 「ユニバーサル検索」では、カタログ統合されているすべてのFire TV対応アプリを対象にコンテンツ検索が行われます。検索範囲を特定のアプリに絞る方法は「ローカル検索」と呼ばれ、 「アレクサ、<アプリ名>で<番組名>を探して」や「アレクサ、<アプリ名>で<ジャンル>を探して」などと言うことで実行することができます。
  • トランスポートコントロール: 「アレクサ、早送りして」「アレクサ、5分早送りして」「アレクサ、次へ」「アレクサ、前へ」などの発話を使用すると、再生・早戻し・一時停止・再開・停止などの操作を音声で制御することができます。
  • チャンネル変更: ライブ配信機能を搭載するアプリの場合、「アレクサ、<アプリ名>に変えて」などの発話を通じてチャンネルを切り替えることができます。

よくあるやり取りの例を以下に示します。

ユーザーがあるTV番組の再生をAlexaに依頼します。
ユーザーがあるTV番組の再生をAlexaに依頼します。
Fire TV対応アプリ用ビデオスキルを介して、Alexaがコンテンツを見つけて再生します。
アプリで有効化されたビデオスキルを通じて、Alexaがコンテンツを見つけて再生します。

実装する必要があるのは、アプリで利用可能な機能のロジックだけです。たとえば、チャンネル機能がないアプリの場合、ビデオスキルでチャンネル変更の動作を実装する必要はありません。

一般的に、音声機能があるとコンテンツの検索と再生を楽に行えるようになります(映画やテレビ番組を扱うアプリとビデオスキルは相性抜群です)。また、音声機能の搭載はコンテンツへのエンゲージメントを高める上でもお勧めです。

音声操作は多くのデバイスにおける標準機能になりつつあります。音声操作によってユーザーエクスペリエンスが簡略化され、アプリの使用率が向上するしくみについて詳しくは、AWSのトレーニングと認定に関するライブラリにあるGetting into the Voice Mindset(英語のみ)を参照してください。

前提条件: カタログ統合

Fire TV対応アプリにビデオスキルを組み込むには、アプリのカタログ統合が必須となります。カタログ統合とは、XMLスキーマで記述されたAmazonのカタログデータフォーマット(CDF)に従ってアプリのメディアを記述し、カタログ統合の手順に沿ってカタログをS3バケットに定期的にアップロードするプロセスのことです。

カタログ統合は、IMDb、Amazonプライム・ビデオ、Gracenoteに組み込まれ検出されるのにふさわしい十分な数の長編映画やTV番組シリーズを持つアプリに制限されています。これらのソースに含まれていないコンテンツで構成されたカタログを使用する場合は、Amazonビジネスの担当者にお問い合わせください。

カタログ統合の条件を満たさない場合は、Fire TV対応アプリでビデオスキルを実装することはできません。ただしその場合でも、以下の関連技術を利用すれば音声機能の一部をアプリに組み込むことは可能です。

Fire TV対応アプリにビデオスキルを実装する場合、スキルの機能に「トランスポートコントロール」が自動的に含まれることになります。ビデオスキルに含まれない「アプリ内のナビゲーションと選択」の有効化は、Amazon側で手動で行う必要がありますが、既に有効になっている可能性もあります(Alexaビデオスキルを実装すれば最高水準の音声対応機能を提供できるため、追加の音声統合を行う必要はありません)。

サポート対象国

Fire TV対応アプリ用ビデオスキルは、すべての国でサポートされているわけではありません。サポート対象外の国では、同スキルの作成はできません。

さらに、Lambda関数に使用するAWSリージョンは、厳密に遵守する必要があります。たとえば、英国に拠点がある場合は、欧州(アイルランド)リージョンを使用しなければなりません。

国とサポートの詳細な一覧については、Fire TV対応アプリ用ビデオスキルのサポート対象国を参照してください。また、同ドキュメントに記載のAWSリージョンとビデオスキルも参照してください。

必要なもの

Fire TV対応アプリ用ビデオスキルを作成するには、以下が必要になります。

また、Amazonアプリストア開発者コンソール、Alexa開発者コンソール、AWSでさまざまなサービス(IAM、AWS Lambda、Amazon CloudWatch、セキュリティプロファイルなど)を構成する必要もあります。

大まかなワークフロー

Fire TV対応アプリでビデオスキルを統合するには、まずAlexa開発者コンソールでビデオスキルを作成し、同スキルをAWS Lambda関数に関連付けます。ユーザーが音声でアプリと対話すると、クラウドベースのAlexa Voice Serviceがユーザーのコマンドを「ディレクティブ」と呼ばれるJSONオブジェクトに変換します。

ビデオスキル(ビデオスキルAPIを使用)は、Alexaからそのディレクティブを受け取り、Lambda関数に送信します。Lambda関数はそのリクエストを検査し、アプリで必要なアクション(結果を返す、再生を開始するなど)を実行します。Lambda関数は、プッシュ通知サービスのAmazon Device Messaging(ADM)を使用してアプリとの通信を行います。

詳細なワークフロー

前セクションではビデオスキルの大まかなしくみについて触れましたが、今度はワークフローを詳しく見ていきます。Fire TVにおけるビデオスキルのワークフローは、下図のとおりです。

Fire TV対応アプリ用ビデオスキルの説明図とワークフロー
Fire TV対応アプリ用ビデオスキルの説明図とワークフロー

Alexa搭載デバイスが自然言語のコマンドをリッスンする

Fire TVでは、Alexaがユーザーからの自然言語コマンドをリッスンします。サポートされている発話には、検索・再生・アプリの起動・チャンネル変更・トランスポートコントロールなどのコマンドが含まれます。Alexa搭載デバイスは、これらのコマンドをクラウド上でAlexaに送信します。

Alexaがフレーズを処理してディレクティブを生成する

Alexaはクラウド上で自動音声認識の機能を使用してユーザーの発話を処理し、音声をテキスト変換します。また、Alexaは自然言語理解の機能を使用してコマンドを処理し、テキスト内容の意図を認識します(この言語処理と解釈の機能はすべて無料で利用可能です)。

ディレクティブがビデオスキルAPIを介してLambdaに渡される

クラウド上でAlexaがユーザーの発話やコマンドを分析・解釈して出力されたものが「ディレクティブ」です。 ディレクティブは、JSONオブジェクトとして表現された一連のデータと指示であり、ユーザーの発話に応答する方法を説明するものです。たとえば、ユーザーが「『Bosch』を再生して」と言うと、Alexaはこれを以下のような特定のJSON構造を持つ「再生ディレクティブ」に変換します。

{
  "directive": {
    "payload": {
      "entities": [
        {
          "type": "Video",
          "uri": "entity:\/\/provider\/program\/amzn1.p11cat.merged-video.858df979-c070-5533-9b1f-ecae15e9f139",
          "value": "Bosch",
          "externalIds": {
            "avc_vending_de": "amzn1.dv.gti.e0a9f6b7-ca7e-dc0c-c80e-f5801c580da8",
            "ENTITY_ID": "amzn1.p11cat.merged-video.858df979-c070-5533-9b1f-ecae15e9f139",
            "avc_vending_us": "amzn1.dv.gti.56a9f78c-4cfe-36f0-663d-9104c6dd6595",
            "asin_row_na": "B01M32CYV3",
            "asin_row_fe": "B01MCYRKGY",
            "avc_vending_jp": "amzn1.dv.gti.fea9f575-39fd-7a77-622b-a400f9b511f8",
            "asin_us": "B00S45ZDVE",
            "avc_vending": "amzn1.dv.gti.8cac011f-78c3-114b-b3f8-246a48f23ec0",
            "asin_roe_eu": "B01MCYRQHG",
            "imdb": "tt3502248",
            "ontv": "SH018737530000",
            "asin_gb": "B00IGQC64I",
            "asin_row_eu": "B01MDRHYR2",
            "asin_jp": "B014QF5HMU",
            "avc_vending_gb": "amzn1.dv.gti.10a9f690-1c9c-8c4e-5f67-2007ea0c5ceb",
            "tms": "SH018737530000",
            "cravetv": "m32254",
            "asin_de": "B00ZWBWZXW",
            "gti": "amzn1.dv.gti.10a9f690-1c9c-8c4e-5f67-2007ea0c5ceb",
            "ontv_de": "SH026719310000"
          }
        },
        {
          "type": "Video",
          "uri": "entity:\/\/provider\/program\/amzn1.p11cat.merged-video.a63315af-c728-56bc-90bb-0b8cbdcdad86",
          "value": "Bosch",
          "externalIds": {
            "ENTITY_ID": "amzn1.p11cat.merged-video.a63315af-c728-56bc-90bb-0b8cbdcdad86",
            "imdb": "tt2773036"
          }
        },
        {
          "type": "Video",
          "uri": "entity:\/\/provider\/program\/amzn1.p11cat.merged-video.d9ceb2e4-4802-557d-9461-24e19a438aad",
          "value": "Bosch",
          "externalIds": {
            "gvd": "GN2EAWZBASRC1PJ",
            "ENTITY_ID": "amzn1.p11cat.merged-video.d9ceb2e4-4802-557d-9461-24e19a438aad"
          }
        },
        {
          "type": "Video",
          "uri": "entity:\/\/provider\/program\/amzn1.p11cat.merged-video.75f0a242-6a4c-5912-97be-a06a3a0d5e05",
          "value": "Bosch",
          "externalIds": {
            "ENTITY_ID": "amzn1.p11cat.merged-video.75f0a242-6a4c-5912-97be-a06a3a0d5e05",
            "tms": "SH018739470000",
            "ontv_gb": "SH018739470000"
          }
        },
        {
          "type": "Video",
          "uri": "entity:\/\/provider\/program\/amzn1.p11cat.merged-video.ca646a58-8e1d-55f3-acc7-30245f8ac202",
          "value": "Bosch",
          "externalIds": {
            "gvd": "GN794XKHCHGKGJZ",
            "ENTITY_ID": "amzn1.p11cat.merged-video.ca646a58-8e1d-55f3-acc7-30245f8ac202"
          }
        }
      ]
    },
    "header": {
      "payloadVersion": "3",
      "messageId": "20d83e2d-6b20-4590-92ee-f252c2f607a9",
      "namespace": "Alexa.RemoteVideoPlayer",
      "name": "SearchAndPlay",
      "correlationToken": "cf662810-879e-4d8f-afb7-7488b778cd35"
    },
    "endpoint": {
      "cookie": {

      },
      "endpointId": "VSKTV",
      "scope": {
        "token": "452d41e7-8e4a-71ed-e8fb-dd31b126bf2e",
        "type": "BearerToken"
      }
    }
  }
}

Lambda関数で処理できるディレクティブの種類は、以下のとおりです。

ディレクティブの種類 APIリファレンス
再生ディレクティブ Alexa.RemoteVideoPlayerインターフェースSearchAndPlayセクションを参照)
検索ディレクティブ Alexa.RemoteVideoPlayerインターフェースSearchAndDisplayResultsセクションを参照)
トランスポートコントロールディレクティブ Alexa.PlaybackControllerインターフェース
Alexa.SeekControllerインターフェース
チャンネルナビゲーションディレクティブ Alexa.ChannelControllerインターフェース
起動ディレクティブ Alexa.Launcherインターフェース
記録ディレクティブ Alexa.RecordControllerインターフェース
Alexa.VideoRecorderインターフェース

各ディレクティブの詳細については、Alexaディレクティブを解釈して応答するを参照してください(Fire TV対応アプリにビデオスキルを組み込む際に必要な処理内容を把握できます)。

AlexaはビデオスキルAPIを介して、これらのディレクティブをAWS Lambda関数に送信します。

Lambdaがディレクティブを処理する

Lambdaは、コードをホストするサーバーを必要とせずに、クラウド上でコードを実行できるAWSのサービスです(サーバーレスコンピューティング)。Lambda関数は、ビデオスキルAPI経由で渡されるディレクティブを処理し、簡単なステータスメッセージで応答します。

Lambda関数はさまざまなプログラミング言語に対応していますが、このテクニカルドキュメントで扱うLambdaサンプルコードではNode.jsを使用しています。Lambda関数におけるロジックのプログラミングは、開発者側で行ってください。つまり、Lambda関数にディレクティブを渡す役割はAmazon側が担いますが、必要なアクションをアプリに組み込むのは開発者側ということです。

Lambdaに送信されるディレクティブを処理する方法は複数あります。以下に例を示します。

  • Lambda関数をコーディングして、Lambda関数内でディレクティブを完全に処理する。必要な情報を取得するために、Lambda関数がバックエンドのデータベースやその他サービスに対してクエリを実行する場合があります。Lambdaは、必要なアクションを実行するか、適切な情報を取得してから、アプリに指示を送信します。
  • Lambda関数からディレクティブを直接アプリに送信して、アプリ側でディレクティブの処理を行う。たとえば、アプリ側でクエリやその他サービスを実行して検索を行い、必要な情報を取得してから次のアクションに移ることが可能です。

LambdaがADMを介してアプリに指示を送信する

Lambda関数はAlexaから受信したディレクティブを処理した後、Amazon Device Messaging(ADM)経由のプッシュ通知を通じてFire TV対応アプリに指示を送信します。また、Fire TV対応アプリに統合されたAlexa Client Libraryがアクティブなアプリの情報をAlexaに伝え、Alexaがそのアプリを優先できるようにします。Alexa Client Libraryは音声対応をサポートするJavaライブラリで、スキルを自動的に有効化させる際にAlexaでアプリを認証するのに役立ちます。

Alexaは、Lambda関数に送信されるディレクティブにADM登録IDが含まれていることを確認してくれます。異なるプッシュ通知アーキテクチャとクラウドサービスを使用する場合は、ADMに代わるものを参照してください。

ADMからの受信メッセージに応じてアプリが動作する

指示を受け取ったアプリは、ユーザーのリクエストに応じたアクションを実行します。例として、「映画のタイトルを表示する」アクションが考えられます。繰り返しますが、ディレクティブはLambda関数で処理することも、アプリで処理することも可能です。

開発にかかる推定所要時間

Fire TV対応アプリにビデオスキルを完全統合するには、数週間から数か月かかることがあります。コンテンツのカタログ統合が既に完了している場合、ビデオスキルの実装に必要な開発作業の大部分を占めるのは、Lambda関数から受信したディレクティブを処理するためのロジック作成です。

Fire TV対応アプリにビデオスキルを組み込むプロセスは、一連の手順から成ります。詳細については、「Fire TV対応アプリ用ビデオスキルの作成について」に記載された統合の手順を参照してください。

最初の統合手順(手順1: ビデオスキルとLambda関数を作成する手順2: Echoデバイスでビデオスキルを有効化してテストする)の所要時間は約2時間です。Alexaからクラウド上のLambda関数に送信されるディレクティブを確認できるので、実装範囲の理解が深まるはずです。

命名規則: 「ビデオスキル」と「Video Skills Kit(VSK)」

「Video Skills Kit」や「VSK」という用語がよく出てきますが、 Video Skills Kit(VSK)とビデオスキルは同じものを指します。「Video Skills Kit」という用語は、サービス提供開始時から使用され、早期に同サービスを導入した開発者の間でも定着していました。しかし、Alexa Skills Kitはさまざまな種類のスキルをサポートしています(例:フラッシュブリーフィングスキル、スマートホームスキル、音楽スキル、ミーティングスキル、料理スキル、ビデオスキルなど)。Alexa Skills Kitに含まれる各スキル自体は、キットではありません。

「Fire TV対応アプリ用ビデオスキル」は、ビデオスキルAPIを使用して音声操作機能が実装されたビデオスキルを指します。「Video Skills Kit」や「VSK」という用語は、コードやサンプルアプリ、ユーザーインターフェースなどでいまだに見かけますが、混乱を防ぐために段階的に使用を廃止し、「Fire TV対応アプリ用ビデオスキル」という用語を使用していきます。

ビデオスキルにおけるその他の実装

ビデオスキルは、Fire TV対応アプリ用だけでなく、Echo Showなどのマルチモーダルデバイス用としても作成可能です。Fire TV対応アプリ用ビデオスキルの開発者が、マルチモーダルデバイスとの統合も視野に入れる可能性を考慮して、そのためのテクニカルドキュメントを用意しました。Echo ShowやShowモードを搭載したサードパーティ製デバイスのようなマルチモーダルデバイスでは、メディア再生時に既存のHTML5ウェブプレーヤーとAmazon用カタログ統合を利用する「アプリレス」フレームワークを使用します。デバイスで参照や検索をレンダリングするための既存テンプレートも複数提供されます。詳細については、マルチモーダルデバイス用ビデオスキルについてを参照してください。

セットトップボックスやコンソール、スマートTVなどを作るデバイスメーカーは、直接デバイスにビデオスキルを組み込むことで、ユーザーがアプリを起動したり、チャンネルを変更したりできるようにすることもできます。デバイスのビデオスキル実装には、ライブTVやビデオオンデマンドのコンテンツ用に用意されたGracenoteカタログの活用や、再生・検索・ナビゲーション・録画機能をサポートするLambdaの構築、デバイスソフトウェアが送信する状態情報の確認、Cloud to Device(C2D)通信の処理などが必要です。Alexaビデオスキルを実装するデバイスメーカー向けのテクニカルドキュメントは、Alexa Skills Kitのメインページに記載されています。詳細については、ビデオスキルAPIについてを参照してください。

次のステップ

Fire TV対応アプリ用ビデオスキルの作成を開始するには、Fire TV対応アプリ用ビデオスキルの作成についてを参照してください。