福岡のIT系の会社で働くエンジニアのブログです。

技術雑記

【radiko】Raspberry Pi と radigo で radiko録音サーバの構築【タイムフリーにも対応】

Twitter bookmark Facebook LINE Pocket Feedly RSS

radigoについて

radigoとは、 https://github.com/yyoshiki41/radigo にて公開されているradiko録音・再生用のCUI、コマンドラインのツールになります。

READMEにはdocker環境で動作するように記載されていますが、Rapberry Pi( Rasbian ) で試したところ、どうもうまく動作しませんでした。

そこで、ソースコードから導入してみましたので、その記録です。

 

goのインストール

Rapberry Pi には、試したところ、README 通りでもインストールできないようでした。
調べてみると、どうやらRaspberry PiのCPUアーキテクチャがARMな為のようです。

また、GitHubのreleasesにはradigoのARM用のバイナリは置いていません。
そこで、Goをインストールしてgo getでradigoをインストールします。

ちなみにRapberry Piのアーキテクチャはarmv7lでした。

uname -m armv7l

apt-get で goをインストールします。

sudo apt-get install golang

その後、radigoをインストールします。

go get github.com/yyoshiki41/radigo/cmd/radigo/...

インストールしたradigo がぱっと使えるようにパスを通しておきます。

vim ~/.bashrc

export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin

source ~/.bashrc

動作確認してみます

radigo area

 Area ID: JP40
+----------------------+----------------+
|         NAME         |   STATION ID   |
+----------------------+----------------+
| RKBラジオ            | RKB            |
| KBCラジオ            | KBC            |
| ラジオNIKKEI第1      | RN1            |
| ラジオNIKKEI第2      | RN2            |
| LOVE FM              | LOVEFM         |
| CROSS FM             | CROSSFM        |
| FM FUKUOKA           | FMFUKUOKA      |
| 放送大学             | HOUSOU-DAIGAKU |
| NHKラジオ第1(福岡) | JOLK           |
| NHK-FM(東京)       | JOAK-FM        |
+----------------------+----------------+

まずはOK!

依存ツールのインストール

録音するにはffmpegとrtmpdumpが必要のようですのでインストールします。

sudo apt-get install ffmpeg rtmpdump

結構な数のライブラリとあわせてインストールされます。

実際に録音してみる

試しに録音してみます。

radigo rec-live -id=FMFUKUOKA -t=1

Now downloading.. 
+------------+---------------+
| STATION ID | DURATION(SEC) |
+------------+---------------+
| FMFUKUOKA  |             1 |
+------------+---------------+
- Completed!
/home/pi/output/20191122005155-FMFUKUOKA.aac

Macで再生してみたところ、問題ないようですね!

CRONで毎週自動録音を

以下のようなシェルスクリプトを用意します。

vim save_radigo.sh


#!/usr/bin/env bash

cd $HOME

# 現在日付より前の曜日をそれぞれ指定
export ONAIR_DATE_MON=`date --date 'last monday' +'%Y%m%d'`
export ONAIR_DATE_TUE=`date --date 'last tuesday' +'%Y%m%d'`
export ONAIR_DATE_WED=`date --date 'last wednesday' +'%Y%m%d'`
export ONAIR_DATE_THU=`date --date 'last thursday' +'%Y%m%d'`
export ONAIR_DATE_FRI=`date --date 'last friday' +'%Y%m%d'`
export ONAIR_DATE_SAT=`date --date 'last saturday' +'%Y%m%d'`
export ONAIR_DATE_SUN=`date --date 'last sunday' +'%Y%m%d'`

# あ、安部礼司
$GOPATH/radigo rec -id=FMFUKUOKA -s=${ONAIR_DATE_SUN}170000

あとはcronで毎週実行するようにすればOKです。

CRON動作のログが初期状態では出力されないようなので rsyslog.conf内のcron記載がコメントアウトされていたら、コメントアウトを外します。

sudo vim /etc/rsyslog.conf

#cron.*				/var/log/cron.log

   ↓

cron.*				/var/log/cron.log

rsyslogを再起動してログ出力を有効化します。

sudo /etc/init.d/rsyslog restart

cronログレベルの設定

sudo vim /etc/default/cron

EXTRA_OPT="-L 15"

設定変更後に、デーモンの再起動を行います。

sudo /etc/init.d/cron restart

cronの動作設定をします。
書式は 分、時、日、月、曜日 コマンド

crontab -e

#m h dom mon dow command
0 0 * * 2 /home/pi/bin/save_radigo.sh

シェルスクリプトに実行権限を与えておくのを忘れずに!

chmod 755 /home/pi/bin/save_radigo.sh

動作結果は

sudo less /var/log/cron.log

で確認できます。

いわゆるお約束。

個人的な視聴の範囲を超える利用はご遠慮くださいね!

Twitter bookmark Facebook LINE Pocket Feedly RSS