2020年4月26日日曜日

ラズベリーパイでradikoラジオをつくる: その12 HLS形式に対応するradiko受信スクリプト

radikoウェブサイトに『Adobe Flash サポート終了』と衝撃的なお知らせが出ていました。受信スクリプトはまさにFlash形式を使用していますので、後継となるHLS形式に否応なく移行する必要が出てきました。


HLS対応のスクリプトはWeb上でいくつか発表されています。その中でも、エリアフリー対応で単一のファイルで構成されている radish を選定しました。radish は、NHKラジオ らじる★らじるやListenRadio等で現在配信中の番組を保存するシェルスクリプトです。
まずは、radishの実行に必要なアプリをインストールします。
$ sudo apt install libxml2-utils
$ sudo apt install ffmpeg
$ sudo apt install jq

次に、GitHubからダウンロードしたスクリプトファイル radi.sh を/home/pi/radikoに置き、スクリプトの録音ルーチンを再生できるように書き替えます。(赤字部分)
# Record
if [ "${type}" = "radiko" ]; then
   ffplay \
      -nodisp -loglevel quiet \
      -headers "X-RADIKO-AUTHTOKEN:${radiko_authtoken}" \
      -i ${playlist_uri}

elif [ "${type}" = "shiburadi" ]; then
   ffplay \
      -nodisp -loglevel quiet \
      -i ${playlist_uri}

else
   ffplay \
      -nodisp -loglevel quiet \
      -i ${playlist_uri}

fi

このスクリプトの使い方は次の通りです。
radikoで地元局(この例ではTBSラジオ)を受信する場合
$ cd ~/radiko/
$ ./radi.sh -t radiko -s TBS
radikoプレミアムのログイン情報を付加するとエリアフリー受信ができます。次の例では、北海道のHBCラジオをエリア外で受信します。
$ ./radi.sh -t radiko -s HBC -i “taro@mail.jp” -p “password”
NHKらじる☆らじる にも対応しています。NHKはエリア制限が無いようで、エリア外からでも受信できました。
$ ./radi.sh -t nhk -s tokyo-r1
赤字で示した放送局IDやメディア記号は、次のコマンドで知ることができます。(radishはシンプルなのに多機能です!)
$ ./radi.sh -l
ところで、再生にmplayerを使う場合、スクリプトの実行開始から放送の聴こえ始めまで10秒程度かかりますが、ffplayでは2秒程度です。しかも音切れもなく安定しており言うことがありません。素晴らしい!

0 件のコメント:

コメントを投稿