Absolutely - I still need to default to J-River to listen to the 4 Radio Paradise FLAC streams with metadata & cover art so I know what is being played (and therefore can also be scrobbled) - if Roon can fix this in their radio stream it would make my transition to the Rooniverse 100%.
Thank you @Sebastien
Iâve tried to proceed under DietPi but was unable to install nore-red
root@DietPi:~# > sudo npm install node-red
npm ERR! Cannot read property âresolveâ of undefinednpm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2020-04-30T19_26_07_960Z-debug.log
Debug file being
0 info it worked if it ends with ok
1 verbose cli [
1 verbose cli '/usr/local/bin/node',
1 verbose cli '/usr/local/bin/npm',
1 verbose cli 'install',
1 verbose cli '-g',
1 verbose cli '--unsafe-perm',
1 verbose cli 'node-red'
1 verbose cli ]
2 info using npm@6.14.4
3 info using node@v14.1.0
4 verbose npm-session 551a6de1f56dd1b5
5 silly install loadCurrentTree
6 silly install readGlobalPackageData
7 silly fetchPackageMetaData error for node-red@latest Cannot read property 're$
8 timing stage:rollbackFailedOptional Completed in 10ms
9 timing stage:runTopLevelLifecycles Completed in 199ms
10 verbose stack TypeError: Cannot read property 'resolve' of undefined
10 verbose stack at regFetch (/usr/local/lib/node_modules/npm/node_modules/$
10 verbose stack at fetchPackument (/usr/local/lib/node_modules/npm/node_mo$
10 verbose stack at packument (/usr/local/lib/node_modules/npm/node_modules$
10 verbose stack at getManifest (/usr/local/lib/node_modules/npm/node_modul$
10 verbose stack at manifest (/usr/local/lib/node_modules/npm/node_modules/$
10 verbose stack at Object.manifest (/usr/local/lib/node_modules/npm/node_m$
10 verbose stack at Object.Fetcher#manifest [as manifest] (/usr/local/lib/n$
10 verbose stack at manifest (/usr/local/lib/node_modules/npm/node_modules/$
10 verbose stack at /usr/local/lib/node_modules/npm/node_modules/pacote/man$
10 verbose stack at /usr/local/lib/node_modules/npm/node_modules/promise-in$
10 verbose stack at Promise._execute (/usr/local/lib/node_modules/npm/node_$
10 verbose stack at Promise._resolveFromExecutor (/usr/local/lib/node_modul$
10 verbose stack at new Promise (/usr/local/lib/node_modules/npm/node_modul$
10 verbose stack at _inflight (/usr/local/lib/node_modules/npm/node_modules$
10 verbose stack at /usr/local/lib/node_modules/npm/node_modules/promise-in$
10 verbose stack at tryCatcher (/usr/local/lib/node_modules/npm/node_module$
11 verbose cwd /root
12 verbose Linux 4.19.97-v7+
13 verbose argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "-g" "--un$
14 verbose node v14.1.0
15 verbose npm v6.14.4
16 error Cannot read property 'resolve' of undefined
17 verbose exit [ 1, true ]
Any clue ?
Hi Alec,
Not familiar at all with DietPi
Have you tried:
dietpi-software install 9
then
dietpi-software install 122
?
Seems I had some success after all
Well, quite a complex setup but at least it seems to work. Will provide an how-to tomorrow if I can find some time
Thank you but same issue with dietpi-software install x
Node-red simply doesnât install. Maybe fixed with next DietPi update?
Will try tomorrow with Ubuntu.
Wow !
Well done Sebastien.
Can you crisply describe what Roon and/or RP would have to do so that a normal Roon setup can see the same ?
Ok, here is my understanding - but note that Iâm not an expert, so could be wrong.
To me, it looks itâs all about the streaming server.
1/ It seems that âicecastâ is not able to embed metadata in OGG/Flac
2/ It sees on the opposite that another server, Rocket Streaming Audio Server, is able to do so
(I noticed this with your mention of Radio Bluesflac)
So my impression is that RP is streaming through icecast, and is therefore unable to add metadata.
It sounds to me that it would be âsimplyâ a matter for RadioParadise to stream using Rocket Streaming Audio Server (RSAS) - at least the FLAC stream. And no action needed on Roon side.
If we want to workaround this, it is actually quite heavy:
- need to install our own instance of RSAS
- then, need to mirror the original RP stream to the newly installed RSAS; this is actually not as simple as for FIP (was icecast -> icecast), so I had to install something called LiquidSoap to do this (well, to be precise, RSAS can mirror another stream but does not allow to modify the metadata).
- and finally, grab and update the metadata, eg using node-red
LiquidSoap, besides being a pain to install, is quite heavy and crashed my RPI, so I had to install it on an AWS EC2 instanceâŠ
Iâm preparing an how-to, it should take more or less half an hour to install all this.
@Sebastien i managed to make it work on an old PI3, under Ubuntu.
I had problems with PM2 it didnât worked.
I think the overall npm / nodered / pm2 section can be replaced elegantly by the following as described here Running on Raspberry Pi : Node-RED
sudo apt install build-essential git bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered) sudo systemctl enable nodered.service
Otherwise all was smooth
For DietPi there is an issue with the installation of Nodered, Iâll report it to Dan. Once this is fixed, it should work.
That was my understanding too, until I came across Mother Earth Radio - ogg/flac using Icecast 2.4.4 with metadata. Try it with VLC or foobar although Roon canât extract it and stumbles at end of each track.
Status page here
Thatâs interesting. I spend some time in the source code of the latest version of icecast, and the method used to add the tag is not implemented for ogg format. So no clue how Mother Earth Radio could add metadata, unless if theyâve modified icecast source code maybeâŠ
The server is (or says it is) 2.4.4. I canât tell what streamer they use to send to the server.
$ curl -H âIcy-MetaData: 1â -v âhttp://icecast3.streamserver24.com:18800/motherearthâ
- Trying 195.201.96.194:18800âŠ
- Connected to icecast3.streamserver24.com (195.201.96.194) port 18800 (#0)
GET /motherearth HTTP/1.1
Host: icecast3.streamserver24.com:18800
User-Agent: curl/7.69.1
Accept: /
Icy-MetaData: 1
- Mark bundle as not supporting multiuse
- HTTP 1.0, assume close after body
< HTTP/1.0 200 OK
< Server: Icecast 2.4.4
< Connection: Close
< Date: Fri, 01 May 2020 12:04:11 GMT
< Content-Type: application/ogg
< Cache-Control: no-cache, no-store
< Expires: Mon, 26 Jul 1997 05:00:00 GMT
< Pragma: no-cache
< icy-description:High Resolution Music tuned to 429hz
< icy-name:Mother Earth Radio
< icy-pub:1
< icy-url:http://icecast3.streamserver24.com:18800/motherearth
<
As promised, the tutorial for âNow Playingâ on Radio Paradise is available.
Note that it is quite more complex than for FIP, so it would be great if anyone volunteers to give it a try.
Perfect @Sebastien, thankâs a lot ! Node-Red is efficient.
Two questions:
- Do you know FIP Electro (and others FIP Web Radios) ICECAST and metadata URLâs to add new ârelaysâ and âflowsâ ?
- RadioFranceâs metadata platform seems to provide cover art URLs, is there a way for ROON to display them ?
Câest tellement bien que lâon a envie de gĂ©nĂ©raliser et dâenrichir le âNow Playingâ avec les pochettes mais il y a peut ĂȘtre des limites techniques et juridiques du cotĂ© ROONâŠ
Google translate:
Itâs so good that we want to generalize and enrich the âNow Playingâ with the covers but there may be technical and legal limits on the ROON sideâŠ
Rather than guess, we can check with @danny
Hi,
I have updated my post to include now all FIP webradios Iâm aware of. Please have a try
Thank you, @Sebastien. Itâs great to have the APIs for all FIPâs webradio. Iâm gonna try (first version with FIP only is rock solid !).
Merci Sebastien !
For NodeRed installation: the steps you described didnât work for me on a Pi3B under Ubuntu 20, see workaround in my last post aboveâŠ
Good to have all FIPs with metadata now!
+1 , OK with your workaround: Running on Raspberry Pi : Node-RED
Hereâs a link to all logos, feel free to add in your tutorial.
Thanks Rémi, I have updated my post