Clojureでニコニコ動画のマイリストを監視するプログラムを作りました
あんなに大好きだったボカロ曲も、春の気配とともにふと気づくと1年間もライブラリの中の曲が変わってないなんてことが、歳取ってくるとあるわけ。
毎日新しい曲を探して聞いて、気に入ったら音楽ファイルを落としてきて、音楽を管理しているフォルダに整理するっていうのはたいへんですね。
こういう作業すら楽しんでやっていた高校時代の自分が若く思います。
こんなことは自動化しましょう。
というわけで作りました。
Clojureで書きました。良い言語です、びっくりします。1週間で出来ました。
設定ファイルにマイリストIDを書いておくと、動画をmp3とかm4aとかに変換して指定したフォルダにアーティスト別で保存してくれます。
組み込みデータベース(SQLite)に前回までにダウンロードしてきた動画のIDを記録しておいて、プログラム起動時点でのマイリストに登録されている動画たちとの差分を取って、未だダウンロードしてない動画だけニコニコAPIを叩いてダウンロードしてきます。
動画をダウンロードしてきたら、動画ファイルが内包している音楽ファイルをffmpegやswftoolsを使って抽出します。
cronで回すと定期的にマイリストを見に行って自動で音楽収集してくれます。
個人的には、このプログラムはsubsonicと使っています。
サーバーで勝手に音楽ファイルを集めてくれて、更にブラウザ上で簡単にストリーミング再生出来る。
はかどる・・・!
我ながら結構便利だと思います。
バージョン2.0はWebインターフェースを用意して、sshでサーバーにログインして設定ファイルにごりごりする、なんてことをせずにマイリストIDを登録できるようにしたいと思います。