パケットを盗聴してわかったいくつかの事。
ニコニコ動画をブラウザで見た時のパケットを盗聴して、いくつか気になったもの、欲しいと思ってたものが出てきたのでここにメモ。
出てきた物は以下の物。
- コメント ニコニコ動画のAPIのメモ - picasの日記 とか http://d.hatena.ne.jp/poChi/20080111/1200077724 とか http://tetetep.blog112.fc2.com/blog-entry-181.html に詳しく書いています。ここには書きません。(私が書くとわかりにくいので)
- ichiba。何だろね、これは、市場のかしら?
- ニワニュース。スッキリと取れました。
- おすすめ動画。これもスッキリと取れました。
- configurengclient。多分、コメント非表示リスト?
- crossdomain.xml。
これなぁに・・・?Flash Playerの許可ドメインリスト。 id:fukken さん、ありがとうございます。m(_ _)m - nicopedia。よくわからない。パケットの量も多いのでここには書かない。
詳細のパケットは長いので下記。ただ、リクエストとレスポンスのコンテンツは微妙に違います。困った事に、gzip圧縮されてるからスニフでは読めないのよね、レスポンスのコンテンツが。だから、だいたいこんな感じと思って下さい。後、Cookieとかは隠してますので。
ichiba
よくわからない。
GET /embed/bb/ HTTP/1.1 User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_5_3; ja-jp) AppleWebKit/525.18 (KHTML, like Gecko) Version/3.1.1 Safari/525.20 Cache-Control: max-age=0 Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 Accept-Language: ja-jp Accept-Encoding: gzip, deflate Cookie: *** Connection: keep-alive Host: ichiba.nicovideo.jp HTTP/1.1 200 OK Date: Sun, 08 Jun 2008 05:59:33 GMT Server: Apache Content-Location: index.xml.gz Vary: negotiate,accept-encoding TCN: choice Last-Modified: Sun, 08 Jun 2008 05:55:01 GMT ETag: "25f" Accept-Ranges: bytes Content-Length: 607 Connection: close Content-Type: application/xml Content-Encoding: gzip <items><item><log_id>174961</log_id><ItemId>dw705505</ItemId><Title>デラックスファイターのテーマ(秘密結社 鷹の爪)</Title><nickname>とら幸</nickname><video_id>sm1172924</video_id><timestamp>2008-06-08 14:17:14</timestamp></item><item><log_id>174962</log_id><ItemId>dw1510431</ItemId><Title>魔理沙は大変なものを盗んでいきました</Title><nickname>名無し</nickname><video_id>sm494720</video_id><timestamp>2008-06-08 14:17:56</timestamp></item><item><log_id>174963</log_id><ItemId>dw1449990</ItemId><Title>ウッーウッーウマウマ(゜∀゜)(Ryu* Remix)</Title><nickname>こぞん</nickname><video_id>nm3392808</video_id><timestamp>2008-06-08 14:19:26</timestamp></item></items>
こっちは多分、アマゾンのコンテンツ。長ったらしいので、下半分ははぶいてます。てかHTMLベタ書きかよ・・・
GET /embed/?action=showMain&v=sm3410907&rev=20071116&callback=Ajax.RequestP.requestors[0].handleResults&&dummy=1212904268463 HTTP/1.1 User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_5_3; ja-jp) AppleWebKit/525.18 (KHTML, like Gecko) Version/3.1.1 Safari/525.20 Referer: http://www.nicovideo.jp/watch/sm3410907 Accept: */* Accept-Language: ja-jp Accept-Encoding: gzip, deflate Cookie: *** Connection: keep-alive Host: ichiba3.nicovideo.jp HTTP/1.1 200 OK Date: Sun, 08 Jun 2008 05:51:10 GMT Server: Apache X-Powered-By: PHP/5.2.5 Connection: close Transfer-Encoding: chunked Content-Type: text/html Ajax.RequestP.requestors[0].handleResults("<div id=...
ニコニュース
そのまま。レスポンスはXMLデータになっているのがわかります。uidはユーザID?で、これは動画に関係なくデータの内容はおなじみたい。
GET /api/getmarquee?mqver=0&uid=965242 HTTP/1.1 Referer: http://www.nicovideo.jp/watch/sm3410907 User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_5_3; ja-jp) AppleWebKit/525.18 (KHTML, like Gecko) Version/3.1.1 Safari/525.20 Accept: */* Accept-Language: ja-jp Accept-Encoding: gzip, deflate Cookie: *** Connection: keep-alive Host: www.nicovideo.jp HTTP/1.1 200 OK Date: Sun, 08 Jun 2008 05:51:14 GMT Server: Apache Content-Location: getmarquee.php Vary: negotiate,Accept-Encoding TCN: choice X-Powered-By: PHP/5.2.5 Content-Encoding: gzip Content-Length: 591 Connection: close Content-Type: text/xml; charset=UTF-8 <marquee_data status="ok" ver="1212902402"> <marquee_219> <type>text</type> <size>14</size> <fcol>0x000000</fcol> <bcol>http://www.nicovideo.jp/img/marquee/niwanews.gif</bcol> <interval>60</interval> <size2>14</size2> <fcol2>0x000000</fcol2> <f>4</f> <lid>dbb07dc344ffd059684b3b4a38e3382015950e98</lid> <text>注目CD・DVD発売情報</text> <link>http://niwango.jp/pc/niwanews/search.php?id=20591</link> <text2>ニワニュース 6月8日</text2> </marquee_219> .... </marquee_data>
configurengclient -- 多分、非表示コメント
- 基本的に、/api/configurengclient で操作。modeにgetが付けば取得。他にmodeがあるけど黙っとく。てか、DBいじくる操作はPOSTだろ。URL見ただけで何をしているのか、特に削除追加をしているのがわかるのはちょっとスマートじゃないぞ。。。(ブツブツ・・・)
GET /api/configurengclient?mode=get HTTP/1.1 Referer: http://www.nicovideo.jp/watch/sm3410907 User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_5_3; ja-jp) AppleWebKit/525.18 (KHTML, like Gecko) Version/3.1.1 Safari/525.20 Accept: */* Accept-Language: ja-jp Accept-Encoding: gzip, deflate Cookie: *** Connection: keep-alive Host: www.nicovideo.jp HTTP/1.1 200 OK Date: Sun, 8 Jun 2008 06:20:49 GMT Server: Nico Nico Douga/1.0 Content-type: text/xml Content-length: 232 Vary: Accept-Encoding Cache-Control: max-age=0 Expires: Sun, 8 Jun 2008 06:20:49 GMT Content-Encoding: identity Connection: close <response_ngclient status="ok"> <revision>36</revision> <count>17</count> <ngclient> <type>id</type> <source>8WGniRW45He9M-n0ZH_TtuwKiPs</source> <register_time>1211099877</register_time> </ngclient> <ngclient> <type>word</type> <source>あああ</source> <register_time>1212905861</register_time> </ngclient> <ngclient> <type>command</type> <source>red</source> <register_time>1212905871</register_time> </ngclient> </response_ngclient>
crossdomain
いたる所で見る。ランキングでも見るし。なんだろうこれは・・・ ニコニコのFlashPlayerが問い合せを許可するドメイン一覧。
GET /crossdomain.xml HTTP/1.1 Referer: http://www.nicovideo.jp/watch/sm3410907 User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_5_3; ja-jp) AppleWebKit/525.18 (KHTML, like Gecko) Version/3.1.1 Safari/525.20 Accept: */* Accept-Language: ja-jp Accept-Encoding: gzip, deflate Cookie: *** Connection: keep-alive Host: msg.nicovideo.jp HTTP/1.1 200 OK Date: Sun, 8 Jun 2008 05:51:11 GMT Server: Nico Nico Douga/1.0 Content-type: text/xml Content-length: 213 Connection: close <?xml version="1.0"?> <!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd"> <cross-domain-policy> <allow-access-from domain="*.nicovideo.jp" /> </cross-domain-policy>
おすすめ動画
スッキリと取って来れます。≤!-- a.yasui:... --≥ はあたしのコメントです。
GET /api/getrelation?page=0&sort=p&order=d&video=1211556779 HTTP/1.1 <!-- a.yasui:pageは数値(0と1は区別無し) videoはthread_id --> Referer: http://www.nicovideo.jp/watch/sm3410907 User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_5_3; ja-jp) AppleWebKit/525.18 (KHTML, like Gecko) Version/3.1.1 Safari/525.20 Accept: */* Accept-Language: ja-jp Accept-Encoding: gzip, deflate Cookie: *** __utmb=8292653 Connection: keep-alive Host: www.nicovideo.jp HTTP/1.1 200 OK Date: Sun, 08 Jun 2008 05:52:17 GMT Server: Apache Content-Location: getrelation.php Vary: negotiate,Accept-Encoding TCN: choice X-Powered-By: PHP/5.2.5 x-niconico-id: 965242 x-niconico-authflag: 1 Content-Encoding: gzip Content-Length: 1411 Connection: close Content-Type: text/xml; charset=utf-8 <related_video status="ok"> <total_count>300</total_count> <!-- a.yasui: おすすめ関連動画の数 --> <page_count>20</page_count> <!-- a.yasui: ページ数 --> <data_count>15</data_count> <!-- a.yasui: 1ページあたりのデータ数 --> <video> <url>http://www.nicovideo.jp/watch/sm3444333</url> <thumbnail>http://tn-skr2.smilevideo.jp/smile?i=3444333</thumbnail> <title>【Full】行列のできるえーりん診療所 動画Ver〜暫定</title> <view>187943</view> <comment>3987</comment> <mylist>7359</mylist> <length>211</length> <time>1211728165</time> </video> </related_video>
追記:お勧め動画が無い場合+動画が無い場合のレスポンス
こちらは、お勧め動画が無い場合の挙動
GET /api/getrelation?page=1&sort=p&order=d&video=1212900898 HTTP/1.1 Referer: http://www.nicovideo.jp/watch/sm3594401 User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_5_3; ja-jp) AppleWebKit/525.18 (KHTML, like Gecko) Version/3.1.1 Safari/525.20 Accept: */* Accept-Language: ja-jp Accept-Encoding: gzip, deflate Cookie: *** Connection: keep-alive Host: www.nicovideo.jp 11..HTTP/1.1 200 OK Date: Sun, 08 Jun 2008 16:56:21 GMT Server: Apache Content-Location: getrelation.php Vary: negotiate,Accept-Encoding TCN: choice X-Powered-By: PHP/5.2.5 x-niconico-id: 965242 x-niconico-authflag: 1 Content-Encoding: gzip Content-Length: 127 Connection: close Content-Type: text/xml; charset=utf-8 <related_video status="ok"> <total_count>0</total_count> <page_count>0</page_count> <data_count>0</data_count> </related_video>
こちらは動画が無い場合の挙動。
GET /api/getrelation?page=1&sort=p&order=d&video=12129008 HTTP/1.1 User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_5_3; ja-jp) AppleWebKit/525.18 (KHTML, like Gecko) Version/3.1.1 Safari/525.20 Cache-Control: max-age=0 Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 Accept-Language: ja-jp Accept-Encoding: gzip, deflate Cookie: *** Connection: keep-alive Host: www.nicovideo.jp HTTP/1.1 200 OK Date: Sun, 08 Jun 2008 16:59:03 GMT Server: Apache Content-Location: getrelation.php Vary: negotiate,Accept-Encoding TCN: choice X-Powered-By: PHP/5.2.5 x-niconico-id: 965242 x-niconico-authflag: 1 Content-Encoding: gzip Content-Length: 180 Connection: close Content-Type: text/xml; charset=utf-8 <related_video status="fail"> <error> <code>PARAMERROR</code> <description>パラメータが不正です</description> </error> </related_video>