1か月くらい前にPC用の地デジチューナGV-MVP/XZ2を買ったのですが、これの予約録画で『指定時間に休止状態からの復帰→録画→休止状態』という機能があるのを知りました。今まで休止状態からは自動復帰はできないと思い込んでいたのですが、調べてみるとタスクスケジューラを使うか、WaitableTimer(Win32 API)を使えば自動復帰できるようでした。今回、わざわざダウンローダを作ろうと思ったのは、上の機能を試したかったからだったりします。最初はタスクスケジューラ版でサンプルを作っていたのですが、Windowsのバージョンにより実装方法を考える必要があったりして、結構面倒だったため、WaitableTimerの方で実装することにしました。WaitableTimerは、呼び出し元のプログラムが起動している必要があるのですが、今回作るダウンローダでは、特に問題ないため、こちらを使うことにしました。Win32 APIですが、処理がシンプルなのでタスクスケジューラを使うより楽です。とりあえず、サンプルができたため、ダウンローダの方に組み込んでいこうと思います。GV-MVP/XZ2についてですが、録画・視聴ソフトのmAgicTVがかなり出来が悪いためあまりお勧めできません。[追記:2012/03/31] 中断しました。
[WaitableTimerのテスト]
[参考] pinvoke.net: CreateWaitableTimer (kernel32)pinvoke.net: SetWaitableTimer (kernel32)MSDN: CreateWaitableTimer MSDN: SetWaitableTimer
今は他の方が公開しているダウンローダを2種類使っているのですが、若干使いづらかったり、別に欲しい機能があるため、自前で作ることにしました。以前作ったダウンローダのサンプルをベースにして、3時間くらいかかってニコ動へのログイン+ダウンロードはできるようになりました。
[ニコ動のダウンローダ]
この間まで作っていたニコ生を FLV で録画するツールは、開発を中止しました。放送が途中切断された場合のコメントとの同期や、動画を再生した場合のファイルのダウンロード等も必要になり、結構面倒になりそうなので今回は中止します。ただ、ソースを捨てるのも嫌だったので、radiko.jp 用の録音ツール(RadikoDump)に変更しました。
[RadikoDump 予約表]
[RadikoDump 番組表]
現状は、録音に RTMP Dump を使っているため、FLV形式で保存されます。FFmpeg を使えば、MP3等でも録音できるのですが、公式サイトでバイナリを配布していないため、独自にコンパイルするか、非公式のバイナリを使うしかないのが難点です。できれば、私自身でコンパイル&再配布したいのですが、まだライセンス等がよく分かっていないため、当面は、RTMP Dump のみ対応しようと思います。ツールは、もう何日かテストして、問題なさそうだったら公開するつもりです。(追記: 2010/05/18 → 中止しました。)
前回の続きですが、コメントサーバからコメントを取得し、XML形式で保存するようにしました。今後、既存のニコ動プレイヤー等で再生できるようにしたいのですが、保存形式が分からなかったりするので、とりあえず、AIRで自前のFLVプレイヤーを作ってみました。
[NicoFlvPlayer]
現状では、FLVの再生とコメントの表示(XMLをリストに表示する)だけしかできません。AIRは、ほとんど使ったことがないので、こちらについては、今後、気が向いたら作ろうと思います。
前回の続きですが、プログラムから RTMP Dump を呼び出すようにしました。処理としては、ニコ生へのログイン→RTMPデータの取得→コマンド実行 をしているだけなので、プログラムとしては簡単なものです。
[Nico Dump]
現時点では、手動録画とコマンドラインからの引数(放送ID)指定の録画に対応したのですが、現時点で以下の問題があります。・動画リク等で動画を再生する放送の場合、正常に録画できない。・公式放送が録画できない。・同時に3放送以上録画できてしまう。・コメントが取得できない。・ブラウザとCookieが共有できないため、ブラウザ側がログアウトしてしまう。3つ目は、問題ではありませんが、ブラウザを使った場合、2放送しか見られないため、ツールでも最大2放送程度に制限するつもりです。プログラム的には、無制限にしてしまうのが楽なのですが、サーバ負荷を考えた場合、無制限はさすがにまずいかなと思います。まだ、仮実装が終わった程度で、ほとんどテストしていないため、公開はまだ先になってしまうと思います。それと、Live Seeker についてですが、ニコ生のカテゴリに「遊園地」が増えたため、 対応版を近々公開するつもりです。