このトピックでは、Media API を使ってプレイリストを作成、更新、削除する方法について説明します。
Media API には、プレイリストの作成、更新、削除に使用する書き込みメソッドのセットが含まれています。
これらのメソッドは、create_video や動画、画像、ロゴオーバーレイに影響を与える他の書き込みメソッドと同様の動作をします。
Brightcove では、プレイリストの作成管理のために、以下の 3 つの方法を用意しています。
create_playlist メソッドの動作は create_video と非常によく似ています。プレイリスト オブジェクトを表す JSON を設定し、Media API メソッド名、アカウント用の書き出しトークンを設定し、Brightcove Media API のURL に貼り付けます。
Media API オブジェクト リファレンスは、プレイリスト書き込みメソッドで作成または修正されたプレイリスト オブジェクトのプロパティを記述しています。以下のプロパティは、プレイリストを作成するときの必須プロパティです。
送信したプレイリスト オブジェクトの playlistType プロパティが explicit である場合、そのリストはマニュアル プレイリストとなります。マニュアル プレイリストを作成する際、プレイリスト内に含むべき動画 ID のリストである videoIds パラメータを含む必要があります。このリストのアセンブルには、以前の search_videos または find_videos Media API 読み取り呼び出しを使うこともできます。
送信したプレイリスト オブジェクトの playlistType プロパティが explicit でない場合、そのリストはスマート プレイリストとなります。その場合、playlistType は動画の順番を指定します。スマートプレイリスト内の動画を制限するため、filterTags および tagInclusionRule パラメータを使用することもできます。filterTags パラメータにリストされているすべてのタグを含む動画のみを含むよう(tagInclusionRule パラメータを AND に設定)、あるいはパラメータにリストされているタグの少なくとも 1 つを含む動画のみを含むよう(tagInclusionRule を OR に設定)、指定することができます。
この PHP 例では、crescent と gibbous の両方のタグを含むすべての動画が含まれるスマートリストを作成します。
curl -F "json={'method' : 'create_playlist',\
'params':{\
'token':'insertTokenHere.',\
'playlist':{\
'referenceId':'moonshot-1',\
'name':'Phases 3 and 4',\
'shortDescription':'The moon as it wanes from gibbous to crescent.',\
'playlistType':'ALPHABETICAL',\
'filterTags':['crescent','gibbous'],\
'tagInclusionRule': 'AND'}\
}}" http://api.brightcove.co.jp/services/post
すでにあるプレイリストを修正するには、update_playlist メソッドが便利です。これは create_playlist メソッドに非常に似ています。プレイリスト オブジェクトを表す JSON を設定し、Media API メソッド名、アカウント用の書き出しトークンを設定し、Brightcove Media API のURL に貼り付けます。プレイリストは既に存在しますので、読み取り専用 id プロパティを持っており(create_playlist メソッドで返されます)、また、オプションプロパティを設定している場合は、referenceId も持っています。更新したいプレイリストは、 id プロパティ か referenceId プロパティにより参照することができます。但し、referenceId プロパティを変更したい場合は、id プロパティを含めなければなりません。
JSON プレイリスト オブジェクトにリストしたプロパティは、update_playlist メソッドでパスした値により上書きされます。省略したプロパティは、既存の値のままとなります。例えば、1234、1235、1236、1237 の4つの動画で構成されるマニュアル プレイリストがあり、そのプレイリストの最後に ID 2001 の新規ビデオを追加したい場合、次のように JSON で 5 つの動画全部の ID をパスする必要があります。
{"method":"update_playlist",
"params":{
"token":"insertTokenHere",
"playlist":{
"id":"25855448001",
"videoIds":[1234, 1235, 1236, 1237, 2001]
}
}
}
delete_playlist メソッドは、非常に簡単です。削除したいプレイリストの プレイリスト ID または参照 ID を、Media API 書き出しトークンと一緒にパスするだけです。オプションとして cascade パラメートもあります。プレーヤで参照されていても、このプレイリストを削除したい場合は、これを true に設定します。cascade="true" に設定すると、プレイリストが表示されているすべてのプレーヤから削除され、そしてプレイリスト自体が削除されます。
この例では、動画の ID を取得するフォームを表示し、ユーザーが [Delete] ボタンをクリックしたときに delete_playlist メソッドを使用してプレイリストを削除します。また、パスされた JSON 要求と応答(要求が成功した場合は無効となります)を表示します。
function buildJSONRequest(){
if(document.getElementById('id').value ==""){
alert("Please enter a playlist ID");
return;
}else
{
json = document.getElementById('JSONView');
//SON 要求を構築:
json.value = '{"method": "delete_playlist", "params":{"playlist_id":
'+ document.getElementById('id').value +
',"token": "'+ document.getElementById("insertTokenHere.").value + '"}}';
}
}
doPlaylistDelete 関数は、buildJSONRequest 関数を呼び出します。
function doPlaylistDelete(){
form = document.getElementById("delete_playlist_sample");
buildJSONRequest();
form.action = document.getElementById("yourAPILocation").value;
form.submit();
}
この例の動作を確認するには、ここをクリックしてください。
この例のソース コードを見るには、ここをクリックしてください。