これまではRadikoを使ってNHKのラジオ講座をタイマー録音していたのですが、2019年4月より、ラジオ第二(JOAB)のRadioの配信が終了しまったので、らじるらじる単体でタイマー録音するようにしてみました。
タイマー録音はライズパイを使います。録音が終わったら自動的にGoogleドライブに転送して、出先からスマホを使っていつでもどこでも聞けるようにします。
機材やパッケージのインストールはこちらを参考にしてください。
らじるらじる録音スクリプト
rec_radio.shを参考にm3u8urlで録音するしたスクリプトです。アルバム名などのメタデータも追加しています。録音完了後にGoogleドライブに転送して完了です。
rec_nhk.sh
#!/bin/bash
LANG=ja_JP.utf8
DATE=`date '+%Y-%m-%d-%H_%M'`
OUTDIR="."
if [ $# -le 1 ]; then
echo "usage : $0 channel(NHK-FM | NHK-R1 | NHK-R2) duration(minuites) [outputdir] [prefix]"
exit 1
fi
if [ $# -ge 1 ]; then
CH=$1
M3U8URL=""
if [ ${CH} = "NHK-FM" ]; then
# TOKYO NHK-FM
M3U8URL="https://nhkradioakfm-i.akamaihd.net/hls/live/512290/1-fm/1-fm-01.m3u8"
fi
if [ ${CH} = "NHK-R1" ]; then
# TOKYO R1
M3U8URL="https://nhkradioakr1-i.akamaihd.net/hls/live/511633/1-r1/1-r1-01.m3u8"
fi
if [ ${CH} = "NHK-R2" ]; then
# TOKYO R2
M3U8URL="https://nhkradioakr2-i.akamaihd.net/hls/live/511929/1-r2/1-r2-01.m3u8"
fi
if [ -z ${M3U8URL} ]; then
echo invalid channel name.
exit 1
fi
fi
if [ $# -ge 2 ]; then
DURATION=`expr $2 \* 60`
fi
if [ $# -ge 3 ]; then
OUTDIR=$3
fi
PREFIX=${CH}
if [ $# -ge 4 ]; then
PREFIX=$4
fi
echo "channel: "${CH}
echo "duration: "${DURATION}
echo "outdir: "${OUTDIR}
echo "prefix: "${PREFIX}
ffmpeg -i ${M3U8URL} -to ${DURATION} -metadata genre="Radio" -metadata artist="${CH}" -metadata album="${PREFIX}" -c copy "${OUTDIR}/${PREFIX}_${DATE}.m4a"
if [ $? = 0 ]; then
/home/pi/gdrive upload "${OUTDIR}/${PREFIX}_${DATE}.m4a"
fi
タイマー録音
録音スクリプトをcronに設定します。配信に遅延があるので、sleepで開始タイミングを調整しています。
crontab
30 8 * * 1-5 sleep 30; /home/pi/rec_nhk.sh NHK-R2 10 radio TimeTrial
55 12 * * 1-5 sleep 30; /home/pi/rec_nhk.sh NHK-R2 5 radio e-news
0 23 * * 2 sleep 30; /home/pi/rec_nhk.sh NHK-FM 50 radio MISIA-hoshizora