さあ、マッシュアップも佳境に入ってまいりました。
2008年02月05日00:03
マッシュアップにかなりの手ごたえを感じる今日この頃、みなさましっかりついて来てくださっている事と思います。
ついて来て下さっているものと思って、安否は確認しませんが。

ZAPA先生のマッシュアップ講座もついに5回目に入りました。
先読みで、6回を先に読んできたところ、第6回では5回までの内容を組み合わせて実際にマッシュアップを説明されています。

ということは、一番のヤマは第5回で越えそうです

よっしゃー、それでは早速、デベロッパーIDを得るためだけにはじめてYouTubeでアカウント取得だ!

そういうわけで、開発者向け API の概要http://jp.youtube.com/dev_intro)へ行ってみました。

「開発者 ID が必要です。ID がない場合は、開発者プロフィールを作成して ID を取得してください。」

と書いてあるので、開発者プロフィールのリンクから、登録を済ませました。


アカウント → マイアカウント → アカウントの設定 → 開発者プロフィール

と進んで行くとそこに、開発者IDというモノがあります。

これが、ZAPA先生のマッシュアップ講座第5回に書いてある、$dev_idという変数に入れる値です。



前回の記事に書きましたように、今回もXML_Unserializerを使って、やってみました。

コメントで救ってくださった「やすたろ〜」さま。
本当にありがとうございました。

おかげさまで自分でも驚くほどスムーズに、YouTubeのAPIの利用ができました。
大変感謝いたしております。


そういうわけで、今回作ったもの。
ZAPA先生の説明されているものとは違って、たくさんビデオを引っ張ってくるものではなく、コメントを抜き出すようなものを作ってみました。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>ゆうちゅうぶ</title>
<style type="text/css">
<!--
body {
font-size: 14px;
}
.content {
width:345px;
}
-->
</style>
</head>
<body>
<div class="content">
<?php
function youtubing($video_id,$number){
require_once("XML/Unserializer.php");

$xml_data = file_get_contents("http://www.youtube.com/api2_rest?method=youtube.videos.get_details&dev_id=開発者ID&video_id=$video_id");

$parser = new XML_Unserializer(array(’parseAttributes’ => true));
$parser->unserialize($xml_data);
$XML = $parser->getUnserializedData();

$ret = '<div class="youtubing">';

$ret .= '<div><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></div>';

$ret .= "<br />";

$ret .= "<div><b>■".$XML['video_details']['title']."</b></div>";

$ret .= "<div><b>".$XML['video_details']['view_count']."回</b> 閲覧<br /></div>";

$ret .= "<br />";

if(count($XML['video_details']['comment_list']['comment'])>=$number){

$ret .= "<div><この動画へのコメント>";
$ret .= "<ul>";
for($i = 0; $i < $number; $i++){
$ret .= "<li><b>".$XML['video_details']['comment_list']['comment'][$i]['text']."</b><br />";
$ret .= "(posted by ".$XML['video_details']['comment_list']['comment'][$i]['author'].")</li>";
}
$ret .= "</ul></div>";
}
$ret .= "</div>";


return $ret;
}

$video_id = "ビデオID";
$number = 10;
echo youtubing($video_id,$number);
?>
</div>
</body>
</html>



ビデオIDは、

http://www.youtube.com/watch?v=ここの部分の文字列&feature=related

みたいです。


上のコードの実行結果をiframeで表示してみます。
動画はYouTube日本語版のトップページにあったもの中で、見て面白かったものを貼ってみました。




これで、なんとかYouTubeのAPIも使えるようになりました。

マッシュアップのイメージも固まってきたので、そろそろマッシュアップのサイトを作ってみたいと思っています。




clip!PHP 

この記事へのコメント
Diechang
Diechang
2008年02月05日 10:26
このAPIって夏くらいで廃止されるんじゃなかったっけ(^-^;
GDataの新しいYouTubeAPIはIDいらないと思いますよ。

afiliate
どおも〜Diechangさま。コメントありがとうございます。

GDataAPIというのがあるのですか。知りませんでした。
マッシュアップ講座を読み直したら、書いてありますね。
見落としてました。orz。

一通り終わったらGDataAPIについても調べてみたいと思います。
教えて頂き、ありがとうございました。