CALENDAR
Sun Mon Tue Wed Thu Fri Sat
    123
45678910
11121314151617
18192021222324
25262728293031
<< July 2010 >>
steam
Twitter
SELECTED ENTRIES
RECENT COMMENTS
CATEGORIES
ARCHIVES
Links
Ads
MOBILE
qrcode
PROFILE
OTHERS

ioaia blog><;

誤字脱字のオンパレード・・・(´゚'ω゚`)
<< アルカディアサーガ cβ | main | [CrossFire]武器威力の検証 (追記) >>
ニコニコ動画API
PHPからニコニコ動画の情報を取得しようと思って調べた事のメモ。
多分、一番最後に書いてる参考にしたサイトを見た方が早い。

  • 動画のタイトルや説明、タグ、再生数、コメント数、直近のコメントなどの情報は"http://ext.nicovideo.jp/api/getthumbinfo/{ID}"で取得できる。
    • "http://www.nicovideo.jp/api/getthumbinfo?v={ID}"でもいい。
    • {ID}は通常動画ID(e.g. sm8129721)を指定するが、動画によってはスレッドID(e.g. 1252023235)でも取得できる
    • getthumbinfoで取得できる情報はxml形式。
    • getthumbinfoは情報を取得するとき、ニコニコ動画にログインしている必要は無い(基本的に無条件で取得できる)。
    • コミュニティ動画や公式動画などの情報は取得できない。
  • 動画ファイルやスレッドID、コメントを取得する為のURLなどの情報は"http://www.nicovideo.jp/api/getflv/{ID}"で取得できる。
    • "http://www.nicovideo.jp/api/getflv?v={ID}"でもいい。
    • {ID}は動画IDでもスレッドIDでもどちらでも取得できる。
    • getflvで取得できる情報は名前=値を&で区切った形式で、値はURLエンコードされている。
    • getflvは情報を取得するとき、ニコニコ動画にログインして、認証される必要がある。
    • コミュニティ動画や公式動画でも取得できる。
    • getflvでコミュニティ動画のIDから動画ID(sm~)を"推測"できる。
      • getflvでは動画IDの3桁目(smの次)からの部分と、動画のファイル形式しか分からない
      • ファイル形式からsmかnmかの判断はできるが、それ以外だった場合の判断が出来ない
      • 詳しい事は最後のリンクに
  • コメントはgetflvで取得したURLにxmlをPOSTすると取得できる。
    • コメントはxml形式で取得できる。

他にもいくつかあるらしい。
以下、もう少し詳しい情報。
getthumbinfo
http://ext.nicovideo.jp/api/getthumbinfo/sm8129721にアクセスすると取得できるxml:
<?xml version="1.0" encoding="UTF-8"?>
<nicovideo_thumb_response status="ok">
<thumb>
<video_id>sm8129721</video_id>
<title>Audiosurf play movie #初音ミクの消失 -DEAD END-</title>
<description>Audiosurfのninja monoプレイ動画。プレイヤーに深刻なエラーが発生しました。...他のsteamゲー/audiosurf mylist/13170494mode: ninja mono + Ironmodomusic: sm2937784 (Thanks!)mp3 file info(tag): Artist/cosMo, Title/初音ミクの消失 -DEAD END-encode: video/512x384 x264 850k Audio/AAC-LC 96k</description>
<thumbnail_url>http://tn-skr2.smilevideo.jp/smile?i=8129721</thumbnail_url>
<first_retrieve>2009-09-04T09:13:57+09:00</first_retrieve>
<length>5:02</length>
<view_counter>301</view_counter>
<comment_num>9</comment_num>
<mylist_counter>6</mylist_counter>
<last_res_body>うますぎ 登坂車線走行車線追越 ↑↑↑ ちょ・・・・うまくね すごいぞこれは お... </last_res_body>
<watch_url>http://ext.nicovideo.jp/watch/sm8129721</watch_url>
<thumb_type>video</thumb_type>
<embeddable>1</embeddable>
<tags domain="jp">
<tag lock="1">ゲーム</tag>
<tag lock="1">Audiosurf</tag>
<tag>音ゲー</tag>
<tag>steam</tag>
</tags>
</thumb>
</nicovideo_thumb_response>
  • video_id
    • 動画ID
  • title
    • 動画のタイトル
  • description
    • 動画の説明
  • thumbnail_url
    • サムネイルのurl
  • first_retrieve
    • 動画の投稿日時
  • length
    • 動画の再生時間(長さ)
  • view_counter
    • 動画の再生数
  • comment_num
    • 動画のコメント数
  • mylist_counter
    • 動画のマイリスト数
  • last_res_body
    • 直近のコメント
  • watch_url
    • 動画の再生ページのurl
  • thub_type
    • 動画のタイプ。通常の動画(video)かマイメモリー(mymemory)
  • embeddable
    • 外部プレイヤーから再生可能(1)か否(0)か
  • tags
    • 動画のタグ。www.nicovideo.jpはdomain="jp"、tw.nicovideo.jpはdomain="tw"

getflv
http://www.nicovideo.jp/api/getflv/sm8129721にアクセスすると取得できる情報:
thread_id=1252023235&l=302&url=http%3A%2F%2Fsmile-pso42.nicovideo.jp%2Fsmile%3Fm%3D8129721.60135&link=http%3A%2F%2Fwww.smilevideo.jp%2Fview%2F8129721%2F14220&ms=http%3A%2F%2Fmsg.nicovideo.jp%2F7%2Fapi%2F&user_id=14220&is_premium=1&nickname=hitobashira.org&time=1253678168&done=true&ng_rv=15&hms=hiroba-test1.nicovideo.jp&hmsp=2532&hmst=1000000008&hmstk=1253678198.KZrIK-DJvlxyHnK1o6exmT1cbo8
それを見やすいようにした物:
thread_id=1252023235
l=302
url=http://smile-pso42.nicovideo.jp/smile?m=8129721.60135
link=http://www.smilevideo.jp/view/8129721/14220
ms=http://msg.nicovideo.jp/7/api/
user_id=14220
is_premium=1
nickname=hitobashira.org
time=1253678168
done=true
ng_rv=15
hms=hiroba-test1.nicovideo.jp
hmsp=2532
hmst=1000000008
hmstk=1253678198.KZrIK-DJvlxyHnK1o6exmT1cbo8
  • thread_id
    • スレッドID
  • l
    • 不明
  • url
    • 動画ファイル(flv等)のurl
  • link
    • 動画の詳細情報のurl(この場合、smilevideo上の動画ページ=現在は通報ページ)
  • ms
    • コメントのurl(ここにxmlをPOSTしてコメントを取得)
  • user_id
    • 現在ログインしているユーザのID
  • is_premium
    • 現在ログインしているユーザがプレミアムユーザ(1)か否(0)か
  • nickname
    • 現在ログインしているユーザのニックネーム
  • time
    • 情報の取得(アクセス)日時? UNIX TIME表記
  • done
    • 不明
  • ng_rv
    • 不明
  • hms
    • (多分)接続するニコニコ広場サーバのurl
  • hsmp
    • 不明。恐らくニコニコ広場関係。(広場の番号?)
  • hmst
    • 不明。恐らくニコニコ広場関係。
  • hmstk
    • 不明。恐らくニコニコ広場関係。(何かのkey?)


とりあえず、getthumbinfoをphpで取得するtest。
GETで送られてきた動画IDの情報(一部)を表示。
<?php
$id = $_GET[id];
$base = 'http://ext.nicovideo.jp/api/getthumbinfo/';
$xml = simplexml_load_file($base . $id);


echo '<table border="1" cellpadding="5" width="600">
	  <tr>
		<th colspan="3" style="font-size:big">
			<a href="'. $xml->thumb->watch_url .'">'. $xml->thumb->title .'</a>
      	</th>
	  </tr>
	  <tr>
	  	<td colspan="3">'. $xml->thumb->description .'</td>
	  </tr>
	  <tr>
	  	<td width="230">
	  	          再生時間:'. $xml->thumb->length .'<br>
	  	          再生数:'. $xml->thumb->view_counter .'<br>
	  	          コメント数:'. $xml->thumb->comment_num .'<br>
	  	          マイリスト数:'. $xml->thumb->mylist_counter .'<br>
        </td>
        <td width="230">'.
            $xml->thumb->last_res_body
      .'</td>
      	<td width="140">
      		<img src="'. $xml->thumb->thumbnail_url .'">
      	</td>
      </tr>
      </table>';
?>


参考にしたサイト:
ニコニコ動画API - ニコニコ大百科
flvの取得 - poChiの日記
ニコニコ動画のAPIのメモ - picasの日記
ニコニコ動画APIメモ - なんとなく日記
| Development | 14:35 | comments(1) | trackbacks(0) | Permalink | このエントリーを含むはてなブックマークはてなブックマーク - ニコニコ動画API |
参考にさせてもらいます!
| VIII | 2010/04/20 6:18 PM |









http://blog.hitobashira.org/trackback/21