ビデオスキルAPIについて
ビデオスキルAPIは、Alexaデバイスを使ったビデオデバイスの遠隔操作とストリーミングサービスを可能にする一連のAPIです。ビデオスキルAPIを使えば、ユーザーと開発者の双方に一貫性のあるエクスペリエンスと対話モデルを提供できます。
はじめに
ビデオスキルAPIを使用すると、ユーザーがビデオ操作全体を音声で制御できるスキルを開発できます。ユーザーは、特定のスキルを呼び出さなくても、ビデオデバイスを制御してビデオコンテンツを利用できます。たとえば、ユーザーは次の操作が可能です。
- プロバイダーやデバイスを指定せずにビデオの再生を開始する。 「アレクサ、「七人の侍」を再生して」
- 特定のビデオデバイスを制御する。
- 「アレクサ、<ビデオデバイス>をオンにして」
- 「アレクサ、<ビデオデバイス>のボリュームを下げて」
ビデオスキルAPIは、ビデオサービスに特化しています。開発者は、ユーザー向けに最適化されたセットアッププロセスと、ビデオ機能の統合に特化してデザインされた一連のAPIを活用できます。ビデオスキルAPIの主な目的は、開発者の手間を解消し、スキルの実装時間を短縮することです。このため、ビデオスキルAPIチームでは、開発をスムーズに行うためのドキュメントやコードサンプルを提供しています。
ビデオスキルAPIにはさまざまな機能があります。
- コンテンツの検索と再生
- 一時停止や早戻しなどの再生コントロール
- ボリュームの調整
- ビデオデバイスのオンやオフ
- ビデオデバイスの入力の変更
- アプリやGUIショートカットの起動
- ビデオコンテンツの録画
- チャンネル変更
- ビデオカタログの取り込み
ビデオスキルAPIを利用すると、ビデオ用のカスタムスキルを使用するよりも便利です。ビデオスキルAPIを介して、Alexaはユーザーが所有しているデバイスや、サブスクリプションしているサービスを認識します。これにより、ユーザーはこれらのデバイスやサービスを音声で制御できます。ビデオスキルAPIは、すばやく、簡単にデバイスを制御してユーザーを必要なコンテンツにルーティングします。これに対して、カスタムスキルではスキルを名前で呼び出す必要があります。Alexaはユーザーが所有しているデバイスやサブスクリプション中のサービスではなく、個別のスキルのみを認識します。
たとえば、ビデオプロバイダーがカスタムコンテンツの「サムの冒険」というTVシリーズを制作したとします。プロバイダーがビデオスキルAPIを使用してAlexaスキルを作成した場合、このコンテンツをAlexaコンテンツカタログに取り込むことができます。するとAlexaはこのコンテンツのプロバイダーを認識します。ユーザーが「アレクサ、「サムの冒険」を再生して」と言うと、Alexaはコンテンツプロバイダーを識別し、適切なスキルを有効にするプロセスにユーザーを誘導します。ビデオスキルAPIがない場合、ユーザーは「サムの冒険」が特定のプロバイダーの提供であること、そのプロバイダーのカスタムスキルを有効にしていることを確認してから、そのスキルに対してコンテンツをリクエストする必要があります。
ビデオスキルのしくみを理解する
Alexaビデオエコシステムは以下で構成されています。
- ユーザー
- Alexaデバイスと対話する人間で、提供されるビデオサービスに登録する人のことです。
- ビデオスキルAPI
- 音声コマンドを理解し、音声コマンドをビデオスキルに送信するディレクティブ(JSONメッセージ)に変換するサービスです。
- AWS Lambda
- アマゾンウェブサービス(AWS)によって提供される、ビデオスキルコードをホストするコンピューティングサービスです。
- ビデオスキル
- ディレクティブを解釈し、ビデオアプリやデバイスがユーザーのリクエストを処理できるようにメッセージを送信するコードやコンフィギュレーションです。「ビデオスキル」という用語は、ビデオスキルAPIの統合に含まれるすべてのコンポーネントやサービスを指すために、一般的に使用されます。

