2009.09.23 Wednesday
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:
getflv
http://www.nicovideo.jp/api/getflv/sm8129721にアクセスすると取得できる情報:
とりあえず、getthumbinfoをphpで取得するtest。
GETで送られてきた動画IDの情報(一部)を表示。
参考にしたサイト:
ニコニコ動画API - ニコニコ大百科
flvの取得 - poChiの日記
ニコニコ動画のAPIのメモ - picasの日記
ニコニコ動画APIメモ - なんとなく日記
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メモ - なんとなく日記
