こんにちは、mOqOmです。
少し前にVolumio3でRadikoを聴取できるプラグインのJP_Radioを作成しました。
2023/11/04現在、Volumio3のプラグイン検索にはリリースされていませんが。。。
そこでVolumio3でRadikoを聴取できるJP_Radioの正式リリース前にプラグインを使用した方向けにインストール方法を紹介します。
動作環境(開発環境)
あまり気にしなくていいと思いますが、開発環境は以下になります。
以下のバージョン以上であれば動作すると思います。
- Raspberry Pi 4 Model B
- Volumio3(Ver:3.816)
- Node.js(Ver:14.15.4)
- npm(Ver:6.14.10)
- Python3(Ver:3.7.3)
- Python2(Ver:2.7.16)
- ffmpeg(Ver:4.1.11-0+deb10u1)
初期設定
「http://volumio.local/dev」へアクセスし「Plugins Test Mode」を「TRUE」に変更します。
また、「SSH」を「ENABLE」に変更します。
※volumio.localは、自身のVolumioIPアドレスになります。

インストール
SSHでVolumioへログイン後に、以下のコマンドに沿ってプラグインをインストールします。
SSHのログインユーザ名:volumio、パスワードはユーザ名と同じ
※SSHが不要になった段階でSSHを「DISABLE」に変更しておきましょう。
忙しい方向け(V3.0.0以降)
git clone https://github.com/mOqOm/JP_Radio.git
cd ./JP_Radio
npm install
npm run build
mkdir -p /data/plugins/music_service/jp_radio
volumio plugin refresh
volumio vrestart
軽い説明を踏まえながら
JP_Radioプラグインのクローンとディレクトリの移動
git clone https://github.com/mOqOm/JP_Radio.git
cd ./JP_Radio
プラグイン動作に必要パッケージ(モジュール)のインストール
npm install
プラグインのインストールフォルダの作成
mkdir -p /data/plugins/music_service/jp_radio
クローンしたJP_Radioプラグインの読込みと有効化のコマンド
volumio plugin refresh
volumio vrestart
実行結果を含めるとこんな感じ
volumio@volumio:~$ git clone https://github.com/mOqOm/JP_Radio.git
Cloning into 'JP_Radio'...
remote: Enumerating objects: 32, done.
remote: Counting objects: 100% (32/32), done.
remote: Compressing objects: 100% (22/22), done.
remote: Total 32 (delta 7), reused 26 (delta 7), pack-reused 0
Unpacking objects: 100% (32/32), done.
volumio@volumio:~$ cd ./JP_Radio
volumio@volumio:~/JP_Radio$ npm install
npm notice created a lockfile as package-lock.json. You should commit this file.
added 144 packages from 142 contributors and audited 144 packages in 11.033s
29 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities
volumio@volumio:~/JP_Radio$ mkdir -p /data/plugins/music_service/jp_radio
volumio@volumio:~/JP_Radio$ volumio plugin refresh
This command will copy all your plugin's file in the correspondent folder in data
Updating the plugin in Data
Plugin succesfully refreshed
volumio@volumio:~/JP_Radio$ volumio vrestart
volumio@volumio:~/JP_Radio$
聴取するまで
SSHでJP Radioプラグインの有効化まで終わったらWebブラウザからVolumioへアクセスして、「インストール済みのプラグイン」から「JP Radio」を「ON」に変更します。

プラグインを有効化してしばらくして、一覧表示にアクセスすると以下の画像のように「RADIKO」が表示されます。

Radikoのプレミアムアカウントログインすると、すべての放送局が表示されプレミアムアカウントでログインを行っていないと現在の地域からアクセスできる放送局が表示されます。
※以下画像では見やすくするため、表示をGridに切り替えています。また、List表示にも対応してます。

Radikoのログインについて
プラグイン管理から、JP Radioの設定でRadikoのログインが行えます。
ログイン情報保存後にJP Radioを再起動もしくは、Volumioの再起動を行うことで反映されログインされます。
プラグイン管理から「インストール済みのプラグイン」で「JP Radio」の設定を押下して設定画面に移動します。

Radikoのプレミアムログインアカウントの「ユーザ名」「パスワード」を入力して「保存」を押下すると「Settings have been saved successfully. Please restart the plugin.」と表示されるので、プラグインを再起動しましょう。

おわりに
正式リリースまでかなり時間がかかると思いますので気長にお待ちください。
GithubのURL