ビデオスキルを実装できるデバイス
Alexaビデオスキルは、3種類のデバイスと統合することができます。
-
Fire TVのFire TVアプリ: Fire TVアプリ向けビデオスキルを使用すると、ユーザーは自然言語のコマンドを使用して、アプリのコンテンツの検索、アプリの起動、メディア再生の制御、チャンネルの切り替えなどができるようになります。たとえば、ビデオスキルを使用すると、ユーザーは「[アプリ名]からBoschを再生して」や「Boschを再生して」などのフレーズを言うことで、アプリにメディアを再生させることができます。Fire TVアプリにビデオスキルを実装するには、最初にAlexaビデオスキルAPIを実装します。ただし、この統合にはAmazon Device Messaging(ADM)、AWS Lambdaなども含まれます。Fire TVアプリ向けビデオスキルを統合することで、ユーザーはコンテンツから最高に豊かな音声エクスペリエンスが得られ、エンゲージメントが高まり、スキルも見つけやすくなります。開発を始めるには、Fire TVアプリ向けビデオスキルの概要を参照してください。
-
マルチモーダルデバイス: Echo ShowなどのマルチモーダルデバイスはAlexa搭載デバイスと呼ばれ、音声と視覚インターフェースの両方を提供します。マルチモーダルデバイスは「アプリレス」なフレームワークを使用しており、同じAmazonカタログ統合機能を活用することで、既存の再生用HTML5 Webプレイヤーと統合できます。また、ブラウザのレンダリング用テンプレートや、デバイスでの検索機能も提供しています。Fire TVアプリの実装と同様に、マルチモーダルデバイスにビデオスキルを実装するには、Alexaからのリクエストに応答して、その応答をWebプレイヤーに渡すLambda関数を開発します。応答には、リクエストされたメディアを再生するためのコンテンツURIが含まれます。開発を始めるには、マルチモーダルデバイス向けビデオスキルの概要を参照してください。
-
リビングルームのエンターテイメントデバイス: リビングルームのエンターテイメントデバイスとは、セットトップボックス、ゲームコンソール、スマートTVのことを指します。ユーザーがこれらのタイプのデバイスを製作しているデバイスメーカーであれば、ビデオスキルを直接これらのデバイスに組み込んで、エンドユーザーがアプリを起動してチャンネルを切り替えるなどの動作ができるようにします。デバイスへのビデオスキルの実装には、ライブTV用にすぐに使用できるGracenoteカタログとビデオオンデマンドのコンテンツの活用が含まれており、Lambdaをビルドして再生、機能の検索、移動、記録をサポートします。またデバイスソフトウェアが状態情報を確実に送信できるようにしたり、クラウドからデバイスへの通信を処理したりなどを行います。詳細については、リビングルームのエンターテイメントデバイス向けビデオスキルの作成を参照してください。
Alexaのビデオスキルを開発できる人
ビデオスキルは誰でも開発できます。ビデオスキルを開発するには、音声発話を解析する必要はありません。解析はAmazonのAlexaサービスが実行します。Alexaサービスでは、ユーザーの音声をどのように解釈すればいいか、ビデオスキルにどのメッセージを送信すればいいかは既に定義されています。
一般的に、ビデオスキル開発は2つのカテゴリーに分けられます。
- 自社のデバイスで音声対話を行わせたいデバイスメーカー。リビングルームのエンターテイメントデバイスにビデオスキルを実装するデバイスメーカーです。
- 自社のビデオサービスで音声対話を行わせたいビデオサービスプロバイダー。Fire TVアプリとマルチモーダルデバイス向けのビデオスキルを実装するビデオサービスプロバイダーです。
ビデオスキル開発の前提条件
ビデオスキルを開発するには、以下が必要です。
- Amazon開発者アカウント。
- クラウドAPIまたはクラウド対応のビデオサービスに接続されたデバイス。
- Amazon EchoなどのAlexaデバイス。
- AWSアカウント。スキルコードはAWS Lambda関数としてホスティングします。
- Java、Node.js、Python、またはC#の知識。これらの言語のいずれかでLambda関数を作成できます。
- OAuth 2.0についての理解。
ドキュメントガイド
トピック | 説明 |
---|---|
Fire TVアプリ向けビデオスキル | Fire TVアプリ向けビデオスキルの作成を手順を追って説明します。 |
マルチモーダルデバイス向けビデオスキル | Echo Showなどのマルチモーダルデバイス向けビデオスキルの作成を手順を追って説明します。 |
リビングルームのエンターテイメントデバイス向けビデオスキル | セットトップボックス、ゲームコンソール、スマートTVなどのリビングルームのエンターテイメントデバイス向けビデオスキルを手順を追って説明します。 |
メッセージとデータの形式 | Alexaとの間で送受信するメッセージの構造と、日付やそのほかのデータの形式について説明します。 |
ビデオスキルの状態レポート | デバイスの状態が変更されたときにAlexaにいつ、どのように変更レポートを送信するかを説明します。 |
デバイスの検出 | Alexaのデバイス検出インターフェースと検出の形式について説明します。 |
Alexa.ErrorResponseとAlexa.Video.ErrorResponse | エラー時のメッセージについて説明します。 |
Alexa.ChannelController | チャンネル変更のメッセージを説明します。 |
Alexa.InputController | ビデオデバイスの入力変更のメッセージを説明します。 |
Alexa.Launcher | アプリやショートカットを起動するメッセージを説明します。 |
Alexa.PowerController | ビデオデバイスの電源状態を制御およびレポートするメッセージを説明します。 |
Alexa.RecordController | 現在再生しているビデオコンテンツを録画するメッセージを説明します。 |
Alexa.RemoteVideoPlayer | コンテンツの検索と再生、検索結果の表示を行うメッセージを説明します。 |
Alexa.PlaybackController | コンテンツの再生を制御するメッセージを説明します。 |
Alexa.PlaybackStateReporter | 再生エンドポイントの状態をレポートするイベントを提供します。 |
Alexa.SpeakerとAlexa.StepSpeaker | ボリュームの設定や調整、対応ビデオデバイスのミュートやミュート解除を行うディレクティブを提供します。ボリュームを連続した値の範囲の任意の整数値に設定または調整できるデバイスには、Speaker インターフェースを実装します。ボリュームの範囲が不明で段階的なボリューム調整のみができるデバイスには、StepSpeaker インターフェースを実装します。 |
Alexa.VideoRecorder | ビデオコンテンツの録画を予約するメッセージを説明します。 |
ビデオコンテンツのエンティティタイプ | 検索と再生のメッセージでのビデオエンティティの表示方法を説明します。 |
起動ターゲットのリファレンス | Launcherリクエストで送信されるアプリとショートカットのIDのリストを提供します。 |
コンテンツカタログの取り込み | カタログの取り込み処理の詳細を説明します。カタログを取り込むことで、チャンネル、TV番組、映画などのメディアエンティティの音声認識がしやすくなります。 |
ラインナップとMSO情報 | ライブTVプロバイダーが、MSO名と各ユーザーまたはZIPコードに固有のラインナップを指定する方法を説明します。 |