ニコニコ動画の動画ファイルとコメントをダウンロードするRubyスクリプト for Operaとか

実行ファイル形式になっているので、Rubyがインストールされていなくても使うことができる。

nicovideo_download.zip

[Document Popup Menu]
...
Item, "動画とコメントをダウンロード" = Execute program, "C:\nicovideo_download.exe", "%u C:\download -v -c"
Item, "動画をダウンロード"           = Execute program, "C:\nicovideo_download.exe", "%u C:\download -v"
Item, "コメントをダウンロード"       = Execute program, "C:\nicovideo_download.exe", "%u C:\download -c"

こんな感じで使用しているmenu用設定ファイルに追加すれば、右クリックから開いているページの動画とコメントをダウンロード。動画タイトルと動画IDの名前で保存される。12月9日時点の新コメントサーバー仕様及びマイメモリーにも対応。

この手のツールは探せば他にも大量に見つかるが、「プレイヤー等が絡まないシンプルな構成」「実行ファイル」「修正が容易なもの」。ということで、Rubyの勉強がてら、余所様のコードをパク・・・もとい、参考にして作った。

なお、コマンドプロンプトで色々渡してるだけなので、Opera以外からでも当然使える。

使い方の詳細等はソースを参照してほしい。

nicovideo_download.rb

参考

余談1 どうやって動画タイトルを取得するか

Operaのアクションからはウインドウタイトルはどうやっても取得できない。そこで、常套手段であるAutoHotKey経由でスクリプトを動かそうとしたが、なぜか動かない。

Run, C:\nicovideo_downoad.rb http://www.nicovideo.jp/watch/sm****** C:\download -v -c, C:\, Min

通常ならこれで動くはずだが、なぜかファイルが存在しません、との警告。

どうやらAutoHotKeyはexeやbat以外のものにコマンドラインオプションを指定しても、コマンドラインオプションとして認識してくれず、全て連結したファイル名を探そうとするようだ。

仕方ないので、実行ファイルと同じディレクトリにbatを作った。「Opera⇒ahk⇒bat⇒rb」という過程を得てようやくタイトル取得に成功。

余談2 ぐぐってみる

RubyからWin32API使えるんだから、ウインドウ一覧ぐらい取得できるのでは?

ruby 覚え書き – 現在開いてるウィンドウを調べる

あった。無事にアクティブなOperaウインドウを取得できた。

余談3 その発想は無かったわ

ニコニコ動画の仕様上、一度動画ページにアクセスしてるんだから、その時ついでにHTMLソース取得しとけば良くね?

戦い終わって ~神々の黄昏~

Operaが絡むと毎回ウインドウタイトルで泣かされる。今回は最終的に関係無くなったからいいが、やっぱりタイトルを取得できるようにするべきだ。

あと、せっかくなんで、ウインドウクラスからアクティブウインドウタイトルを取得するスクリプトを置いとく。Win32APIを使ってるんで、ActiveRubyとかじゃないと無理?

get_activewin_title.rb