このトピックでは、Embed API をいつ、どのように使用するかを決定するのに役立ちます。プレーヤー設定 API と埋め込み API のどちらを使用するかを選択する決定は重要です。このドキュメントの内容は、これらの決定についてガイドします。
なぜ埋め込みAPIを使用するのですか?
埋め込みAPIを使用すると、特定のプレーヤーの複数のインスタンスを作成できます。このプレーヤー/インスタンスの関係を考える良い方法は、親/子の関係として考えることです。シングルプレイヤーは親であり、埋め込みAPIで作成されたプレイヤーは親プレイヤーの子です。親プレーヤーには、プレーヤーに持たせたいプロパティの大部分があります。次に、埋め込みAPIを使用して、さまざまな子プレーヤーのプロパティのサブセットをカスタマイズできます。たとえば、さまざまなメディアを読み込んだり、さまざまなプラグインを使用したり、さまざまな子プレーヤーでスタイルを設定したりできます。
次の図は、機能を明確にするのに役立ちます。親の下が左側に表示され、2人の子プレーヤーが右側に表示されます。それを観察してください:
- ポスターは両方の子供に受け継がれています
- 再生ボタンの形状は上の子に継承されますが、下の子では上書きされます
- 一番上の子は、親が持っていないプロパティ(この場合はオーバーレイ)を追加します
この親子関係のもう1つの強力な機能は、継承が進行中であることです。次の図は、親に割り当てられた新しいポスターを示しており、両方の子がその構成変更を継承します。
埋め込みAPIを使用しない場合
ユースケースで必要な場合に埋め込みAPIを使用する理由はいくつかありますが、通常のプレーヤーに固執する理由もいくつかあります。ここにいくつかあります:
- 子プレイヤーは、Video CloudStudioを使用して編集することはできません。子プレーヤーは、Player ManagementAPIを介してのみ編集できます。Video Cloud Studioで子プレーヤーの親プレーヤーを編集できますが、親プレーヤーに加えられた変更はすべての子プレーヤーに影響します。
- 親プレーヤーに関連付けられている子プレーヤーが多数ある場合、親プレーヤーの公開には長い時間がかかる可能性があります。各子プレーヤーは個別に公開されます。子プレーヤーが30人を超える場合は、子プレーヤーの公開が多少遅れることが予想されます。これは、30人の通常のプレーヤーを同時に公開する場合とまったく同じです。
上記の理由から、通常のプレーヤーを使用することから始めて、子プレーヤーの必要性がわかったときに埋め込みを試すことは理にかなっているかもしれません。
ビデオタグデータ-埋め込み
親と子のプレーヤーには表記上の違いがあります。標準のページはめ込み埋め込みプレーヤーコードは、次の形式で表示されます。
<video-js
data-account="1507807800001"
data-player="HiAdwRZ7kK"
data-embed="default"
controls=""
data-application-id=""
class="vjs-fluid"></video-js>
data-embed
属性は、プレイヤーが親か子かを決定します。値がの場合default
、プレイヤーは親になります。プレイヤーが子の場合、data-embed
属性には親プレイヤーの ID が含まれます。その例を次に示します。
data-embed
属性は、プレイヤーが親か子かを決定します。値がの場合default
、プレイヤーは親になります。プレイヤーが子の場合、data-embed
属性には親プレイヤーの ID が含まれます。その例を次に示します。
<video-js
data-account="1507807800001"
data-player="HiAdwRZ7kK"
data-embed="NURK56ZSV"
data-application-id=""
class="video-js" controls></video-js>
注意してくださいdata-player
、つまりプレーヤーIDは同じですが、data-embed
から変更されましたdefault
子プレーヤーのIDに。
子プレーヤーのURL
親プレイヤーと子プレイヤーをどのように区別しますか?URLは異なります。たとえば、親プレーヤーのURLは次のとおりです。
//players.brightcove.net/1507807800001/HiAdwRZ7kK_default/index.min.js
埋め込みAPIを使用して子プレーヤーを作成した後、次に示すように、子プレーヤーのIDが親のURLに追加されます。
//players.brightcove.net/1507807800001/HiAdwRZ7kK_NURK56ZSV/index.min.js
親/子のユースケース
複数のビデオプレーヤーを使用していると仮定します。多くの場合、プレーヤーの一般的な機能はほとんど同じですが、場合によっては、特別な場合にプレーヤーを微調整する必要があります。プレーヤー構成APIを使用して複数のプレーヤーを作成できます。POST
そしてPATCH
方法が、これは重大なメンテナンスの問題につながる可能性があります。たとえば、すべてのプレーヤーのポスターを変更したいとします。これは使用することを意味しますPATCH
すべての異なるプレーヤーで。一方、子プレーヤーを作成した場合は、PATCH
親プレイヤー、およびすべての子プレイヤーは自動的に新しいポスターを持ちます。
作成プロセス
あなたがした場合ステップバイステップ:プレイヤー管理 curlステートメントを使用してHTTPメソッドをPlayerManagementAPIに通信するプロセスを見てきました。ここでも同じアプローチが使用されます。
プレーヤーを作成するには、プレーヤー構成APIで次のようないくつかのHTTPメソッドを使用した可能性があります。
- を使用してプレーヤーを作成します
POST
に https://players.api.brightcove.com/v2/accounts/ {account_id} / players - を使用してプレーヤーを更新します
PATCH
に https://players.api.brightcove.com/v2/accounts/ {account_id} / players / {player_id} /構成 - を使用して更新されたプレーヤーを公開します
POST
に https://players.api.brightcove.com/v2/accounts/ {account_id} / players / {player_id} /公開
同様のアプローチが、埋め込みAPIを使用する子プレーヤーにも使用されます。非常に高いレベルでは、次のようになります。
- を使用して子プレーヤーを作成します
POST
に https://players.api.brightcove.com/v2/accounts/ {account_id} / players / {player_id} / 埋め込み。注:埋め込みAPIを使用して作成された子プレーヤーは、作成時に自己公開されるため、子プレーヤーの作成時に公開する必要はなく、子プレーヤーの更新時にのみ公開されます。 - を使用して子プレーヤーを更新します
PATCH
に https://players.api.brightcove.com/v2/accounts/ {account_id} / players / {player_id} / embeds / $ EMBED_ID / configuration - を使用して子プレーヤーを公開します
POST
に https://players.api.brightcove.com/v2/accounts/ {account_id} / players / {player_id} / embeds / $ EMBED_ID / publish
次のコンテンツでは、プロセスについて詳しく説明します。
子プレーヤーを作成する
子プレーヤーを作成するには、HTTPを使用しますPOST
ここに示すように、メソッド:
curl /
--header "Content-Type: application/json" /
--user $EMAIL /
--request POST /
--data '{
"media": {
"sources": [
{
"src":"http://solutions.brightcove.com/bcls/assets/videos/BirdsOfAFeather.mp4",
"type":"video/mp4"
}
],
"poster": {
"highres":"http://solutions.brightcove.com/bcls/assets/images/BirdsOfAFeather.jpg"
}
}
}' /
https://players.api.brightcove.com/v2/accounts/{account_id}/players/$PLAYER_ID/embeds
子プレーヤーの作成に対する応答の例は次のとおりです。
{
"id": "be864624-8d85-4dfc-8fe6-4e9dd4c70417",
"url": "http://players.brightcove.net/1507807800001/668c5107-a80c-4940-8c17-279c01ce101c_be864624-8d85-4dfc-8fe6-4e9dd4c70417/index.html",
"embed_code": "<iframe src='//players.brightcove.net/1507807800001/668c5107-a80c-4940-8c17-279c01ce101c_be864624-8d85-4dfc-8fe6-4e9dd4c70417/index.html' allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe>",
"embed_in_page": "http://players.brightcove.net/1507807800001/668c5107-a80c-4940-8c17-279c01ce101c_be864624-8d85-4dfc-8fe6-4e9dd4c70417/in_page.embed",
"preview_url": "http://preview-players.brightcove.net/1507807800001/668c5107-a80c-4940-8c17-279c01ce101c/be864624-8d85-4dfc-8fe6-4e9dd4c70417/index.html",
"preview_embed_code": "<iframe src='//preview-players.brightcove.net/1507807800001/668c5107-a80c-4940-8c17-279c01ce101c/be864624-8d85-4dfc-8fe6-4e9dd4c70417/index.html' allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe>"
}
注:子プレイヤーは作成時に自費出版するため、作成後に子プレイヤーを公開する必要はありません。子プレーヤーが変更された場合でも、子プレーヤーを公開する必要がありますPATCH
方法。この時点では、作成後すぐに公開された子プレーヤーを使用できるため、プレビュー情報は役に立ちません。
これで、url
結果を確認するための子プレーヤーからのプロパティ。以下の例では、ステップバイステップで作成された親プレーヤーに子プレーヤーが追加されています。プレーヤー管理。新しいポスターとビデオが表示されますが、親プレーヤーのオーバーレイプラグインは引き続き存在します。
子プレーヤーを更新する
子プレーヤーを更新するには、HTTPを使用しますPATCH
方法。次のcurlステートメントは、poster
プロパティ。を設定したことを前提としています$EMBED_ID
適切な環境変数:
curl
--header "Content-Type: application/json"
--user $EMAIL
--request PATCH
--data '{
"media": {
"poster": {
"highres":"http://solutions.brightcove.com/bcls/assets/images/Water-Splashing.jpg"
}
}
}'
https://players.api.brightcove.com/v2/accounts/{account_id}/players/$PLAYER_ID/embeds/$EMBED_ID/configuration
応答は、両方のプレビュー情報を提供しますpreview_url
そしてpreview_embed_code
コード:
{
"preview_url": "http://preview-players.brightcove.net/1507807800001/668c5107-a80c-4940-8c17-279c01ce101c/be864624-8d85-4dfc-8fe6-4e9dd4c70417/index.html",
"preview_embed_code": "<iframe src='//preview-players.brightcove.net/1507807800001/668c5107-a80c-4940-8c17-279c01ce101c/be864624-8d85-4dfc-8fe6-4e9dd4c70417/index.html' allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe>"
}
子プレーヤーを公開する
子プレーヤーが変更されたら、それを公開する必要があります。必ず$EMBED_ID
環境変数が設定され、新しく変更された子プレーヤーを公開できます。
curl
--header "Content-Type: application/json"
--user $EMAIL
--request POST
https://players.api.brightcove.com/v2/accounts/{account_id}/players/$PLAYER_ID/embeds/$EMBED_ID/publish
応答は、プレーヤーの公開と非常によく似た、子プレーヤーの使用に必要な重要な情報を提供します。
{
"id": "be864624-8d85-4dfc-8fe6-4e9dd4c70417",
"url": "http://players.brightcove.net/1507807800001/668c5107-a80c-4940-8c17-279c01ce101c_be864624-8d85-4dfc-8fe6-4e9dd4c70417/index.html",
"embed_code": "<iframe src='//players.brightcove.net/1507807800001/668c5107-a80c-4940-8c17-279c01ce101c_be864624-8d85-4dfc-8fe6-4e9dd4c70417/index.html' allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe>",
"embed_in_page": "http://players.brightcove.net/1507807800001/668c5107-a80c-4940-8c17-279c01ce101c_be864624-8d85-4dfc-8fe6-4e9dd4c70417/in_page.embed"
}
子情報を表示する
HTTPを使用できますGET
子プレーヤーに関する情報を取得するメソッド。curlステートメントの例は次のとおりです。
curl
--header "Content-Type: application/json"
--user $EMAIL
--request GET
https://players.api.brightcove.com/v2/accounts/{account_id}/players/$PLAYER_ID/embeds
かなり大量のJSONデータが返されます。
子プレーヤーを削除する
を使用して子プレーヤーを削除することもできますDELETE
方法。子プレーヤーを削除するcurlステートメントの例を次に示します。
curl
--header "Content-Type: application/json"
--user $EMAIL
--request DELETE
https://players.api.brightcove.com/v2/accounts/{account_id}/players/$PLAYER_ID/embeds/$EMBED_ID
もちろん、これは子プレイヤーにのみ影響し、親プレイヤーには影響しません。