|
|
||
書いて良いのかな!?かな??
Twitterで、こんな発言があったので
http://www.nicovideo.jp/api/getthumbinfo/sm9
Twitter / Akihiko Koizuka: http://www.nicovideo.jp/ap ...
ちょっとだけ遊んでみました。
XML形式で取得できるみたいです。
URLはこんなカンジ。
http://www.nicovideo.jp/api/getthumbinfo/sm2191960
で、返ってくるデータが
<?xml version="1.0" encoding="UTF-8"?> <nicovideo_thumb_response status="ok"> <thumb> <video_id>sm2191960</video_id> <title>英語の時間に流れた曲が面白かったので</title> <description>『バイト先でジャンボと呼ばれて困っています』そんな事よりこの曲聞いてくれよ。卑猥だと思わないか。あの外人教師・・・やってくれるぜ・・・。</description> <thumbnail_url>http://tn-skr.smilevideo.jp/smile?i=2191960</thumbnail_url> <first_retrieve>2008-02-01T02:44:40+09:00</first_retrieve> <length>2:20</length> <view_counter>244</view_counter> <comment_num>29</comment_num> <mylist_counter>9</mylist_counter> <last_res_body>これは伸びるwwww wwwwwwwwww オwwwww... </last_res_body> <watch_url>http://www.nicovideo.jp/watch/sm2191960</watch_url> <thumb_type>video</thumb_type> </thumb> </nicovideo_thumb_response>
こんなん。
実際に取得してみるテスト。
手抜きのためにrhacoを使ってます。
PHPerは今すぐDLしてください。w
まず、このAPIを叩くためのクラスを作ってみました。
これを、NicoVideo.phpとしておきます。
<?php Rhaco::import('network.http.Http'); class NicoVideo { var $url = 'http://www.nicovideo.jp/api'; var $thumb_path = '/getthumbinfo'; var $headers = array('accept' => 'text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5'); function getThumbInfo($video_id){ $xml = Http::get($this->url . $this->thumb_path . '/' . $video_id, $this->headers); if(SimpleTag::setof($tag, $xml, 'thumb')){ return $tag->toHash(); } return false; } }
手抜きでサーセン><w
次に、rhacoとこのクラスをincludeして、実際に取得するコードを示します
<?php require_once 'rhaco/Rhaco.php'; require_once 'NicoVideo.php'; $nico = new NicoVideo(); $ret = $nico->getThumbInfo('sm2191960'); var_dump($ret);
これだけです。試しに上のコードをtest.phpとかで保存して、実行してみます。
/tmp% php test.php array(12) { ["video_id"]=> string(9) "sm2191960" ["title"]=> string(54) "英語の時間に流れた曲が面白かったので" ["description"]=> string(204) "『バイト先でジャンボと呼ばれて困っています』そんな事よりこの曲聞いてくれよ。卑猥だと思わないか。あの外人教師・・・やってくれるぜ・・・。" ["thumbnail_url"]=> string(43) "http://tn-skr.smilevideo.jp/smile?i=2191960" ["first_retrieve"]=> string(25) "2008-02-01T02:44:40+09:00" ["length"]=> string(4) "2:20" ["view_counter"]=> int(244) ["comment_num"]=> int(29) ["mylist_counter"]=> int(9) ["last_res_body"]=> string(84) "これは伸びるwwww wwwwwwwwww オwwwww... " ["watch_url"]=> string(39) "http://www.nicovideo.jp/watch/sm2191960" ["thumb_type"]=> string(5) "video" }
簡単ですね!
thumbnail利用を想定しているAPIだからキャッシュもサーバーサイドでかかってるのである程度沢山呼んでも大丈夫
Twitter / Akihiko Koizuka: thumbnail利用を想定しているAPIだからキャ ...
とのことなので、良いんですよね??
だめだったらおしえてくだしあ><><!