getbgm - ニコ動のAPI
NNDD v1.10から使い始めたAPI、getbgmについてのメモ。
getbgm
閲覧中の動画ページで使用するBGMの情報を取得する。要するに、この動画に対応するユーザーニコ割はなに?という情報が返ってくる。
ただ、BGMという名前が示す通り、ユーザーニコ割以外も取得できるのかもしれない。(NNDDではユーザーニコ割を探す目的にしか使っていない)
使い方
http://www.nicovideo.jp/api/getbgm?v=&as3=1
にGETメソッドでアクセスする。
as3=1は、ActionScript3に変換済のSWFを取得するのかどうか、というフラグだと思われる。
getbgmにアクセスすると次のような内容のXMLが得られる。
<?xml version="1.0" encoding="utf-8"?> <bgm_video status="ok"> <bgm> <id>nm6847750</id> <bgm_type>cm</bgm_type> <video_id>nm6847750</video_id> <url>http://smile-pso52.nicovideo.jp/smile?s=6847750.43841as3</url> <length>62</length> <movie_type>swf</movie_type> <deleted>0</deleted> <private>0</private> <as3>1</as3> </bgm> <bgm> <id>nm6847754</id> <bgm_type>cm</bgm_type> <video_id>nm6847754</video_id> <url>http://smile-pso31.nicovideo.jp/smile?s=6847754.80038as3</url> <length>7</length> <movie_type>swf</movie_type> <deleted>0</deleted> <private>0</private> <as3>1</as3> </bgm> </bgm_video>
以下、各タグの内容(推測)。
bgm全体。status="ok"の時はbgmが取得できた場合。bgmが取得できなかった(そもそもユーザーニコ割が指定されていない場合や、threadIdが正しくなかった場合等)は"ok"ではなく"fail"が入っている?(←自信が無い)
bgm一つを表す単位
ビデオID。http://www.nicovideo.jp/watch/ビデオID にアクセスするとニコ割だけが見れる。
BGMのタイプ。CMだとユーザーニコ割だと思ってよさそう。ほかのタイプがあるのかどうかは調べてない。
動画そのもののURL。最後にas3ってついてるのとついてないのがある。
ニコ割のビデオIDに(http://www.nicovideo.jp/watch/nm0000みたいな感じで)アクセスしてgetflvの結果を見ると最後の"as3"がついてないのに、getbgmで得た結果のurlには"as3"がついている事がある。このときは"as3"がついてる方のurlに見に行かないとユーザーニコ割がダウンロードできない。
長さらしい。何の長さなのかは解らない。
削除されているかどうか。たぶん。1になってるのは見た事が無い。
よく解らない。
SWFがas3に変換済かどうか。
NNDDのソースだとmineap.a2n4as.ApiGetBgmAccessが該当する処理をしています。