RSSフィード:

これまで話してきた日刊VOCALOIDランキングの自動生成システムは、
作った当初は自分専用のもので、他のランキング作成に使われることは
考えてませんでした。他の人に使ってもらうことを意識し始めたのは、
KAITO新曲ランキングの初代の方が多忙のために制作を休止するという話を
聞いてからです。自分だけのために作ったプログラムでしたが、
他の人にも役立つのではないかと思い、公開を検討しました。

自分専用に作っていたプログラムを他の人にも使えるようにするためには
結構な労力がかかります。例えば、集計部分では、日刊用の集計だけを行うなら
日刊専用の検索ワード(VOCALOID、初音ミク等)で決まった時間に決まった
ページ数を取得するだけでよいのですが、他者に使ってもらうためには、
検索ワードの入力欄を用意して、さまざまな検索条件(集計期間等)を
指定できるようにする必要があります。そのように他者が使えるように
プログラムを改良して最終的に完成したのがニコニコランキングメーカーです。
KAITO新曲ランキング2代目のなつめさんにより、「日刊たんの妹」と名づけられました。

ニコニコランキングメーカーは最初、特定の希望する人にメールで
直接配布していました。希望する人の中には週刊ニコニコランキングの
3代目(仮の人さん)や、週刊VOCALOIDランキングの作者(sippotan さん)もいて、
メールで初めて連絡が来たときは驚いたものです。

半年後くらいには機能も増えてきて、不具合も少なくなってきたので、
一般に公開しました。今ではニコニコ動画内の各種ランキング動画の作成に
使われているようです。ランキング動画の最後のクレジットに
ニコニコランキングメーカーの文字があるのを見てにんまりとしています。

by rankingloid

Avisynth はテキストファイルにスクリプトを書くことで動画編集ができるツールです。
例えば、以下のスクリプトは2つの動画(movie1.avi と movie2.avi ファイル)を順番につなげます。

clip1 = AVISource("movie1.avi")
clip2 = AVISource("movie2.avi")
clip1 + clip2


movie1 と movie2 の間にフェード効果を入れるのは

clip1.FadeOut(24) + clip2.FadeIn(24)

と書くだけです(24はフレーム数)。このようにすべての編集が文字(スクリプト)を書くことによって
行えるので、プログラミングの知識があれば動画生成が簡単に自動化できます。

現在の日刊VOCALOIDランキングで実際に使われているスクリプトの一部がこちらです。

Avisynthスクリプト

Avisynthスクリプト



このAvisynthによる動画化は2009年4月1日に実験を行い4月21日に本番投入しました。
紹介画面の動画化によって、不自然な静止画切抜きが無くなり、少し視聴しただけでは
自動生成であるとは分からないほどになったと思います。

by rankingloid

日刊VOCALOIDランキングも、回数を重ねていくにつれて色々な問題が起こりました。
初めに困ったのは釣り動画の存在です。初期のルールでは手動で除外を行わないことに
していたので、何日かに1本はランクインしていました。釣り動画のマイリスト率
(再生数/マイリスト数)が極端に小さいことを利用して、2%以下の動画は除外するなどの
対策をとりましたが、通常の動画まで除外されてしまうことがあるので、このルールは
しばらくして止めました。結局、釣り動画はそのまま掲載することになりましたが、
2008年秋頃以降は釣り動画はほとんど見かけなくなり、何もしなくてもよくなりました。
最近はもしランクインしたとしても手動で除外しています。

公式ランキングのずれも問題となりました。初期の頃は毎時間更新される
ニコニコ動画運営公式のデイリーランキングのデータを取得していたのですが、
このデータが真の値と数時間ずれることがしょっちゅう起こりました。
仕方なく、より正確に取得できる、getthumbinfo APIを併用しています。
現在ではタグ検索+公式毎時ランキング+getthumbinfo+ニコチャートを組み合わせ、
さらに、集計用サーバを別の場所に2台用意し、集計失敗が無いように工夫しています
(ニコチャートは緊急時のバックアップで、実際に使用したことはありません)。

