Go言語で記述されていて、ラズパイでも動作可能という。
年単位で絶賛放置中のラズパイに
「もう一度、日の目を見せてあげよう!」
プロジェクトの始動です。
・OSインストール編
・改造編1(無劣化録音対応)
・改造編2(Podcastアイコン対応)
今回は「Raspbian Stretch Lite」で radicast 専用機として構築します。
複数番組同時録音をしないのであれば無印ラズパイで十分。
※俺環構築メモです。母艦はUbuntu。ご注意を。
radicastのインストール
操作ユーザーでログイン
母艦$ ssh radicast@192.168.0.81
必須ソフトのインストール
$ sudo apt-get install libav-tools swftools rtmpdump git
Go言語のインストール(Goは最新版をサイトから落として入れる)
https://golang.org/dl/
公式サイトから自分の環境にあった最新版パッケージをwgetで取得
$ wget https://dl.google.com/go/go1.9.3.linux-armv6l.tar.gz
解凍して配置
$ sudo tar -C /usr/local -xzf go1.9.3.linux-armv6l.tar.gz
環境変数の設定
$ sudo vi /etc/profile
変更
export PATH ↓↓ export PATH=$PATH:/usr/local/go/bin
反映のために再起動
$ sudo reboot
radicast のセットアップ
radicastの取得
$ go get github.com/soh335/radicast
動作確認
$ ./go/bin/radicast -setup
地元ラジオ局がつらつらと表示されればOK
radicastのインストール
$ sudo cp ./go/bin/radicast /usr/local/bin/
設定ファイルの構築
$ radicast -setup > radicast.json
$ sudo cp ./radicast.json /usr/local/etc
$ sudo chown radicast.radicast /usr/local/etc/radicast.json
録音番組編集
$ vi /usr/local/etc/radicast.json
radicastシステム構築
録音ファイル格納パス
可能な限りSDカードへの書き込みを減らすべく
録音ファイルはUSBメディアへ書き込むようにする
ベースディレクトリ
$ sudo mkdir /var/radicast
メディアのマウント定義
$ sudo vi /etc/fstab
追加再起動してマウント状態を確認
/dev/sda1 /var/radicast ext4 defaults 0 0
ディレクトリオーナーの変更
$ sudo chown radicast.radicast /var/radicast
過去ファイルの自動廃棄設定
$ sudo crontab -e
追加
0 5 * * * find /var/radicast/ -mtime +22 -delete
※毎日05時に22日経過したファイルを削除
radicastの自動起動設定
サービス定義ファイル
$ sudo vi /etc/systemd/system/radicast.service
systemctlに読み込ませる[Unit] Description=radicast [recording radiko and serving rss for podcast] After=network.target [Service] Type=simple Restart=always User=radicast ExecStart=/usr/local/bin/radicast -config /usr/local/etc/radicast.json -host 192.168.0.81 -output /var/radicast -bitrate 96k -converter avconv ExecStop=/bin/kill -WINCH ${MAINPID} [Install] WantedBy=multi-user.target
※ExecStart行は1行で記述すること
$ sudo systemctl daemon-reload
サービスの自動起動設定
$ sudo systemctl enable radicast.service
完成
再起動してエラーが発生していなければOK