第5回 動画を表示するAPIを使ってみる - マッシュアップ講座

ZAPA先生のマッシュアップ講座

Lecutures on PHP

第5回 動画を表示するAPIを使ってみる (その1)

 このエントリーをはてなブックマークに追加

YouTubeの動画を表示する

ZAPA先生前回は写真を表示するAPIの利用方法を解説しました。今回は、Web 2.0の代表的なサイトの一つとされ、日本でも人気が高い動画共有サービス「YouTube」(*1)の動画ファイルを表示するAPIの利用方法を解説します。

YouTubeのAPIを利用するには、YouTubeのアカウントとDeveloper IDが必要になります。あらかじめアカウントを作成し、Developer APIs(*2)からDeveloper Profileを設定し、Developer IDを取得しておいて下さい。なお、YouTubeではGDataAPIという最新版のAPIの提供が始まりましたが、今回は古いAPIの方を用いて解説します。

このAPIの利用方法については、API Documentation(*3)が用意されていますので、このドキュメントを読むことでAPIを理解することができます。全て英語で書かれているため、少し敷居が高いように感じてしまうかもしれませんが、今まで解説してきた日本で提供されているAPI と同じように利用できます。英語だからといって恐れることはありません(*4)。

早速、youtube.videos.list_by_tagというメソッドを利用して、指定したキーワードで人気の動画を取得して表示させてみましょう。キーワードと表示件数を指定してコールすると、HTMLタグを生成して返すyoutube関数を作ります。利用方法は以下のようになります。

echo youtube($keyword,$limit);

ZAPA先生

フォト蔵の場合と同様、$keywordには、日本語のキーワードをそのまま指定して利用できるように、youtube関数内で以下のように検索キーワードをURLエンコードしてAPIにアクセスしています。加えて、APIにアクセスする際は、取得したDeveloper IDが必要になりますので、先ほど取得した自分のIDを設定して下さい。

//dev_idを設定
$dev_id = "取得したDeveloper ID";

//XMLデータ取得用ベースURL
$req = "http://www.youtube.com/api2_rest";
	
//XMLデータ取得用リクエストURL生成
$req .= "?method=youtube.videos.list_by_tag";
$req .= "&dev_id=".$dev_id."&tag=".urlencode($keyword)."&page=1&per_page=".$limit;

XMLを取得できたら、その情報から動画ファイルを表示させるためのHTMLタグを生成します。以下の部分でYouTubeのFlash動画ファイルを表示させるためのHTMLタグを生成しています。

$ret = '<div class="youtube">';
foreach ($xml->video_list-<video as $video){
  $ret .= '<object width="340" height="280"><param name="movie" value="http://www.youtube.com/v/';
  $ret .= $video->id;
  $ret .= '"></param><param name="wmode" value="transparent"></param>';
  $ret .= '<embed src="http://www.youtube.com/v/';
  $ret .= $video->id;
  $ret .= '" type="application/x-shockwave-flash" wmode="transparent" width="340" height="280">';
  $ret .= '</embed></object>'."\n";
}
$ret .= "</div>";

----
*1):http://www.youtube.com/
*2):http://www.youtube.com/dev
*3):http://www.youtube.com/dev_docs
*4):2007年6月19日にYouTubeの日本語版サービスが開始され、http://jp.youtube.com/dev_docsのページに日本語版ドキュメントも用意されました。

  • 1
  • 2

  



Pick Up Q&A

Q
ログファイルの中の空のデータ行を削除したい
 このエントリーをはてなブックマークに追加 
A
ログのデータ個数(列数)が固定で、空のログが"<><><>"だと既知であれば if ($line === "<><><>") { continue; } で読み飛ばしてもいいのでは? ...

>>続きを読む

まずは配列や文字列の扱いから、じっくり勉強して行きましょう。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)