classic style

論文読んで見た系: 他-> http://gabdro.hatenablog.com/

Pythonでニコニコ動画のコメントを取得する方法

はじめに

本記事ではニコニコ動画のコメントを取得してみます
取得するコメントの動画は『ご注文はうさぎですか? 第1羽「ひと目で、尋常でないもふもふだと見抜いたよ」』です
自分の取得したい動画にする場合は"1397552685"の値を公式ならば数字,ユーザ動画ならsmを付けた番号に変えてください
※執筆以降,仕様が変更されていて下の通りできない場合はご了承ください

取得方法

動画のコメントを取得するには{thread_id,user_id,threadkey,force_184}が必要

まず,ニコニコ動画にログイン(ログイン済みのセッションでないと以下の情報が取得できないため)

次に以下のURL(api/getflv)にアクセスして{thread_id ,user_id},そしてメッセージ鯖のURLを取得
http://flapi.nicovideo.jp/api/getflv/1397552685

公式動画(smなし)のコメントを取得するため以下のURLにアクセスして{threadkey,force_184}を取得
http://flapi.nicovideo.jp/api/getthreadkey?thread=1397552685

メッセージサーバ{nmsg.nicovide.jp/api}に以下xmlをPOSTする

<thread thread="1397552685" version="20090904" res_from="-100" user_id="ユーザID" threadkey="スレッドキー" force_184="1"/>

コメントは現在から最大1000件遡って取得することができる

画像は取得例
f:id:planetaria:20161116130445p:plain

コード

解析するのに1000件って少なくない?

どうやら過去ログを取得することもできるらしいのでやってみたいと思います
こちらはプレミアム会員限定?
xmlに{when , waybackkey}を加えれば良い

以下のURLにアクセスして{waybackkey}を取得
http://flapi.nicovideo.jp/api/getwaybackkey?thread=1397552685

whenは取得したい日時をUNIX秒で指定

<thread thread="1397552685" version="20090904" res_from="1000" user_id="ユーザID" threadkey="スレッドキー" force_184="1" when="1429066800" waybackkey="" />

指定時刻から1000コメントではなく,指定時刻から遡って最大1000コメント?取得っぽい
またthreadkey , waybackkeyは一定時刻で更新される(前のやつが使えなくなる?)

取得したxmlの"no"がコメント番号なので,ここを指定して1000コメずつ取得できないかな..
(TwitterのツイートID指定みたいに)

まとめ

探してみたけど公式が動画のコメントに関するAPIの情報を提供しているのかよくわからない

ニコニコ動画のコメント解析をするならば公式が提供しているデータセットを使う方が良い
▶︎情報学研究データリポジトリ ニコニコデータセット
ただし2012年11月初旬までに投稿された動画のデータだけなのでそれ以降の動画のコメントに対する解析には向かない

大変参考になった記事一覧