FreeBSDでのラジコ利用状況と応用について
FreeBSD でラジコを自動で録音するプログラムを設定して利用しています。約2週間経過しました。
Windows用 radika も継続して予約録音中です。
現時点の気づきを書き留めておきたいと思います。
まず、良い点
- 録音開始に(今のところ)失敗することがない。
- リモート端末から録音済みファイルを利用できる。
そして、悪い点
- 時々、複数の録音ファイルに分割録音されることがある。正常に録音できる確率は90%程度。
録音切断発生タイミングはラジコサーバーや経路の混雑によるものと思います。rtmpdump での録音が分割となってしまうポイントと radika で録音しているファイルを比較すると、radika録音ファイルの方も、やはりその時点で音声が無音になっています。その後復活して録音を継続できるか、ファイルを分割して別ファイルにしてしまうかの違いのようですから、スクリプトのコマンドオプションに手を加えればなんとかなるかもしれません。(今後の課題) - iTunesで再生すると、タイムインデックスが狂ってしまう。2時間番組が約4時間番組として認識され、例えば、開始から10分再生した時点でポーズし、再度再生開始すると5分の位置から再生が開始される。
RealPlayer で再生するとタイムインデックス問題は発生しません。ファイル形式が m4a のためMediaPlayerは未確認。iPodでの再生は未確認。
課題はあるものの、Windows XPで録音する場合と比べて別のメリットもあります。
ラジコ録音ファイルを iTunes で利用する
Webサーバー上で rtmpdump 録音したファイルは、Webサーバー上に保存されるので、ファイルにリンクするための RSSとXMLを準備すれば、そのまま iTunes で Podcast として利用する事が可能になるはずです。
Podcast の配信元ページの構造を知るため、ホームページビルダーの Podcast 作成機能を使い、手動でラジオ録音ファイルをPodcastとして利用するための xml ファイルを作成してみました。たとえばTBSの昼間のコメディー番組「たまむすび」をPodcast化する xml ファイルは、次のように書けば使えるようです。
<?xml version="1.0" encoding="UTF-8"?> <rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0"> <channel> <title>たまむすび</title> <link>http://www.lifewithunix.jp/podcasts/tamamusubi.xml</link> <description><![CDATA[コメディアンアナウンサー赤江珠緒と愉快な仲間たちが平日昼間におおくりするTBSラジオ番組、「たまむすび」]]></description> <copyright>TBS Radiko</copyright> <itunes:summary><![CDATA[コメディアンアナウンサー赤江珠緒と愉快な仲間たちが平日昼間におおくりするTBSラジオ番組、「たまむすび」]]></itunes:summary> <itunes:author>赤江珠緒</itunes:author> <itunes:subtitle>コメディー番組 たまむすび</itunes:subtitle> <itunes:category text="Comedy"></itunes:category> <item> <title>たまむすび 2013/05/07</title> <itunes:author>赤江珠緒</itunes:author> <itunes:subtitle>たまむすび</itunes:subtitle> <itunes:summary><![CDATA[たまむすび 2013/05/07]]></itunes:summary> <pubDate>2013-05-07T08:38:57+00:00</pubDate> <enclosure url="http://www.lifewithunix.jp/podcasts/sound/aaa.html" length="72770265" type=""></enclosure> <itunes:duration>2:29:00</itunes:duration> </item> <item> <title>たまむすび 2013/05/07</title> <itunes:author>赤江珠緒</itunes:author> <itunes:subtitle>たまむすび</itunes:subtitle> <itunes:summary><![CDATA[たまむすび 2013/05/07]]></itunes:summary> <pubDate>2013-05-08T02:38:57+00:00</pubDate> <enclosure url="http://www.lifewithunix.jp/podcasts/sound/bbb.html" length="72770265" type=""></enclosure> <itunes:duration>02:29:00</itunes:duration> <itunes:block>yes</itunes:block> </item> </channel> </rss>
青文字の部分がヘッダーとフッター。赤色系文字の部分が音声ファイル一つに付き1セクションが必要になります。
ヘッダーとフッター部分は、録音ファイルに関わらず固定で、<item></item> で囲まれる部分がファイル毎に生成するパートになります。<item>に囲まれた部分の中身は、単語、日付、ファイルサイズ、録音時間、録音時刻くらであるため、これらの情報を録音ファイルから抽出するスクリプトを書いてテンプレートに流し込み、固定のヘッダーとフッターをマージしてファイルにすれば xml ファイルを作成できそうです。ラジオ放送をそのまま誰もがダウンロード出来るようには出来ないため<item></item> セクションの間に、<itunes:block>yes</itunes:block> を入れておきます。これで非公開になるはず。
xmlファイル作成後に、上記のようなRSSマークを置いて xml ファイルへリンクを張れば自分専用のPodcastができあがり。(のはず。)
ずいぶんと久しぶりに、シェルスクリプトを使って、ファイルから情報を取り出し xml ファイルを生成するスクリプトを作ってみました。構文や正規表現の書き方を忘れていて大変でしたが、なんとか稼働させるところまでこぎ着け、テストを開始したところです。
現在わかっていること
- iTunes のPodcastとして読み込むと番組録音時間が約倍の長さとして認識されてしまう。
- そのため、一度ポーズすると、ポーズを解除したときに半分地点まで巻き戻されてしまうため使い物にならない。(iPodのプレーヤーではどうなるか未確認。)
- iTunes は xml ファイルの情報ではなく、m4a ファイルから直接情報を取り出して表示しているようで、再生時間とファイル作成日を xml ファイルに書き込んでも、利用されない。
- ffmpeg コマンドでファイルを生成する時点でファイル内にメタ情報を入れる必要がるようです。一つはファイル作成日で、ffmpeg コマンドラインに、「-timestamp now」を入れないと 1970/1/1 作成のファイルとして扱われてしまう。
もうちょっと試行錯誤が必要なようです。
このスクリプトがうまく使えるようなら、過去にUSBラジオで録音した音源なんかもPodcast化していつでも聞けるようにしたいと思っています。