はじめに
以前にラズパイ3bにvolumioを作成したのですが、あんまり活躍する機会がないので、ラジコを録音するような仕組みにしようとチャレンジしました。
しかし、以前、ラジコを組んだものは、しばらくすると使えなくなりました。
その後、色々なDockerを試してみましたが、全く上手く行きません。
結論として分かったのは、ラジコを録音しようとすると運営側とのイタチごっこなようで。。
果てしない追いかけっことなるようです。
「あぁ、それじゃ、だめだなぁ。」となった訳ですが、
なにか、音楽番組が録音できればいいのだけど?と思って、調べると、
ネットラジオがあるので、それを定期的に録音させてもらおうと思ったわけです。
しかも、ログは明瞭に、スクリプトは保守しやすく、録音ファイルは整理されていてほしい。
そんな思いから始まった、Raspberry Piによるネットワークラジオ録音システムの構築の巻です。
良かったら、読んでみてください。
構成概要
ラズパイ3Bを有効活用したいので、システム(アプリ)だけラズパイ3Bで録音とスケジュールファイルはSynologyのNASで管理します。
(途中からラズパイ5に変更しました。ラズパイ3でvolumioと併用は厳しかったようです。)
- 録音対象:ネットラジオ(例:DanceMachine:https://www.radiojapan.org/ae/dance-machine)
- 録音方式:ffmpegによるストリーム録音
- スケジュール管理:NAS上のconfig.json
- 実行環境:Raspberry Pi 3(IP: 192.168.0.74)
- 保存先:Synology NAS(/volume1/radiko)をラズパイにマウント(/mnt/music/radiko)
ストリームURLの取得方法
対象サイト(例:https://www.radiojapan.org)でF12(chromeで言う所のデベロッパーツール) → ネットワークタブ → 「radio.aac」などを右クリック → URLをコピー。
例:https://ice1.streeemer.com:8030/radio.aac
ここまでが第一段階ですね。
第二段階は、n8nでスケジュール化、録音、通知となってます。
n8nだと、一気に通知までできてしまいますね。
便利だと思います。
今回、通知はSynologyChatにしてますが、どこに変更しても良いかと思います。
あらかじめ免責事項を書いておきますね。
あくまで、環境構築に関しては、自己責任でお願いします。
例を出してはおきますが、AIと会話しながら環境を構築するがおススメです。
私としての責任事項はn8nのワークフローに関してのみとなります。
スケジュールした時間で実行して、指定したWebラジオを録音して、Synologyの共有フォルダに保存する、そして終了通知をSynologyChatへ通知するという仕組みです。