コメント
はじめまして 横浜市在住の東方と申します
rasspi3B,2Bでvolumio3+jp_radioを 楽しませてもらっていましたが
ある日気づいたら急に TBSを鳴らそうと選ぶと(他の日本の局も)
2025/05・17
Error failed to decode
http://127.0.0.1:9000/radiko/TBS;
CURL failed:Failed to connect to
127.0.0.1 port 9000:Connection
refused
なる アラートが出て 聞けなくなってしまいました
jp_radio と auto_start 以外の プラグイン をアンインストールしたりしましたが変わりませんでした
なにか アドバイスがあれば よろしくお願いします
*リタイアした老エンジニアです ^^)
ご迷惑をおかけしており申し訳ございません
「MAJ 2025 AUDIO LIVE」が追加されていたことによる影響でした。
先ほどVer0.0.6をリリースしましたので、そちらでご確認のほどよろしくお願いいたします。
早速のご対応 感激です!
確認してご報告します、ありがとうございます。
東方です、ご報告です
まづは 無事JP_Radioで聞けるようになりました! ありがとうございました。
以下余談で
① SSHで SDメモリに上書きで install しました?が 上書き?できないようでした
これは多分当たり前の結果でしょう、コマンドラインの内容等まったく理解できず
なぞっていますから (素人です ^^)
② で、新規に volumio ver3を SDメモリに書き込み、初期設定から行いその上でJP_Radio
を install して聞くことができました
③ ひとつ 気づいた事ですが
JP_Radioを視聴して、電源OFFして再度電源ONでvolumioを立ち上げた後で
すぐにJP_Radioを聴こうとすると 例の9000:Connection エラーになります
そこで 一旦ウェッブラジオから適当な局を選んで鳴らしてから JP_Radioで
選局するとエラーが出ないで聴くことができます(以前からの現象とおもいます)
参考になれば幸いです なにはともあれ感謝です!!
ご連絡ありがとうございます!
「npm install」だけでは上書きされないので「volumio plugin refresh」と「volumio vrestart」もセットで行っていただけると上書きされ
新しいバージョンのJP_Radioが読み込まれます
※もちろんGit cloneしておかないといけないですが。。。
Update手順がわかりづらく申し訳ございません。
どこかで、Update手順作っておきます!
③については、JP_Radioのバグなんですよね。。。
中で使用しているDBの初期化に時間がかかっていることが原因なのと、もうバージョンが更新されないそうなので別なDBに移行予定となっております。
再度Logicを考え直さないといけないなーと半年以上前から思いつつできていないのが現状です。。。
申し訳ございません。。。
丁寧なコメントありがとうございます
> ③については、JP_Radioのバグなんですよね。。。
との事、内容の理解は私では不能?ですが、
> Logicを考え直し!
との事、今後とも使用させていただきますので
よろしくお願いします
でも 色々プログラミング等 アルゴリズムを考える
醍醐味は理解できる気がします
(アセンブラ から C、PASCALまで書いてました^^)
ではでは、よろしくお願いします!
TypeScript化してv0.1.0をリリースしています。
v0.0.6の一部バグの恒久対応をしています
都度都度Logicを考え直しているので、もしTypeScriptが読めたり書けたりしたらプルリクなどいただけると助かります!
こちらこそ、今後ともよろしくお願いいたします!
>v0.1.0をリリースしています
との事 早速 < 忙しい方向け(V0.1.0以降) > で
Rasspi3B&volumio3 で jp_radioとauto_startのプラグインのみインストールしてみました、結果エラー無く使用できてます!!
ありがとうございます!!
>TypeScriptが読めたり書けたりしたらプルリクなどいただけると助かります
TypeScript言語?は勿論 読み書き不能です ^^)、Pull Requestの意味も理解できてませんが
とりあえづ Rasspi3Bにクリーンインストール??してエラー無く動いています、ありがとうございました!!
何か不都合が出たらご報告します。
追)volumio vrestart コマンド?が Tera Term からのSSH?ではコマンド無効?です。よく理解できません^^)
> との事 早速 < 忙しい方向け(V0.1.0以降) > で
Rasspi3B&volumio3 で jp_radioとauto_startのプラグインのみインストールしてみました、結果エラー無く使用できてます!!
良かったです!
> 何か不都合が出たらご報告します。
すみませんがよろしくお願いいたします!
> 追)volumio vrestart コマンド?が Tera Term からのSSH?ではコマンド無効?です。よく理解できません^^)
私もTeraTermのVersion5.4.0を使用中ですが、「volumio vrestart」はコマンドで通りますね。。。
最悪Volumioの再起動で行けると思いますが、なんでいかないのかわからないですね。。。
すみません。。。
Volumioの更新が来てたのでアップデートして動作チェックしていたら,JP_Radioが再生できなくなっていることに気づき,ここにたどり着きました。
以下の環境でJP_Radioもアップデートして確認。
RaspberryPi3B+
Volumio v3.812
JP_Radio v0.1.0
①エリア内の局は正常に再生できます。
②ラジコプレミアムでエリア外の局を選択するとエラー(Failed to decode)になります。
もう少し調べてみようと思います。
ログを取ってみました。
サーバーからアクセス拒否(403)されてるっぽいですね。
error: JP_Radio::genTempChunkM3u8URL error Response code 403 (Forbidden) {“name”:”HTTPError”,”code”:”ERR_NON_2XX_3XX_RESPONSE”,”timings”:{“start”:1748485763126,”socket”:1748485763127,”lookup”:1748485763145,”connect”:1748485763169,”secureConnect”:1748485763218,”upload”:1748485763218,”response”:1748485763268,”end”:1748485763269,”phases”:{“wait”:1,”dns”:18,”tcp”:24,”tls”:49,”request”:0,”firstByte”:50,”download”:1,”total”:143}},”stack”:”HTTPError: Response code 403 (Forbidden)\n at Request. (/data/plugins/music_service/jp_radio/node_modules/got/dist/source/as-promise/index.js:118:42)\n at runMicrotasks ()\n at processTicksAndRejections (internal/process/task_queues.js:93:5)”}
info: JP_Radio::Retrying stream fetch with new token
error: JP_Radio::genTempChunkM3u8URL error Response code 403 (Forbidden) {“name”:”HTTPError”,”code”:”ERR_NON_2XX_3XX_RESPONSE”,”timings”:{“start”:1748485763641,”socket”:1748485763642,”lookup”:1748485763661,”connect”:1748485763685,”secureConnect”:1748485763732,”upload”:1748485763732,”response”:1748485763777,”end”:1748485763780,”phases”:{“wait”:1,”dns”:19,”tcp”:24,”tls”:47,”request”:0,”firstByte”:45,”download”:3,”total”:139}},”stack”:”HTTPError: Response code 403 (Forbidden)\n at Request. (/data/plugins/music_service/jp_radio/node_modules/got/dist/source/as-promise/index.js:118:42)\n at runMicrotasks ()\n at processTicksAndRejections (internal/process/task_queues.js:93:5)”}
info: JP_Radio::Retrying stream fetch with new token
error: JP_Radio::Failed to get playlist URL
PCではブラウザでradikoにログインして再生できていますので,
アカウントやネットワークの問題ではなさそうです。
radiko側の仕様が変わったのかな?
ログまで提供していただきありがとうございます。
こちらTypeScript移行した際のバグでした。
ご迷惑をおかけしており申し訳ございません。
先ほどVer0.1.2をリリースしましたので、そちらでご確認のほどよろしくお願いいたします。
Ver0.1.2でエリアフリーの再生OKになりました。
早速の対応,ありがとうございました。
—
以下は,できたらいいなぁ程度の要望です。
「エリアフリーでは100局以上がずらずら並ぶので,西日本の局を選ぶとき大変だなぁ。」
「地方ごとに絞り込めたら使いやすくなるだろうなぁ・・・」
貴重なご意見ありがとうございます!
先ほどご意見があった、地域毎の表示対応をしたVer0.1.3をリリースしました。
よろしくお願いいたします。
>地域毎の表示対応をしたVer0.1.3をリリースしました。
すばらしい!
ありがとうございます。
対応していただけるとは思ってなかったので,自分で何とかできないかとソースを眺めていたところでした。
JavaScriptはかつてホームページが流行ったころにいじったことがあったのですが,
見たことない表記なんかがあって手ごわそうだなぁと思っていました。
Volumio用のプラグインなので特殊仕様が入っているのでVolumioプラグインの仕様を理解しないと若干難しいですよね
また、TypeScriptなので若干JavaScriptと書き方が違ったりします!
また何かありましたらご連絡ください。
可能な範囲で対応させていただきます!
お世話になっております。
番組が切り替わったら再生画面を更新できないかといろいろいじってみました。
ほかのプラグインなども参考にほぼ思った通りの動きをするようになりました。
ソースをお渡ししたいのですが,どうしましょうか?
上にある「プルリク」がそれなんだと思いますが,よくわからないので・・・
ちなみに,v4.0.0はVolumio4専用ですよね。
Volumio3では動かなかったので。
ご迷惑をおかけしており申し訳ございません。。。
ご指摘の通りv4.0.0はVolumio4専用で、main側へマージしたことが原因です。
これはGitの使用方法がわかっていなかった影響で現在v3.0.0で再度リリースしてブランチを分けてVolumio4用と分けたいと思っております。
Volumio4が正式リリースしたらmain側へマージしたいと思っております。
> 番組が切り替わったら再生画面を更新できないかといろいろいじってみました。
> ほかのプラグインなども参考にほぼ思った通りの動きをするようになりました。
ありがとうございます!
GitHubでプルリクを出していただければ嬉しいですが、難しければギガファイル便で共有していただき、ギガファイル便のURLをいただければ、v3.0.0にマージしたいと思います!
ちなみにですが…Volumio4で公式プラグインとしてリリースしたいのですが、手伝っていただくことはできないでしょうか?
もちろん可能な限り(ベストエフォート)で問題ないので…
https://github.com/volumio/volumio-plugins-sources-bookworm/pull/51
> GitHubでプルリクを出していただければ嬉しいですが、
少しGitHubを勉強してプルリクにトライしてみます。
> 手伝っていただくことはできないでしょうか?
いいですよ。
やり取りを見てみましたが,なかなかご苦労されているようで・・・
Volumio3でも設定画面が開けなくなりました。
状況は,
・JP_Radio v4.0.0をインストールしたが動作しなかった。
・/data/plugins/music_service/jp_radio/を削除し,v0.1.3改を再インストールしてRADIKO再生を確認。
・その後,設定画面が開けなくなっていることに気づいた。
ちなみに,v4.0.0を入れる前のv0.1.3改では問題ありませんでした。
RaspberryPi3B+
Volumio v3.812
JP_Radio v0.1.3改
v4.0.0がシステムに影響するような何かをしてる???
お世話になっております。
Slackにてやり取りしませんか?
ここだと追いかけるのが大変なので…
v3.0.0ではなおっているかな?と思いますがなぜか私の環境だと再現できないのでいろいろとかくにんしたいのとv0.1.3改の変更内容を知りたいですし。。。
コメントいただいた際のメールアドレスを用いてSlackへ呼んでもよいでしょうか?
> コメントいただいた際のメールアドレスを用いてSlackへ呼んでもよいでしょうか?
Slack???
とりあえずメールしてください。
Discordの招待へ切り替え、メールを送信しております。
よろしくお願いいたします。
開発感謝します。
しばらくvolumioのラジオが聴けなくなったのでうろたえていたところ
mOqOmさんのXでコメントを手がかりに再びrajikoプラグインで聴けるようになりました。
ありがとうございます。
インストールできただけでも奇跡のド素人なので、なにも参考になるコメントをお渡しするできませんが動作している環境と状態だけでも・・・すいません。
環境:
Raspberry Pi Zero 2 W+Pirate Audio Line-out
OS
volumio:3.832
プラグイン
JP_Radio(3.0.2)+Pirate Audio(0.1.2)+AutoStart(3.0.4)+GPIO Buttons(0.8.4)
※
今回はJP_Radioプラグインの上書きしないでvolumioから再インストしました。
JP_Rajio(3.0.2)にしたらPirateAudioの画面には局アイコンではなくて番組の画像が写るようになっていて次の番組になる瞬間見ていると楽しいです。
気になっているところは
選局で連続でバシバシと次のトラックのボタンを押してしまうと固まりますが、画面が番組の画像が変わるまで待ってから押すように使えば問題ないです。
また固まったときはpirateAudioの限定された操作だけでは再開方法が見当たらないのですが
PCなどのブラウザから音楽を停止ボタンを押してから次のトラックボタンを押すとほとんどの場合再開します。
コメントありがとうございます!
バタついており、すぐに対応ができなくて申し訳ございません
対応可能であれば対応したいと思います!
JP_Radio pluginの提供ありがとうございます。
これまでVolumio V.3環境で使用していたのですが、Fusion DSPのplugin updateでVolumioが正常に動作しなくなりVolumio V.4で再構築しました。
使用したパッケージはVolumio V.4.071で、JP_Radio pluginを手順に従って再度導入しましたが、全く問題なく使用できました。
RadikoをRaspberry piで利用するにあたって大変重宝しています。ありがとうございます。