コメントを取得する時
<thread_leaves thread="\d+" user_id="\d+" threadkey="\d+.\w+" force_184="1">0-25:100</thread_leaves>
というフォーマットを送信している事がある。
把握してる分だけだと、公式配信されているアニメ(ストライクウィッチーズ2とか)で確認した。
この動画はチャンネル動画で、urlはwatch/\d+の形式のみ。
一応soナンチャラのデータもあったけど、即リダイレクトされた。
チャンネル動画なら全部そうなのかな と思ったけど、一般人が投稿する動画に対しては送信されていなかった。
で、この動画(以下 ストライクウィッチーズ2の公式配信動画)はコメントを2500件以上受信している。
かつ、コメントの番号が連番じゃない。
2500件というのはこの動画の長さが24分30秒 という情報から来ていて
「この動画の0分~25分までのコメントを分辺り100件頂戴」という情報を「0-25:100」と記述してる。
100は100が最大値。それ以上は100になるから9999とでも書いとけ。
25というのは動画の分+1だけど、それ以上書いても適正値(この動画の場合25)になるから、まあ99999とでも(ry
で、コメントが連番じゃないという事に関して。
まあ上記の通り、分辺りのコメントを返す訳だから必ずしも連番には出来ない
最新のコメントに近い(番号が大きい)順に返してるらしい。
で、今自分はプレミアム会員の過去ログ取得機能を使って、コメントを全て保存するスクリプトを書いてるんだけど
この機能が邪魔でしようがない。
連番で取得出来たら普通に1000件ずつダーッと取得していけばよかったんだけど
この仕様だと最大100件という事になってしまう。
ニコニコ公式配信のアニメは万単位のコメントがザラだから、最低100アクセスから・・・。これは流石にね。
「じゃあ普通のコメント取得方法でアクセスすればいいんじゃね」って思ったけど
この動画は普通のコメント取得方法だとコメント返してくれないっぽい。
「しょーがないから公式配信は我慢して」と思ったんだけど
そうするには「今の動画が公式配信で連番コメントが取得できる動画なのかそうじゃないのか?」が判断出来ない。
コメントを取得する前にスクリプトが知っている情報は視聴ページのURLとGETFLVの戻り値のみ。
SWFのas読んだけど、どんな動画でthread_leavesを作ってるのか作ってないのかの判定は処理出来なかった・・・。
悩みどころ。