災害時には国営放送を聞きたい。近況が知れる。
前提
参考
手順
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 へ出力する |