kur.jp

バイオリンと自転車をこよなく愛するkurのチラシの裏。たまには技術的なことを書いたりするかも知れません。

Youtube APIを叩いてみる

数日前に,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();

このコードを実行することで,任意のタイミングで動画を再生することが可能になります.