(よくわからないのでしばらく工事中になるだろう。)
Covid-19流行が始まって以来、自動車を運転して移動することが増えた。 もともとラジオが好きだったので、FM を聴きながら運転していることが多い。
続きを聴きたいな (でも、最近の電波の入りにくい建物の中ではラジオ使いにくいな)、 ということでネットラジオを調べてみた。
radiko は有名だけれど、メジャーな局しか聴けない。
コミュニティFMというのもあるね。 運転しているときに、FM世田谷や調布FMを聴いたりしている。 「地区町村単位の地域に放送を行うFM局のこと」 だそうだ。 どういうのがあるかは、 https://www.jcbasimul.com/ とか https://www.jcbasimul.com/otherをみよう。でも、これで網羅できるわけではないのか。
色々なFM局を聴くためのリンクがはってあるサイトが色々ある。 https://listenradio.jp/ とか、 https://www.radiojapan.org/ とか。
正直なところ、何がどうなっているのか、全貌がとらえにくい。
時々録音したくなる (いまどきテレビだって録画して観るのが普通でしょう?)。 メジャーな radiko については、録音が可能なアプリが色々あるみたい (これについてはそのうちに)。
録音については、 「radikoのダウンロード方法」 には、streamlink を使う方法も説明されている。
streamlink の、MacPorts でのインストールは簡単である。
sudo port install streamlink |
実際、Tokyofm は一応できた。
streamlink 'https://radiko.jp/#!/live/FMT' best -o output.ts ffmpeg -i output.ts radiko`date '+%Y%m%d'`.mp3 rm output.ts |
streamlink はどうやって終了するのかな?control-c か?
radiko で聴ける局については、 FMT のところを色々変えればいいみたい。 https://radiko.jp/#!/top から選べば必要な URL が分かる。
それでは、コミュニティFM はどうするのだろう。
radiko ではないわけだけれど、 「FFmpegを使ってradikoを録音する方法」 で紹介されている方法でできた。
例えば、調布FMは、ネットでは、 https://www.radiojapan.org/で聞くことができる。 https://www.radiojapan.org/diao-bu-fm-chofu-fm
Google Chrome でそれを聴いている状態で、 [表示] [開発/管理] [デベロッパー ツール] Networkタブ、 m3u8 をフィルターに指定して、chunklist を探す。 [Copy] [Copy as cURL] として、 chunklist の URL を調べる。 それで、 https://mtist.as.smartstream.ne.jp/30039/livestream/chunklist.m3u8というのが見つかった。これを ffmpeg に指定すれば良い。
ffmpeg -i "https://mtist.as.smartstream.ne.jp/30039/livestream/chunklist.m3u8" -vn radio.mp3 |
FM世田谷は? FM世田谷自身のWWWサイトにリンクが載っているサイトからは、 chunklist の URL がゲット出来なかった。 https://www.radiojapan.org/fmshi-tian-guから聴いたら、 https://mtist.as.smartstream.ne.jp/30027/livestream/chunklist.m3u8を知ることが出来た。 後は同様にしてできる:
ffmpeg -i "https://mtist.as.smartstream.ne.jp/30027/livestream/chunklist.m3u8" -vn radio.mp3 |
こういう URL を集めた人もいるけれど (「ネットで見つけた様々なラジオチャンネルのプレイリストです。」)、 網羅性はないみたい。
mtist.as.smartstream.ne.jp は、 NTT スマートコネクトというところが立てているサーバーみたいだけれど、 そこが一覧表を出したりしないのかな。
どうやって止めるのか?と書いたけれど、 「配信終了まで」という説明を読んだ。そのまま番組のエアチェックができるのかな? そうだとすると次のようなシェル・スクリプトを書いて、 cron とかで起動すれば良いのか。
download-chofu.sh |
#!/bin/sh export URL="https://mtist.as.smartstream.ne.jp/30039/livestream/chunklist.m3u8" export FNAME=`date "+chofu-%Y%m%d%H%M.mp3"` /opt/local/bin/ffmpeg -i $URL -vn $FNAME |
crontab -e |
crontab にこんなふうに書く |
# minute hour day-month month day-week # every Saturday 21:00 0 21 * * 6 /Users/mk/bin/download-chofu.sh >> /tmp/download-chofu.log 2>&1 |
あ、うまく止まらなかった。仕方ないので ffmpeg で切り取る。 先頭から 1800秒 (30分) 切り取るには
ffmpeg -i ファイル名 -s 0 -t 1800 -acodec copy output.mp3 |
正確でないけれど、一応キレるみたいだ あるいは -max_reload 1 とするのかな。 試行錯誤だ。
(2024/4/14追記)
結局、
念のため放送開始1分前 (21:00開始だったら20:59) に録音を始めることにして、
30分番組だったら31分 (1860秒) 録音を続けることにした。
ファイル名は date コマンドを使って起動した日時をつけたものにする。
crontab にこう書いた (crontab -e で編集) |
# every Saturday at 21:00 59 20 * * 6 /Users/mk/bin/download-chofu-31.sh >> /tmp/download-chofu.log 2>&1 |
download-chofu-31.sh |
#!/bin/sh export FNAME=`date "+chofu-%Y%m%d%H%M.mp3"` /opt/local/bin/ffmpeg -to 1860 -i "https://mtist.as.smartstream.ne.jp/30039/livestream/chunklist.m3u8" -vn $FNAME |