暇さえあればニコニコ動画。 今日はそんなニコニコ動画をPlaggerを使ってもっと楽しむ方法( = ニコプラ)を教えちゃいます。 Plaggerって何?という人はこちらをご覧ください→Plaggerとは? (Yusukebe::Tech)。
本日紹介するのは、ニコRSSというサイトが配信しているニコニコ動画のRSSや、ニコニコ動画にひっそりと実装されているマイリストのRSSをPlaggerで読み込んで、その動画を一括でダウンロードするというレシピです。
ニコRSSさんは「本日のランキング動画」や「タグ」「検索結果」の動画へのRSSフィードを提供してくれているとても便利なサービスです。例えば「本日のマイリスト登録ランキングのRSS」はこちらで取得できます→ http://zio3.net/nicoRss/Handler.ashx このように、RSSのエントリーのリンク先がニコニコ動画の動画ページ、つまり 「http://www.nicovideo.jp/watch/sm000000」という形式になっている場合に、 その動画のFLV(Flashビデオ形式)ファイルとXML形式のコメントファイルをダウンロードしてくれるPlaggerのPluginを作りました。 それがこちらです→Plagger::Plugin::Filter::FetchNicoVideo / ver0.01 (Yusukebe::Tech)。 これをPerlの@INCディレクトリなどに適切に配置するかPlaggerのconfigファイルで指定するPluginディレクトリなどにぶち込めば最初の準備は完了です。 早速config.yamlに以下を書いて、plagger -c config.yaml と実行すると、 「本日のマイリスト登録ランキング」100件の動画をダウンロードしはじめます。 いきなり100件もダウンロードしたくねぇえーーという人は途中でCtr-Cとか押して中断してください。 というかほとんどの人はそうした方がいいです^^;
plugins: - module: Subscription::Config config: feed: - url: http://zio3.net/nicoRss/Handler.ashx - module: Filter::FetchNicoVideo config: mail: your@mailaddress password: yourpassword dir: ./tmp/ filename_encode: shift-jis #OSによって変えてください download_comment: 1 #コメントをダウンロードしたいときに1としてください
端末から plagger -c config.yaml コマンドを実行してダウンロードしている様子
ダウンロードされたFLVとXML、更新日時でソートするとダウンロードされた順に並べられる
一応これだけでもダウンロードできることはできるのですが、少々問題があります。 まず、ニコRSSのランキングだと100件と件数が多いので、それを制御したいということ。 そして、このままだと重複して同じ動画をダウンロードする場合あって、それではニコニコ動画サーバーに余計な負荷をかけてしまいます。 そこで、Plaggerの機能であるRuleを使います。件数の制御には RecentNを、 重複の制御にはDedupedを使います。 この場合のDedupedのengineにはmanabouさんのDB_File_URLを使った方がよいでしょう(通常のDedupedではpermalinkとdateをあわせたキーで重複をチェックしているが、ニコRSSの場合、permalinkだけの重複チェックの方がいいから)。 それらを組み合わせたconfig.yamlはこんな感じになります。 (追記: Dedupedに関してはotsuneさんからコメントいただきました。このハックの方がいいかもですね。)
plugins: - module: Subscription::Config config: feed: - url: http://zio3.net/nicoRss/Handler.ashx - module: Filter::FetchNicoVideo rule: - module: RecentN count: 20 - module: Deduped engine: DB_File_URL path: ./deduped.db config: mail: your@mailaddress password: yourpassword dir: ./tmp/ filename_encode: shift-jis download_comment: 1
ダウンロードしたFLVをファイルを視聴するにはWindows限定ですがNicoPlayerがオススメです。 FLVファイルを直接開くことができて、さらに、同名のコメントXMLファイルがあればコメントもニコニコ動画のサイトで見るのと同じようスクロールしたりして表示してくれちゃいます。
さて、次は冒頭で述べたニコニコ動画にこっそりと実装されているマイリストのRSSを読んで、 そのマイリストの動画を一気にダウンロードしてみましょう。 とはいえ自分でマイリストを作っている人はそれで試してみるのもいいのですが、 作ってない人いたりして(自分もそうでした)、 欲を言えば、他の人が作ったマイリストがどんなのあるか知りたいところ。 というわけで、ニコニコ動画のマイリストの全てとはいきませんが、ある程度一部をキーワードで検索できるページをGoogle Coopという便利なツールを使ってさくっと作ってみました。 こちらです→ニコニコ動画 マイリスト検索
では、このマイリスト検索で「全てのマイリストの検索結果」を表示するとトップに表示される 「マイリスト びゃあ゛ぁ゛゛うまひぃ゛ぃぃぃ゛ぃ゛い逆から読んだらい゛ぃ゛ぃぃぃぃ゛ぃひまう゛゛ぁ゛あゃび」 をPlaggerで読み込ませ、このマイリストに登録されている動画を全てダウンロードしてみましょう。 config.yamlの例はこんな感じです。
plugins: - module: Subscription::Config config: feed: - url: http://www.nicovideo.jp/mylist/174381/1698397 #↑URLはRSSのURLじゃなくてもいい - module: Filter::FetchNicoVideo config: mail: your@mailaddress password: yourpassword dir: ./tmp/ filename_encode: shift-jis download_comment: 1
最後に、SoftwareDesign 2006年10月号のPlagger特集でのmizzyさんの記事「PlaggerでYouTube Casting」を参考に、ダウンロードしたニコニコ動画の動画ファイルをiTunesで閲覧できるMPEG4フォーマットに変換してVodcastingするという超絶ワザを紹介します。 といってもまだちゃんと試したわけではないので動作の保障はしかねます^^; config.yamlはこれでうまくいくんじゃないかなー
plugins: - module: Subscription::Config config: feed: - url: http://zio3.net/nicoRss/Handler.ashx - module: Filter::FetchNicoVideo rule: - module: RecentN count: 20 - module: Deduped engine: DB_File_URL path: ./deduped.db config: mail: your@mailaddress password: yourpassword dir: /home/yusuke/nicovideo - module: Filter::FFmpeg config: command: /usr/local/bin/ffmpeg device: ipod dir: /home/yusuke/nicovideo - module: Filter::RewriteEnclosureURL config: rewrite: - local: /home/yusuke/nicovideo url: http://hogehoge.fuga/nicovideo - module: Publish::Feed config: dir: /home/yusuke/nicovideo filename: %t.rss format: RSS
一応mpeg4に変換してiTunesにぶちこむところはできた
変換のオプションを変えればPSPフォーマットの映像も作ることができるので、 PSPやiPodなどにニコニコ動画を入れて、みんなで動画を見て実際にその場で会った人の間で「ニコニコ」するのも楽しいかもしれませんね。
というわけで、ながながと自分が作ったモジュールの宣伝をしてきたわけですが、 これを機にPlaggerに触れてみるのもいいかなと思います。 あとはFilter::FetchNicoVideoの詳しい使い方についてはPODを参照してください。 最後にPlaggerを使うにあたって参考になる書籍を紹介しておきます。
- 雑誌 / 技術評論社 (2006/09/16)
- Amazon 売り上げランキング:
- 小飼 弾 宮川 達彦 伊藤 直也 川合 孝典 水野 貴明
- 大型本 / インプレスコミュニケーションズ (2006/08/24)
- Amazon 売り上げランキング: 46246
- Amazon おすすめ度の平均:
- 技術書・解説書というよりはマイルストーン
- 日経ソフトウエア
- 大型本 / 日経BP社 (2007/04)
- Amazon 売り上げランキング: 21745