ラズパイでネットラジオを聞く(NHK らじる★らじる )
災害時には国営放送を聞きたい。近況が知れる。
前提
参考
手順
2018-09-09時点。
0. API
0-A. APIキー必須
0-B. APIキー不要
| 種類 | URL |
|---|---|
| 一覧 | http://www.nhk.or.jp/radio/config/config_web.xml |
| noa api | https://api.nhk.or.jp/r2/pg/now/4/{area}/netradio.json 例 |
| program detail api | https://api.nhk.or.jp/r2/pg/list/4/{area}/{service}/[YYYY-MM-DD].json 例 |
| program info api | https://api.nhk.or.jp/r2/pg/info/4/{area}/{service}/{dateid}.json |
| URL | 値 |
|---|---|
{area} |
一覧で取得した<areakey>の値 |
{service} |
n1: NHK第1n2: NHK第2n3: NHK-FM |
[YYYY-MM-DD] |
日付(2018-09-09) |
{dateid} |
netradio.json APIから取得する。例: 2018090967186 |
1. URLを取得する
- ブラウザを起動する
- URL入力欄に
http://www.nhk.or.jp/radio/config/config_web.xmlを入力する - 応答結果から放送URLを取得する
<data> <areajp>札幌</areajp> <area>sapporo</area> <apikey>700</apikey> <areakey>010</areakey> <r1hls> <![CDATA[ https://nhkradioikr1-i.akamaihd.net/hls/live/512098/1-r1/1-r1-01.m3u8 ]]> </r1hls> <r2hls> <![CDATA[ https://nhkradioakr2-i.akamaihd.net/hls/live/511929/1-r2/1-r2-01.m3u8 ]]> </r2hls> <fmhls> <![CDATA[ https://nhkradioikfm-i.akamaihd.net/hls/live/512100/1-fm/1-fm-01.m3u8 ]]> </fmhls> </data>
上記は札幌におけるデータ。URLは以下。
2. 再生する
どうしても音飛びしてしまう。
2-A. mplayer
$ mplayer -playlist http://nhkradioikr1-i.akamaihd.net/hls/live/512098/1-r1/1-r1-01.m3u8
- 10秒毎に0.5秒くらいの音飛びがある
- 5分後にぶった切れた。もう一度コマンドを打ち込むことで再生した
2-B. script
コマンドが途切れるので無限ループさせる。
nhk-radio.sh
#/bin/bash
audio=alsa
URL="http://nhkradioikr1-i.akamaihd.net/hls/live/512098/1-r1/1-r1-01.m3u8" #札幌局第1
mode="-really-quiet -cache 700 "
while true
do
date +'%T'
mplayer -playlist ${URL} ${mode} -vo null -ao ${audio} 2>/dev/null
done
- 10秒毎に音飛びが0.5秒くらいある
- 3分毎に5秒くらい音飛びする。
なお、mplayerの引数については以下。
| 引数 | 説明 |
|---|---|
-really-quiet |
ターミナルへの出力をほとんど行わない |
-cache 容量(KB) |
700なら700KBのキャッシュ。256あれば再生が安定する |
-vo 映像出力先 |
nullで出力しない? |
-ao 音声出力先 |
alsaへ出力する |