ユーチューブ取得PHPの解説
PHPとWebAPIで作るマッシュアップサイト。
ユーチューブ動画リンク取得PHPの例をざっと解説します。
今回のは、検索結果の動画へのURLリンクと、縮小画像を取得できます。
基本的には解説(5)商品情報をXMLから取り出すと同じですので参照してください。
なおユーチューブのAPIの仕様などは、こちらに載っています。
function youtube_xml($keywords,$result){ここは関数名です。
キーワードと取得件数を受け取ります。
//echo $result;
// --------------------------------------------------------// YouTube動画検索 リクエストURL(バージョン1)// --------------------------------------------------------$keyword_u = urlencode(mb_convert_encoding($keywords ,"UTF-8", "auto"));
キーワードをUTF-8に念のため変換して、URLエンコードします。
$keyword_u = preg_replace("/%0D/", "", $keyword_u);
キーワードに余分なモノが付いているのを取り除きます。
$max_douga = "&max-results=".$result;
取得の最大数を設定します。
$api_url = "http://gdata.youtube.com/feeds/api/videos?vq=".$keyword_u."&start-index=1".$max_douga ;
検索キーワードに該当する動画情報を取得するRESTリクエストを組み立てます。
//echo $api_url;
確認用の記述$contents = @file_get_contents($api_url);
$data = simplexml_load_string($contents);
いつもの2つの関数。
// --------------------------------------------------------// 動画が1件も無い場合// --------------------------------------------------------/************ここからしばらくコメントアウト。
使ってない記述。
if ($data->totalResults == 0){$list_you[$i]['title'] = "該当する動画がありませんでした。
";
}else{if(is_array($data->entry)){$data->entry = array_slice($data->entry, 0 , $result);}
**********/コメントアウト終わり。
//print_r($data->entry);
$i = 0;
foreach($data->entry as $item){エントリーから一つずつ記事を配列に入れていく。
$youid = $item->id;
$youid = str_replace("http://gdata.youtube.com/feeds/api/videos/","",$youid);
$img = "http://i.ytimg.com/vi/".$youid."/1.jpg";
動画紹介用の画像を取得 $title = mb_convert_encoding($item->title, "UTF-8" ,"auto");
$url = "http://www.youtube.com/watch?v=".$youid;
動画のリンクを取得 $list_you[$i]['title'] = mb_strimwidth ($title, 0, 80, "…", "utf-8");
$list_you[$i]['img'] = $img;
$list_you[$i]['url'] = $url;
$i++;
// }}return($list_you);
検索結果の配列を主プログラムに返す記述。
}