2009年02月16日

撤退

週刊アイドルマスターランキングの集計支援から撤退する方向で調整することにしました。

集計支援は、毎日朝4時にニコニコ動画のランキングのチェックする手間を省くために始めたものです。
ニコニコ動画のランキング更新は1日1回となり、過去のランキングも自由に確認できるようになりました。
もう時間設定して自動で収集し、メールで送信する意味はなくなりました。

これから、過去ランキングを取得して、一覧化するアプリと指定動画の情報を一覧化するアプリを作成し、オープンソース化してメンテナーを集って、週マス支援は終わりにしようと思います。
特に週マス編集部から撤退について、要望等も出てこないようなのでこの方法で問題なさそうかな?

アプリの開発環境は、C#で.Net Framework 3.0とか、マルチプラットフォームならAdobe AIRとかですかね。
Javaでもいいのですが、利用環境を設定する敷居が高いような気がしてます、ダブルクリックで起動するようにするの大変だし。

取得結果の出力はExcelかTSVですかね。

過去ランキング取得以外では、ニコニコ動画にログインして情報を取得することはしない方針です。
ですので、削除動画の情報は取得しません。
ログインが必要なところは連続アクセス制限がかかってたりするので、取得に何時間もかかったり、いろいろ問題起きたりするので、現状から比較して機能を省略します。

今考えてるのはこんなところです。
posted by てんじゃ at 23:23 | Comment(0) | TrackBack(0) | ニコニコ動画アイマス情報取得

2009年02月08日

タグで遊ぼう!

AOI_CATさんが、タグの重みづけについて話をしていたので、私の方でもタグを使ったデータを出してみました。

ニコニコ動画で「アイドルマスター」のタグが付いてる動画を対象にしています。
集計データは2009/1/23のものです。

まずは、アイドル名のタグについて、
A:各アイドル名タグのついてる動画の再生数の合計
B:Aの合計
C:A÷B×100
Cの値をグラフ化しました。
数値はパーセントというより、各タグの比率だと思ってください。

idoltag.png

idlobar.png


つぎは、曲名のタグについて、
A:各曲名のタグがついているる動画の再生数の合計
B:アイドルマスタータグが付いてる動画の再生数の合計
C:A÷B×100
Cの値を表かしまいした。

songtag.png

あとは、個別にピックアップ、
A:特定のタグがついているる動画の再生数の合計
B:アイドルマスタータグが付いてる動画の再生数の合計
C:A÷B×100
Cの値を示していきます。

「ゲーム」タグが付いてる動画は61.6%になります。

checktag.png

今回は出てきた数字にあれこれ言うのは面倒になったのでヤメ。
ああ、ひとつ
私は週マスを、新作をチェックする動画ではなくて、もうすでに観た新作動画と今週の投稿傾向に対して感想をコメントする動画だと思っています。
posted by てんじゃ at 12:00 | Comment(0) | TrackBack(0) | 雑記

2009年02月04日

こういうシステムを作って動かしています

私が週刊アイドルマスターランキング制作の支援のために、作り始めたニコニコ動画の動画情報収集システムの構成について、少しずつ説明していこうかと。


現在Ver.2となってます。
Ver.1はニコニコ動画のランキングと指定した動画の情報を収集する、週マス用の機能を基本としたバージョン。
Ver.2ではマイリスト数が表示されるようになって、タグ検索結果を取得できるようになったバージョンです。


ベースとしてPlaggerを使っています。
PlaggerはPerlでできたシステムで、いろいろな情報を取得して、RSS Feed形式にして加工、いろいろな方法で出力できるものです。
プラグインによって、取得する情報、加工方法、出力先を自由にカスタマイズできます。さまざまなプラグインが公開されています。
プラグインは、設定ファイルによって複数の取得、加工、出力プラグインを組み合わせて1つの処理にすることができます。

なぜPlaggerを採用したかというと、一時期、かなり流行っていたので試してみたかったのと、何を取得して、どのように出力するか決まってない中で、どれだけ柔軟に機能拡張できるか?というのを満たしそうなのと、サンプルになりそうなコードが豊富だったためです。


nicovideoinfo.png


これがシステムの概要図です。
プラグインは八割がた既存のプラグインを修正して使っています。
というのも、RSS Feed用に用意された項目ではニコニコ動画の情報が格納しきれないためです。
再生数などは、独自に拡張する必要がありました。
Perlはスクリプト言語だけあって、後からFeed用のクラスに連想配列のキーを追加しても、プラグインの方さえ値を拾うようになっていれば問題なく動作するため、プラグイン部分のみを開発することでかなり作業を減らすことができました。


たとえば、設定ファイルがどのようになっているかというと
毎日のマイリストランキングを取得する設定は以下となっています。
・ランキング取得プラグイン
   マイリスト、毎日を指定
・ニコニコ動画情報加工プラグイン(ランキング等で表示されていないタグ等の情報の追加取得)
・Excelランキング形式出力プラグイン
・メール送信プラグイン
・条件動画抽出加工プラグイン
   アイドルマスタータグ付き動画抽出指定
・ブログ出力プラグイン
   テンプレート指定
・Twitter出力プラグイン
   テンプレート指定

取得する情報によって設定ファイルを分けています。
定期的に取得するものは、時間指定で指定した設定ファイルでPlaggerが実行されるようになっています。


ニコニコ動画から情報を取得する部分ですが、LWP::RobotUAモジュールを拡張しています。
連続アクセス制限があるページのURLを連続で取得しようとすると、自動でアクセスする間隔が増えるようになっています。
ログインしてる状態で一定回数アクセスすると、別のアカウントでリログインします。


情報のパースは、ページの場合正規表現で抽出しています。正規表現の文字列は別ファイルにしてあります。
XMLのところはLibxml2でXPathを指定して抽出しています。


ランキング取得とタグ検索結果取得は、ページをファイルに落とします。
これは、ページのデザインが変わっていたりして、正しくパースできなかった場合、修正後パース処理からやり直すためです。
一度ダウンロードしておけば、パース処理の修正は後からでも出来ますので。
特にタグ検索結果は取得するページ数が多く、時間がかかるので、いくつかのプログラムに分けて実行されます。
  1. タグ検索結果全ページダウンロード
  2. パース処理をして、DBに登録
  3. DBからデータを呼び出して、タグ等の情報を別途取得、DB登録

まずは、ざっくり全体の動きなどをメモってみました。
詳細部分については別途。
posted by てんじゃ at 02:13 | Comment(0) | TrackBack(0) | ニコニコ動画アイマス情報取得