もうひとつの大きな問題は紹介画面が静止画だということです。シーン選択は70秒の部分を
自動的に切り抜いているので、たまたま真っ暗なシーンが選ばれることがあります。
正しく選ばれた場合でも、PV等の動きのある動画の内容が伝わりません。
PV等もランクイン対象の日刊では、紹介画面の動画化は必須でした。
プログラミングでどのように動画化を実現するかは大きな課題でしたが、
視聴者から動画コメントで AviSynth というプログラムを
教えてもらい、それを採用することにしました。

by rankingloid

日刊の第1回目を公開してからもシステムの改良は続きました。当面の目標は
全自動で動画の生成から公開までを行うことです。自動アップロードが
一番のネックだと思っていましたが、これは案外簡単にできました。
wiresharkというソフトを使って、アップロード時に流れるパケットを解析し、
その通信内容を模倣するという手順でプログラミングを行いました(アップロードはただの
HTTP通信ですので、知識のある人がやればすぐにできるはずです。
私はネットワーク通信のプログラムもほとんど未経験でしたので、
わざわざパケット解析をしました)。

そして、第1回目から10日たった2月21日、ついに動画生成からアップロードまで、
全くキーボードに触れずに行うことに成功しました。全自動での動画生成の成功です。
これで不在時も日刊公開ができるようになりました。

その日は案外と早くやってきました。2月27日~3月3日まで、就○活動などで
自宅を離れる用事です。システムが完成してそれほどたっていないために、
安定性などに不安が残るため、全自動でのアップロードを本当に行うか迷いましたが、
最終的にはシステムを信用して、全自動、ノンチェックで公開することに決めました。
PCをつけっぱなしにして、タイマーでプログラムが動くように設定して外出しました。
当日は、自動生成プログラムが暴走してニコニコ動画に迷惑をかけないかどうか、
かなり心配していましたが、それは杞憂に終わりました。
そのかわり、バグのため、動画生成の部分で止まってしまったようです。

プログラムのメンテナンスはリモートデスクトップ(別のPCからデスクトップ画面を
直接操作する機能)で行えるようにあらかじめ仕込んでおきました。
外出先からのリモートデスクトップ接続も初の経験で、うまくいくかどうか不明でしたが、
これはなんとか成功し、プログラムの修正を遠くから行うことで、1日遅れで
日刊を公開することができました。

by rankingloid

前回まで日刊VOCALOIDランキングをどのように制作していたかを紹介しました。
前回紹介した3日間の作業の結果、なんとかランキングらしいものが完成したのですが、
それを試作品とはせずにいきなり本番(第1回)としてしまいました。
第1回が完成したのは25時でした。集計は18時でしたので、
7時間かかったことになります。

第1回目の時点で細かなところで手動操作の必要な部分がいくつかありましたので、
第2回目以降で少しずつ自動化を進めていきました。
第2回目以降の動画投稿時間を見ますと、約22時、21時、19時と
段々と早くなっており、少しずつ改善されているのが分かります。
一度ランキングを公開してしまうと休むことはできないので、
制作や自動化の作業は大変でした。システムが完全な状態になってから公開したほうが
よかったかもしれません。

日刊を作るまでは動画作成経験がありませんでした。色々な失敗があり、
今から思えばもっとうまくできたと思うところがたくさんあります。
第1回目を午前1時に公開して、午前7時くらいにどのくらい再生されているか
チェックしたのですが、なんと再生がたったの1しかなくて、かなりあせりました。
当時は1コメ(最初に自分でコメントを入れる)をしないと新着動画として
表示されないことを知らず、また、タグを自分でつけなかったので
検索に引っかからなかったからです。
このままでは誰にも見てもらえないと不安になりましたが、
その日の夕方にもう一度見てみると500再生ほどされていたので少し安心しました。
1週間後には2,000再生ほどになってました。
しかし、週刊VOCALOIDランキングが5~6万再生、2つある月刊は両方とも当時は
1万再生程度ありましたので、日刊も1万再生くらいいくと考えていたのですが、
現実は2,000~3,000再生程度(当時)だったのは見込み違いでした。

by rankingloid

Page 1 of 3123