勉強用に買って放置していたラズパイを使ってラジコを再生できるようにしました。
ラズパイのスペック
- モデル:Raspberry Pi 4 Model B Rev 1.5
- メモリ:1GB
1. ラズパイ OS をインストールする
ラズパイ財団の Web サイトから Raspberry Pi Imager をダウンロード。
Raspberry Pi Imager
アプリを起動し、利用するラズパイのモデルを選択。

今回は、ターミナル操作がメインなので、「Raspberry Pi OS (other)」 → 「Raspberry Pi OS Lite(64-bit)」を選択。


このあとは、説明に沿ってホスト名やユーザーなど入力していけば OK。
2. radiko 再生に必要なツールをインストール
ラズパイに以下のツールをインストールすれば再生可能。
- Streamlink
- radiko で配信中のデータを取得するツール。
- mpv
- Streamlink で取得したデータを音声に変換して再生するツール
※上記の他に以下も必要になります
- ca-certificates
- ffmpeg
- alsa-utils
sudo apt install -y streamlink mpv ffmpeg ca-certificates alsa-utils
以下のコマンドを実行して TOKYO-FM の再生がスタートすれば OK です。
streamlink --player mpv 'https://radiko.jp/#!/live/FMT' best
3.再生用のスクリプトを作る
コマンドを都度入力するのは面倒なので、ラジオ局を指定して再生できるようなスクリプトを用意。
ch.sh
#!/bin/bash
# radiko TOKYO channel enum (clean)
CH_JOAK="JOAK" # NHKラジオ第1(東京)
CH_JOAK_FM="JOAK-FM" # NHK-FM(東京)
CH_TBS="TBS" # TBSラジオ
CH_QRR="QRR" # 文化放送
CH_LFR="LFR" # ニッポン放送
CH_FMT="FMT" # TOKYO FM
CH_FMJ="FMJ" # J-WAVE
CH_INT="INT" # InterFM
CH_JORF="JORF" # ラジオ日本
play.sh
#!/bin/bash
source "radiko/ch.sh"
case "$1" in
CH.JOAK) STATION="$CH_JOAK" ;;
CH.JOAK_FM) STATION="$CH_JOAK_FM" ;;
CH.TBS) STATION="$CH_TBS" ;;
CH.QRR) STATION="$CH_QRR" ;;
CH.LFR) STATION="$CH_LFR" ;;
CH.FMT) STATION="$CH_FMT" ;;
CH.FMJ) STATION="$CH_FMJ" ;;
CH.INT) STATION="$CH_INT" ;;
CH.JORF) STATION="$CH_JORF" ;;
*)
echo "Usage: $0 CH.FMT | CH.FMJ | CH.TBS | CH.JOAK | CH.JOAK_FM ..."
exit 1
;;
esac
URL="https://radiko.jp/#!/live/${STATION}"
exec streamlink \
--player mpv \
--player-args="--cache=yes --cache-secs=10" \
"$URL" \
best
_radiko_ch_completion() {
local cur
cur="${COMP_WORDS[COMP_CWORD]}"
local channels="
CH.JOAK
CH.JOAK_FM
CH.TBS
CH.QRR
CH.LFR
CH.FMT
CH.FMJ
CH.INT
CH.JORF
"
COMPREPLY=( $(compgen -W "${channels}" -- "${cur}") )
}
complete -F _radiko_ch_completion play.sh
上記の 3 ファイルを用意すると、CH.まで入力すれば、予測変換が動くようになる。
radiko/play.sh CH.
あとでやりたいこと。
- 決まった時間に再生スタートする
- サイトを用意して GUI で局の切り替えができる
- 外出時には自動で再生が止まる など