rec_radiko.shを使用して定期的に番組を録音する(MacをSleepしない場合)

rec_radiko.shでradikoの番組を毎週録音する場合は以下のスクリプトを作って実行する。

なおこれはMacをSleepしないで使用している場合に有効。

エディタでmyprogram.txtというファイルを作成し、録音する曜日、録音開始時間、チャンネル、録音時間(分)をカンマ“,”で区切って記載する。

記載例

Mon,0015,TBS,30
Tue,0330,QRR,60
Wed,0645,LFR,90
Thu,0900,FMJ,120
Fri,1220,FMT,150
Sat,1540,JORF,180
Sun,1800,NACK5,210

ファイルを準備したら以下のスクリプトを作成し実行パーミッションをつけて実行する。

#!/bin/sh

# initialize
#
LANG=C;export LANG
compath=`pwd`

# set radio program
#
filename="myprogram.txt"
IFS=$'\n'
PROG=(`cat ${filename}|sed -e 's/ //g'` )

while true
  do
    for i in ${PROG[@]}; do

      RECWEEK=`echo $i|cut -d, -f 1`
      RECTIME=`echo $i|cut -d, -f 2`

      if [ "$RECWEEK" = "`date|cut -d" " -f 1`" ] && [ "$RECTIME" = `date "+%H%M"` ]; then

        RECRCHN=`echo $i|cut -d, -f 3`
        RECTLEN=`echo $i|cut -d, -f 4`
        let RecSec=$RECTLEN*60
        $compath/rec_radiko.sh -o $compath/downloads/ -t $RecSec $RECRCHN

      fi
    done
  done

スクリプトは先頭でmyprogram.txtを配列PROGに読み込み、dateコマンドで曜日と録音開始時間が一致するまでループし、一致したらrec_radiko.shを実行している。

ターミナルを終了させても継続するようにscreenを立ち上げて実行するのがよいだろう。