気象通報を自動録音する方法

PC/デジモノ

ラジオを聴きながら書く天気図用紙の入手について書きました。
しかし、放送は16時なので、まじめに働いていたり学校行ってたりしたら聴くことができません。

そこで、今回はサイマルキャスト放送をLinuxで録音する方法について紹介します。
録音してしまえば練習で止めながら聞いたり、聞き逃したところを戻って聞いたりもできます。

録音したデータをネット等で公開するのは違法です。

らじるらじるとRadiko

らじるらじるとRadikoの両方の録音に対応したスクリプトが公開されています。

GitHub - uru2/radish: Live streaming radio recoder
Live streaming radio recoder. Contribute to uru2/radish development by creating an account on GitHub.

以下の順で必要なものをインストールすれば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による読み上げらしいです。この放送の元となっている原稿は気象庁の公式サイトで過去一週間分が公開されています。

気象庁 | 過去1週間の「各地の観測値と低気圧や前線の位置」
過去1週間分の気象通報を掲載しています

そこで、’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上等で公開することは違法になる可能性が高いのでお気を付けください。(ダメ絶対)

コメント