このスクリプトは、MMD杯問題を受けて、マイリスト登録数に代わる動画の評価基準を考えてみた際に思いついたものです。
ニコニコ動画のマイリス工作は、一般会員のアカウントが大量にあれば簡単にできます。 そこで、プレミアム会員という大量に用意することが難しいアカウントが行う何らかのデータを集計できればいいのではと考えました。
動画コメントのデータにはコメント毎に会員IDとプレミアム会員フラグが含まれています。 そのデータから会員IDの重複を削除し、プレミアム会員か否かで振り分けると、以下のようなデータが算出できます。
- P. 動画に生IDで投稿したプレミアム会員IDの数
- Pa. 動画に184で投稿したプレミアム会員の匿名IDの数
- G. 動画に生IDで投稿した一般会員IDの数
- Ga. 動画に184で投稿した一般会員の匿名IDの数
あとは、これらにそれぞれ重みを設定すれば、動画の新たな評価基準になるのではないかというわけです。
評価値 = P × 1000 + Pa × 100 + G × 10 + Ga × 1
- python3.4 以上
※ubuntu などの一部の環境では、venvモジュールを別途インストールする必要があるようです。
コマンド実行時にfailed to create virtual environment
と表示される場合は、
python3 の venvモジュールをインストールしてください。
ubuntu 16.04 の場合sudo apt install python3-venv
でインストールできます。
git が使える場合は、
git clone https://github.com/pettypechi/nicocc.git
それ以外の場合は、https://github.com/pettypechi/nicocc から [Clone or download] → [Download ZIP] を選択して、 zipファイルをダウンロードした後、 任意のフォルダに展開してください。
macOS または Linux で zipファイルを展開した場合は、実行ファイルに実行権限を付与してください。 bash で nicocc-masterフォルダに移動して、以下のコマンドを実行してください。
chmod +x nicocc
作業フォルダを作成し、その中に設定ファイル nicocc.toml を作成します。 設定ファイルは、TOML形式のテキストファイルです。テキストエディタで編集してください。 必須項目は以下の5項目です。
[user]
mail = "xxxxxxx@xxx.xxx" # ニコニコ動画のログインメールアドレス
password = "xxxxxxxxx" # ニコニコ動画のログインパスワード
[counter]
start = "2015-02-03 21:00:00" # 集計を開始する時刻
end = "2015-03-02 21:00:00" # 集計を終了する時刻
mylist = [ 46273813, 46273814 ] # 対象動画を集めたマイリスト番号のリスト
集計の実行は、nicoccコマンドの引数に作業フォルダを指定します。
nicocc <作業フォルダのパス>
集計が正常に終了すると、マイリストから取得した動画データである videos.csv ファイルと、 集計結果である result.csv ファイルが、作業フォルダ内に作成されます。
第14回および第20回MMD杯の設定サンプルを同梱しています。
- sample-14th
- sample-20th
まず、これらのフォルダ内にある設定ファイルを編集して、集計に使う ニコニコ動画のログイン情報を設定してください。
# ---------------------------------------------------------
# ログイン情報
# ---------------------------------------------------------
[user]
# ニコニコのログインアカウント
mail = "<メールアドレス>"
# ニコニコのログインパスワード
password = "<パスワード>"
コマンドプロンプトで、nicoccフォルダに移動して、下記のコマンドを実行してください。
第14回MMD杯を集計する場合
nicocc sample-14th
第20回MMD杯を集計する場合
nicocc sample-20th
bash で nicoccフォルダに移動して、下記のコマンドを実行してください。
第14回MMD杯を集計する場合
./nicocc sample-14th
第20回MMD杯を集計する場合
./nicocc sample-20th
スクリプトが正常に終了すると、sample-14th または sample-20th フォルダに、集計結果 result.csv が作成されます。
第20回は30分程度、第14回は1.5時間程度かかると思います。 混雑時には 503 が返ってきたり、必要なアクセスキーが得られず、途中終了することがあるので、 その際は再度同じコマンドを実行してください。既に取得済みのコメントを再利用するので、続きから始められます。