2010年6月アーカイブ

ニコ動関連ツール開発者情報のメモ

RSSリーダに登録されてるのの整理がてらメモ。。この辺見とけばニコ動仕様が多い日もみんなあたふたしているハズだから安心?ですね。ドワンゴ開発者のをまとめてもいいんだけど、それはすでにどっかの誰かがやっているだろうからパス。

ニコ生アラートの仕様とかもあるのね、ニコ生関連はほとんど使ってないからよくわからん、、

某へのリプライっぽいもの。
公式動画(so********)が同じ方法じゃうまくいかんなぁと思って調べててたまたま見つけたんだけど、
http://pc12.2ch.net/test/read.cgi/software/1251017748/455
http://pc12.2ch.net/test/read.cgi/software/1251017748/462

455 : 名無しさん@お腹 - 2009/12/15(火) 20:20:50 ID:d9WhgveFP
こういう、とあるサイトに対する研究って
同様ツール作ってる人向けに、共同でWikiとか作れないものか。
ニコニコ系ツールつくってる人結構いるみたいだし。

仕様変更とかひとりで追っかけるの大変だと思うのだけど
わかったとこだけ書き加えるだけならそんなには手間にならないんじゃないかなぁ?


非公式ツールだしおおっぴらにやっちゃまずいのかしら。
462 : 名無しさん@お腹 - 2009/12/17(木) 02:09:10 ID:5G8MHq3Z0
>>455
ツール開発やってるからAPIはそれなりに把握してるけど
調べるだけでも大変なのにWiki書くのやだよ
Wikiのやり方も分かんないし、仕様変わってメンテ怠ると
ウソかいてんじゃねえよって怒られそうだもん

チラ裏のように書けるブログは情報の発信の敷居を下げるけど情報の整理には向いていない、総ブログ総Twitter時代になってみんな情報の整理がヘタになってきているなぁ、とか思った。 でもよく考えてみたら、5年前も似たようなことを考えてた気がする。

開発者それぞれが自分仕様のソフトを好きに作るのもいいんだけど、 どっかである程度の割合の人はあきらめて周りを整備する方として貢献するようにしなきゃ大規模開発は回らないよなぁ、とか仕事してて最近つくづく思う。

「ソースコードが仕様書」なんてのは開発者の横暴だけど、その横暴を通すためには、仕様がわからんとか情報がないとかぐーたれるよりもソースコードから読まなきゃ話が進まない気がする。 まぁその前提としてソースコードが公開されている必要があるけど。

とか書いてると、xPadieの作者が開発終了宣言と同時にソースコードを公開していたのを思い出した。もう何年前の話だろ。って全然話関係ないや。

というわけでSourceForge登録してニコニコランキングメーカのソース落としてみようと思ったけど、 SourceForge使い方わかんねー、SVNなんて使ったことないや、そもそもこのPCにVSインスコしてない、て叫びたかっただけです。 ちなみに、SourceForge登録してなくても、SVN使わなくても、ブラウザから見ることは可能みたい。もちろん見るだけならVSなくてもおk

・・・という感じで休日つぶしてます。>「休みの日どうすごしてんの?」と質問した人へ。

ニコ動APIメモ

いろんな人がいろいろやってんだけど、今のところはニコPITAさんとこのブログが一番情報がまとまってそう。。
http://nicopita.info/NicoPITA/?cat=6

APIを利用する各言語ライブラリを整備しようという「ニコ★リブ」構想があったらしいけど、活動中止宣言されてしまってら。
http://sourceforge.jp/projects/nicolib/

ニコ生は動画がRTMPプロトコルに載っているらしい。けどRTMPの実装がFlashplayerそのもの以外はあんまりない模様。参考になりそうなのはRTMPDumpくらい?
http://d.hatena.ne.jp/kesikaran/20100329/1269870039
http://rtmpdump.mplayerhq.hu/

以下、後世の自分のためのメモ。

