数日前に,PHPからニコニコ動画のAPIを叩いてみてたんだけど,動画の情報は取得出来ても,動画の再生を行うことが難しいことがわかったので,YoutubeのAPIに手を出してみることにした.
とりあえずやったこととしては,以下の通り.
- 動画の情報を得る.
- Webページに動画を挿入する
- 挿入した動画をJavaScriptで制御する
動画の情報を得る
YoutubeのAPIを利用するためには,Zend Frameworkを利用するのが簡単です.実際に動画の情報を取得するためのコードはこんな感じ.ちなみに,youtubeのURLってhttp://www.youtube.com/watch?v=○○○○○○みたいになっているんですが,以後,○○○○○○の部分を動画IDと呼びます.
require_once 'Zend/Loader.php'; Zend_Loader::loadClass('Zend_Gdata_YouTube'); $yt = new Zend_Gdata_YouTube(); $videoEntry = $yt->getVideoEntry(動画ID);
これで,動画の情報が取得できるので,あとは$videoEntryの各メンバにアクセスして情報を取得することになります.メンバの種類としては下記のようなものがあります.
- タイトル getVideoTitle()
- 動画の説明 getVideoDescription()
- 動画のカテゴリ getVideoCategory()
- 動画のタグ getVideoTags()
- 再生数 getVideoViewCount()
- 評価 getVideoRatingInfo()
動画をWebページに挿入する
動画をWebページに挿入するコードはこんな感じになります.なお,このコードではSWFObjectを用いています.
<script type="text/javascript" src="swfobject.js"></script> <div id="ytapiplayer">
You need Flash player 8+ and JavaScript enabled to view this video. </div> <script type="text/javascript">
var params = { allowScriptAccess: "always" };
var atts = { id: "myytplayer" };
swfobject.embedSWF("http://www.youtube.com/v/動画ID&enablejsapi=1&playerapiid=ytplayer", "ytapiplayer", "425", "356", "8", null, null, params, atts); </script>
動画をJavaScriptで制御する
YoutubeAPIでは,Webページ埋め込んだ動画に対して,再生などの制御をJavaScriptから行うことができます.その際は,下記のようなコードを用います.
ytplayer = document.getElementById("myytplayer"); ytplayer.playVideo();
このコードを実行することで,任意のタイミングで動画を再生することが可能になります.