前から、id:hakobe932さんがPlaggerを使ってニコニコ動画をPodcastにしているのを*1うらやましがっていたのですが、うちのサーバーにPlaggerが入らなかったので、Rubyで一から作りました。
最近Gitが流行ってるので、GitHubに置きました。
特徴
- Plaggerが要らないので導入が簡単
- ライブラリを継承してそこに設定を書くので、Plaggerのようなややこしい設定ファイルが不要
- ライブラリを継承してオブジェクトを作れば勝手に動くので、誰でも簡単に使える
使い方
Plaggerでできることなので、わざわざこれを使う人は居ないだろうと思ったので、あまり書いていませんが、リポジトリのREADMEに書きました。
実際はタイトルを整形したりジャンルをつけたりするのですが、あるマイリストを取ってきてPodcastにするだけなら、以下のようなスクリプトを書くだけで動きます。
#! /usr/bin/env ruby require 'lib/crawler.rb' class MyCrawler < Crawler def collect_input_data @account_setting_file = 'account.yaml' @input_feed_url = 'http://www.nicovideo.jp/mylist/hogehogeho?rss=2.0' @output_feed_path = '~/public_html/podcast/hoge.xml' @output_file_path = '~/public_html/podcast/enclosure' @output_file_url = 'http://hogehoge.com/~user/podcast/enclosure' @input_file_type = 'flv' @output_file_type = 'mp3' @ffmpeg_option = '-acodec copy' end end MyCrawler.new
やってること
- マイリストのフィードを読んで動画のIDを抜き出す
- ローカルにファイルがなければflvをダウンロード、変換する
- 出力用のフィードを作って、マイリストから要素を移植する
- そのときに、2.で落としたenclosureをくっつける
- 外から見える場所に置いて完成
簡単ですね。
今後の予定
mp3にするのはできたが、動画を生成するのはffmpegのオプションが分からなくてまだ試せていないので、試す- アートワークをつけたい
- ラジオの場合、アップロードする人によってタイトルの付け方が違う問題をどう解決するか
- ソースコードをまともにする
- 動画1つを1つのオブジェクトに
*1:[http://d.hatena.ne.jp/hakobe932/20070923/1190594172:title]