● ログイン
以下に「mail=(mail)&password=(pass)」をPOSTしてセッションCookieを取得し、以後の通信に添えて送ること。ニコ動はログインしてないと使えないサービスが多い。
https://secure.nicovideo.jp/secure/login

● 動画
たとえば "sm9" の場合、まず以下にアクセスする。
http://ext.nicovideo.jp/api/getflv/sm9

返ってきた結果(Body)の "url=****" の部分が動画ファイルを取得できるパス。「http%3A%2F%2Fsmile-pcm42.nicovideo.jp%2Fsmile%3Fv%3D9.0468」のようにURLエンコードされてるので適当にとく。このパスへGETすればビデオファイルがとれるが、とる前には必要なくとも必ず「http://www.nicovideo.jp/watch/sm9」へアクセスしないといけないっぽい。ちなみに、末尾「smile?v=***」がflv、「smile?m=***」がmp4、「smile?s=***」がswfらしい。取得するときはエコノミーモードに注意。今のエコノミーモードの時間帯

返ってきた結果の "ms=***" と "thread=***" を使ってコメント取得できる。 "ms=***" はURLエンコードされてる。 "ms=***" のpathに以下のようなのをPOSTすると、コメントがXMLで取得できる。(thread)は取得したもの、-250は取得したいコメント数

<thread thread="(thread)" res_from="-250" version="20061206" />

取得できるXMLにもいろいろのってるけど、必要になる箇所はこんな感じ。"mail"がコメント装飾タグ、"vpos"がコメント表示位置(10ms単位)

<chat anonymity="1" date="1203325660" mail="yellow 184" no="5404" thread="1201291236" user_id="mVA0IZFEyRz3uKxZ5LWumuzLoIU" vpos="25757">りん</chat>

コメントの表示位置(移動速度とか重ならないようにとか弾幕モードとか)はクライアントでやっているようだ。ちなみに、表示されるコメント数は動画の長さできまり、今のところは、1分未満が100件、5分未満で250件、10分未満で500件、10分以上で1000件。

ほか、以下にアクセスするといろいろ情報とれる。
http://ext.nicovideo.jp/api/getthumbinfo/sm9

● ニコ生
http://live.nicovideo.jp/api/getflv/lv18905056 をIDとすると、いかにアクセスすると、動画の場合と同じようなのが返ってくる。ただしこっちはXMLで返ってくる。
http://live.nicovideo.jp/api/getplayerstatus/lv18905056

返ってきた結果(Body)の <ms>タグ以下にある<addr>, <port>, <thread> を使ってコメントサーバに接続する。ただし、ニコ生の場合は、HTTPではなく生のSocketになる。addrのportにSocketで接続し、以下のような内容を write する。最後に 0x00('\0')もwriteすること(ここはまりやすい)

<thread thread="(thread)" res_from="-20" version="20061206" />

"-20"は接続した瞬間から過去いくつのコメントまで取得するかを表す。で以降は、新しいコメントが来るたびにsocketにデータが届くのでreadすればよい。コメントはXML形式で動画の場合とほぼ一緒。

返ってきた結果の ticket と rtmp あたりを使ってRTMP接続すれば、ニコ生の動画部分が見えるはず。ただまともなRTMPクライアントを作れていないので今のところ詳細不明。

● 実況
たとえば NHK総合(東京)につなぐ場合、まず以下へアクセスする。
http://jk.nicovideo.jp/api/getflv?v=jk1

返ってきた結果(Body)の thread_id と ms と ms_port を使って、ニコ生と同じようにSocket接続すればコメントが取得できる。返ってくる形式も含めて一緒。

実況は、テレビやラジオの放送がターゲットなので、ニコ動サイト側からストリーミングされることは(今のところ)ない。


・・・といった情報をいろんな人がいろんなところに書いてるから分散しているよなぁ。みんなでどっか1カ所に集めようよ。。

このアーカイブについて

このページには、2010年6月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2010年5月です。

次のアーカイブは2010年7月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

月別 アーカイブ

ウェブページ

Powered by Movable Type 7.9.0