ラジオを聴きながら書く天気図用紙の入手について書きました。
しかし、放送は16時なので、まじめに働いていたり学校行ってたりしたら聴くことができません。
そこで、今回はサイマルキャスト放送をLinuxで録音する方法について紹介します。
録音してしまえば練習で止めながら聞いたり、聞き逃したところを戻って聞いたりもできます。
らじるらじるとRadiko
らじるらじるとRadikoの両方の録音に対応したスクリプトが公開されています。
以下の順で必要なものをインストールすればOKです。
$wget https://raw.githubusercontent.com/uru2/radish/master/radi.sh $chmod 755 radi.sh $sudo apt install curl $sudo apt install libxml2-utils $sudo apt install ffmpeg
これで完了です。録音テストは以下のようにしてみてください。
$sudo ./radi.sh -t nhk -s tokyo-r1 -d 1 -o ./nhk1.m4a $sudo ./radi.sh -t nhk -s r2 -d 1 -o ./nhk2.m4a $sudo ./radi.sh -t nhk -s tokyo-fm -d 1 -o ./nhkfm.m4a
もう少し使いやすく
ここまでで終わりといえば終わりなのですが、このスクリプトでは少し使いにくいです。
1つ目はらじるらじるのチャンネル指定がradiko側と少し違うこと。
2つ目はファイル名が被らないようにするには都度手動で日付を入れる必要があること
などです。そこで、これらを解決するために、radi.shを実行するフロントエンド的なスクリプトを作成しました。それが以下のrecradiko.shです。
#!/bin/bash SCRIPT_DIR=`dirname $0` cd $SCRIPT_DIR tod=_`date +%Y-%m-%d_%H-%M` kaku=.m4a oFileName=$4$tod$kaku oFilePath=$3/$oFileName if [ $1 = "NHK1" ] || [ $1 = "NHK2" ] || [ $1 = "NHKFM" ] ; then if [ $1 = "NHK1" ] ; then NHKCH="tokyo-r1" elif [ $1 = "NHK2" ] ; then NHKCH="r2" elif [ $1 = "NHKFM" ] ; then NHKCH="tokyo-fm" fi ./radi.sh -t nhk -s $NHKCH -d $2 -o "${oFilePath}" else ./radi.sh -t radiko -s $1 -d $2 -o "${oFilePath}" fi
実行権限の付与を忘れずに。
$chmod 755 recradio.sh
以下のように引数を指定すればOKです。
./recradio.sh {チャンネル名} {録音時間} {出力先パス} {ベースファイル名}
具体的には
$sudo ./recradio.sh NHK2 20 /home/hoge/kisho 気象通報
これでNHK第2放送が録音され、/home/hoge/kisho以下に’気象通報_2022-07-17_00-23.m4a’というファイルが生成されます。
自動化の設定
例によってCRONさんにお願いします。
$sudo crontab -e 0 16 * * * sleep 31; /home/hoge/recradio.sh NHK2 20 /home/hoge/kisho 気象通報
サイマルキャスト放送は実放送に対して数十秒の遅れがあるため、”sleep 31″で時間を遅らせています。この辺りは環境にも依存するかもしれないので適宜修正してください。
ついでに気象通報原稿も自動でGETしよう
現在NHKで放送されている気象通報はAIによる読み上げらしいです。この放送の元となっている原稿は気象庁の公式サイトで過去一週間分が公開されています。
そこで、’get_kishogenko.sh’というファイルを作成し、以下のようなスクリプトにします。
#!/bin/bash tod=`date +%Y%m%d` kaku=.txt oFileName=$tod$kaku curl https://www.data.jma.go.jp/fcd/yoho/gyogyou/day1_12.txt -o /home/hoge/genko/$oFileName
$chmod 755 get_kishogenko.sh
自動で取得したいのでCRONさん
$sudo crontab -e 30 23 * * * /home/hoge/get_kishogenko.sh
これで、スクリプト実行日の前日の気象通報が取得できます。
原稿の取得時間をこのように設定しているのには訳があります。気象通報の原稿がアップロードされるまでにタイムラグがあるためです。”各地の天気”は比較的早く反映されるのですが低気圧/高気圧などの情報が含まれる”その2”はさらに大きなタイムラグがあります。確実にすべての情報を取得するために23時30分ごろにスクリプトを実行しています。毎日23時30分に前日分を取得している、ということですね。
ファイル名と中身の日付があってないのが気持ち悪いと思う人はdateコマンドに以下のオプションをつけてください。
--date '1 day ago'
まとめ
らじるらじるやRadikoを録音するスクリプトはすでに完成度の高いものが公開されていて、特に難しくなく使用できると思います。これで天気図を天気図作成の練習に使ってみるなどするといいですね。
また、繰り返しになりますがここで紹介した方法によって録音したデータや原稿をWEB上等で公開することは違法になる可能性が高いのでお気を付けください。(ダメ絶対)
コメント