RaspberryPiでラジオ録音サーバー作ってみた

2018年9月4日

RaspberryPi3

 ラジオ録音がしたかった。
 ラジオって聞いてみると結構楽しい。けれども、ラジオ放送に生活時間を合わせる気などおきないし、ラジオは倍速で聞きたいし、Podcastでいいじゃんと思っても聞きたい番組がない。だからやっぱり録音したい。Androidのアプリで録音してみたけど、アプリが知らないうちに停止してうまくいかないのです。

 RaspberryPi(以下、ラズパイ)で録音すれば、いいんじゃね?

 そう思ってラズパイでラジオサーバーを組んでみました。これが想像以上に快適!たくさんの先輩方のブログ等を参考にして作っただけではありますが、制作工程をまとめておきます。
 

やろうとしたこと

  1. radikoとかをラズパイで録音
  2. 録音したデータを家庭内でPodcast配信
  3. ウォークマンで聞く

 なぜPodcastなのか。ラジオの録音は最新話だけがウォークマンにあれば満足なのです。ウォークマンの容量も32GBと大きくないですし。Podcast配信が使えれば、最新話だけダウンロードするという管理が楽にできそうだからです。

ラズパイを初期設定する

 買ってきたラズパイにOS「Raspbian(ラズビアン)」をインストールします。

 上記の参考にした記事では「NOOBS LITE」をダウンロードしていますが、うまくいかなかったのでLITEじゃないほうをダウンロードしました。

 SDカードのフォーマットもWindows標準ではうまくできなかったので、「SDメモリカードフォーマッター」を使いました。

radikoを録音する

 radikoを録音するシェルスクリプトを書いてくれている人がいます。ありがとう。必要なパッケージをインストールして、スクリプトを拝借するだけで録音できちゃいました。すごい。

 

 上記スクリプトで使うradikoのチャンネル名はこの辺の情報で。

 さらに上記スクリプトは録音開始の通知にProwlを使っていますが、IFTTTでもできます。

 上記URLはLINEへの通知をしていますが、IFTTTのThatで好きなサービスを選んでもらえばなんでもできます。私は単純にNotificationを使っています。

NHKらじるらじるを録音する

 NHKラジオを録音するにはradikoとは別のスクリプトが必要になります。これもスクリプトを作ってくれている方がいるので拝借いたします。

 ラズパイの場合、ffmpegではなくavconvを使うので、106行をコメントし、107行のコメントをはずします。

サイマルラジオを録音する

 サイマルラジオはコミュニティ放送が聞けるサイトです。どーしても聞きたかったのは「FM SALUS(サルース)」の「TRAIN-TRAIN」なんです。これを聞くにはサイマルラジオを録音しなくてはいけません。

 話はそれますが、TRAIN-TRAINはずっと前から聞きたかったのです。TRAIN-TRAINのパーソナリティはアナウンサーの小林佳果さん。この方は、伊豆急下田駅のおもしろ駅長もやっています。私は結婚式の代わりに伊豆急のブライダルトレインを走らせたのですが、そのついでに無理やりメッセージとかももらっちゃったんですよ。あれから4年…ずっと聞かなくちゃな―と思いつつ、聞いたことなかったー!ごめんなさい。来週から聞きます。

 で、苦労したのがサイマルラジオの録音です。らじるらじる録音用のスクリプトのURLを変えるだけでできるという情報がありました。

 がっ。サルースのURLがわからない。URLの取得の仕方が書いてあるサイトも見つけたけど、このとおりにならない。

 仕方がないので苦肉の策、ある方が書いていたスクリプトからURLを推測しました。

 サルースは、多分「http://mtist.as.smartstream.ne.jp/30061/livestream/playlist.m3u8」。このURLを使ったところ、録音ができました。

Webサーバーを立てる

 Podcast配信をするためwebサーバーを立ち上げます。といっても、ラズパイにApacheをインストールするだけです。

$ sudo apt-get update
$ sudo apt-get install apache2

 これだけです。

 私の場合ですが、/var/www/html/podcast/mp3/というディレクトリをつくりました。さらにmp3の下に番組ごとにディレクトリを作り、録音したデータはそこに溜まるように設定しています。

Podcast用のXMLファイルを作る

 これも便利なスクリプトを作ってくれていた方がいたので、それで。

 録音用のスクリプトからxmlデータを制作するスクリプトを呼び出すようにしました。xmlデータは、/var/html/podcast/の下に保存されるようにしています。
 

Cronを設定する

 録音するスクリプトが指定時間に起動するように指定します。

$ crontab -e

これを入れて設定ファイルを書きます。書き方はそのファイルにざっくり書いてあるから大丈夫じゃないかな。

Podcastを読み込む

 録音が終わったら、ウォークマン側で取り込みます。私のウォークマンは古いので、いまだXアプリを使っています。
 XアプリでPodcast「http://ラズパイのIPアドレス/podcast/XMLファイル名」を登録します。これでピコピコって読み取ってくれますよ!音も結構キレイ!

 記念すべき最初の録音は水曜の21時30分から放送している「編集長 稲垣吾郎」でした。特に聞いたことがある番組ではないのですが、直近の番組のなかで面白そうだったので録音してみました。
 「録音を開始しました。」の通知も来た、ポッドキャストも正常に読み込めた。これは成功したぞーーー!!!と、心の中はガッツポーズ。こういうものは初回からうまく行くことなんてめったにないことですから。ひとりドヤ顔しながらウォークマンの再生ボタンをポチッとな。

 野球中継wwwww

 あー、ラジオの野球中継って延長するのね。野球中継を回避するプログラムとなると…ややこしそうだぞ。ってなことで、ワッホイワッホイ。