Radio Browser - how to use?

This is the radio stations URLs resource that I use. It is in Dutch (that I speak) but is easy enough for all to use.

1 Like

I used to use Sonos favorites in order to play my favorite radio stations. Now I have switched to Radio Browser for better flexibility. But this also resulted into the same problem:

It is a real pity that I cannot see the stationā€™s name and logo anymore (e.g. in the excellent Sonos Card)! :frowning:

According to the above mentioned site (thank you @LimboIvo) it should be possible to add title and thumbnail as metadata just like this:

  - service: media_player.play_media
    target:
      entity_id: media_player.living_room
    data:
      media_content_id: media-source://radio_browser/96126f56-0601-11e8-ae97-52543be04c81
      media_content_type: audio/mpeg
    metadata:
      title: NPO Radio 1
      thumbnail: >-
        https://upload.wikimedia.org/wikipedia/commons/thumb/d/da/NPO_Radio_1_logo_2014.svg/640px-NPO_Radio_1_logo_2014.svg.png
      media_class: music

In my case, it makes no difference whether I add those metadata or not. Has anyone managed to accomplish this? :pray:


Edit: Please also see stale GitHub issue:

2 Likes

I think its image: not thumbnail:

Thank you for your reply. Unfortunately not. Do you (or anybody else) have a working example?

Hi,

Based on browser_mod and the tips from Rouwette (see above), Iā€™ve been able to create a working dashboard for playing selected internet radio stations. In addition Iā€™m able to select the device Iā€™m using for playing. This is how it looks like in the frontend:
Screenshot 2023-11-10 at 12-19-46 radio ā€“ Home Assistant
After selecting the playback device, itā€™s just a matter to press a button to start playing the radio station.

Info on the radio stations can be found here: https://www.radio-browser.info/

In configuration.yaml Iā€™ve added:

input_select:
  radio_je:
    name: Afspelen-Jan
    options:
      - Browser Macbook
      - Iphone Jan
      - Ipad Jee
    icon: mdi:radio

In browser_mod you have to add the browsers you want to use. In my case I have three device which I named brwsr_macbook, ipad_jee and iphone_13_jee. Depeding on the device I use, Iā€™m able to select it to play the radio stations.

In the frontend Iā€™ve create cards for this and this is the code I use:

type: vertical-stack
cards:
  - type: entities
    entities:
      - entity: input_select.radio_je
  - type: conditional
    conditions:
      - condition: state
        entity: input_select.radio_je
        state: Browser Macbook
    card:
      type: custom:mini-media-player
      entity: media_player.brwsr_macbook
      icon: mdi:speaker
      artwork: cover
      artwork_border: true
      power_color: true
      scroll_info: true
      show_source: true
      volume_stateless: false
      group: true
  - type: conditional
    conditions:
      - condition: state
        entity: input_select.radio_je
        state: Iphone Jan
    card:
      type: custom:mini-media-player
      entity: media_player.iphone_13_jee
      icon: mdi:speaker
      artwork: cover
      artwork_border: true
      power_color: true
      scroll_info: true
      show_source: true
      volume_stateless: false
      group: true
  - type: conditional
    conditions:
      - condition: state
        entity: input_select.radio_je
        state: Ipad Jee
    card:
      type: custom:mini-media-player
      entity: media_player.ipad_jee
      icon: mdi:speaker
      artwork: cover
      artwork_border: true
      power_color: true
      scroll_info: true
      show_source: true
      volume_stateless: false
      group: true
  - square: false
    type: grid
    cards:
      - name: NPO 1
        type: custom:button-card
        show_entity_picture: true
        entity_picture: https://www.nporadio1.nl/svg/npo_radio1_logo.svg
        tap_action:
          action: call-service
          service: media_player.play_media
          service_data:
            media_content_id: http://icecast.omroep.nl/radio1-bb-mp3
            media_content_type: audio/mpeg
            entity_id: |
              [[[
                var player = states["input_select.radio_je"].state;
                if ([player] == 'Browser Macbook') return 'media_player.brwsr_macbook';
                if ([player] == 'Iphone Jan') return 'media_player.iphone_13_jee';
                if ([player] == 'Ipad Jee') return 'media_player.ipad_jee';
              ]]]
      - name: NPO 2
        type: custom:button-card
        show_entity_picture: true
        entity_picture: https://www.nporadio2.nl/svg/npo_radio2_logo.svg
        tap_action:
          action: call-service
          service: media_player.play_media
          service_data:
            media_content_id: http://icecast.omroep.nl/radio2-bb-mp3
            media_content_type: audio/mpeg
            entity_id: |
              [[[
                var player = states["input_select.radio_je"].state;
                if ([player] == 'Browser Macbook') return 'media_player.brwsr_macbook';
                if ([player] == 'Iphone Jan') return 'media_player.iphone_13_jee';
                if ([player] == 'Ipad Jee') return 'media_player.ipad_jee';
              ]]]
      - name: NPO 3
        type: custom:button-card
        show_entity_picture: true
        entity_picture: https://www.npo3fm.nl/svg/npo_3fm_logo.svg
        tap_action:
          action: call-service
          service: media_player.play_media
          service_data:
            media_content_id: http://icecast.omroep.nl/3fm-bb-mp3
            media_content_type: audio/mpeg
            entity_id: |
              [[[
                var player = states["input_select.radio_je"].state;
                if ([player] == 'Browser Macbook') return 'media_player.brwsr_macbook';
                if ([player] == 'Iphone Jan') return 'media_player.iphone_13_jee';
                if ([player] == 'Ipad Jee') return 'media_player.ipad_jee';
              ]]]
      - name: NPO 4 klassiek
        type: custom:button-card
        show_entity_picture: true
        entity_picture: https://www.nporadio4.nl/svg/npo-klassiek-logo.svg
        tap_action:
          action: call-service
          service: media_player.play_media
          service_data:
            media_content_id: http://icecast.omroep.nl/radio4-bb-mp3
            media_content_type: audio/mpeg
            entity_id: |
              [[[
                var player = states["input_select.radio_je"].state;
                if ([player] == 'Browser Macbook') return 'media_player.brwsr_macbook';
                if ([player] == 'Iphone Jan') return 'media_player.iphone_13_jee';
                if ([player] == 'Ipad Jee') return 'media_player.ipad_jee';
              ]]]
      - name: NPO 5
        type: custom:button-card
        show_entity_picture: true
        entity_picture: https://www.nporadio5.nl/svg/npo_radio5_logo.svg
        tap_action:
          action: call-service
          service: media_player.play_media
          service_data:
            media_content_id: https://icecast.omroep.nl/radio5-bb-mp3
            media_content_type: audio/mpeg
            entity_id: |
              [[[
                var player = states["input_select.radio_je"].state;
                if ([player] == 'Browser Macbook') return 'media_player.brwsr_macbook';
                if ([player] == 'Iphone Jan') return 'media_player.iphone_13_jee';
                if ([player] == 'Ipad Jee') return 'media_player.ipad_jee';
              ]]]
      - name: CZ
        type: custom:button-card
        show_entity_picture: true
        entity_picture: >-
          https://www.concertzender.nl/wp-content/uploads/2016/12/CZ-logo-algemeen_D.gif
        tap_action:
          action: call-service
          service: media_player.play_media
          service_data:
            media_content_id: http://streams.greenhost.nl:8080/klassiek
            media_content_type: audio/mpeg
            entity_id: |
              [[[
                var player = states["input_select.radio_je"].state;
                if ([player] == 'Browser Macbook') return 'media_player.brwsr_macbook';
                if ([player] == 'Iphone Jan') return 'media_player.iphone_13_jee';
                if ([player] == 'Ipad Jee') return 'media_player.ipad_jee';
              ]]]
      - name: GDZB
        type: custom:button-card
        show_entity_picture: true
        entity_picture: >-
          https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRyGVlusKpxzHZ6EAQRaFX5MHiYqVGjkeC3Ww&usqp=CAU
        tap_action:
          action: call-service
          service: media_player.play_media
          service_data:
            media_content_id: http://streams.greenhost.nl:8080/bach
            media_content_type: audio/mpeg
            entity_id: |
              [[[
                var player = states["input_select.radio_je"].state;
                if ([player] == 'Browser Macbook') return 'media_player.brwsr_macbook';
                if ([player] == 'Iphone Jan') return 'media_player.iphone_13_jee';
                if ([player] == 'Ipad Jee') return 'media_player.ipad_jee';
              ]]]
      - name: R10 60's&70's Hits
        type: custom:button-card
        show_entity_picture: true
        entity_picture: >-
          https://ctfimages.talparad.io/7h8JG6sZK773A3hlCe7RdA/18e9e8f1e4e7ef76965338fd3162b1ce/60-s_-_70-s_512x512.jpg
        tap_action:
          action: call-service
          service: media_player.play_media
          service_data:
            media_content_id: http://25243.live.streamtheworld.com:3690/TLPSTR18_SC
            media_content_type: audio/mpeg
            entity_id: |
              [[[
                var player = states["input_select.radio_je"].state;
                if ([player] == 'Browser Macbook') return 'media_player.brwsr_macbook';
                if ([player] == 'Iphone Jan') return 'media_player.iphone_13_jee';
                if ([player] == 'Ipad Jee') return 'media_player.ipad_jee';
              ]]]
    columns: 4

3 Likes

Indeed, this code in Developer tools pointing to an Amazon Alexa Echo Dot (media_player.office) does not work :crying_cat_face:
It works if I replace the entity_id by a Google speaker though (media_player.google_nest_mini_salon)

service: media_player.play_media
data:
  media_content_id: media-source://radio_browser/96126f56-0601-11e8-ae97-52543be04c81
  media_content_type: audio/mpeg
  enqueue: replace
target:
  entity_id: media_player.office

Am I wrong or the ā€œbig Pick Media + buttonā€ is not available anymore? Iā€™m running 2024.4.2 and do not have any hint in the selection of a radio statio through the automations UI. Nor by using the service media_player.play_media (which is the only one suggested by the UI):

Neither by using the service media_player.media_play (which I had to write in YAML and then go back to UI mode, otherwise is not suggested)

Also, i cannot figure out how to retrieve the ID of a station in case i want to write the automation manually

Hard to tell what youā€™re doing in your ui as itā€™s not in English. However finding the id is dealt with in the thread. Please read it.

I read it, forgot to mention thet playing the radio on the browser does not changes the url so i donā€™t see it.
Also, yes the screenshot are not in english but i wrote the corresponding service iā€™m using and itā€™s clear there is no list available with the channels

So what do you see in the attributes in developer tools/states when you play the desired station. Radio Browser - how to use? - #13 by nickrout

Not an URL like the one the others are having:

If i try to use it on a media_player.play_media service on the same device (TV) it works, but not on an echo device, why? I think thatā€™s the same problem as Radio Browser - how to use? - #32 by JeromeO

But again, leaving the echo device problem away, shouldnā€™t i see a list on the UI automation, as the documentation and other people are saying?

Which of these integrations is it? Integrations - Home Assistant

What you see in the UI depends on the ability of the media player.

How do you find the stations you want to listen to?
There are about 8 million stations listed, but no search function by call letters, or city or even frequency?

:slight_smile:

Use the web browser.

I have the Web Browser open in the Media Tab in HA
Itā€™s sorted by Popular, Category, Language, and then all the country flags.
If I click on the United States flag then it presents EVERY station in the USA. Thousands of them.

How do I find KJJR AM 880 or FM 107.9 in the Flathead Valley Montana?

Itā€™s not sorted by call letters or city, the stations donā€™t appear to be sorted alphabetically

Top line of the USA folder

EXA FM: POP | 90.7 FM KWMU-1 | iHeart Radio CafƩ | KHSU 90.5FM | KTLR The Light

What is that sorting Scheme?
How do I find the stations I want?
Where is the search box for me to enter ā€œKJJRā€ or ā€œ880ā€?
Ctrl - F doesnā€™t work.
Just scroll down through the thousands of stations and hope I find it?
I also donā€™t see a favorites function. Or a way to create the list of the stations Iā€™m interested in.

Sorry I meant the radiobrowser website https://www.radio-browser.info/.

However I looked after I posted and it seems to have changed. You used to be able to search and get ready to use results. But they seem to have changed it.

https://radiolise.gitlab.io/ makes it easier to find a station, and provides a stream link.

2 Likes

Also just found how to find a station on radio-browser.info

Type your search in the search box in the drop-down menu

1 Like

Thanks for the help. Sorry if i was getting a bit frustrated.

Fair enough, the implementation is very frustrating.

There are many apps, websites etc that you can use with radio browser, and they all have search, local, popular, favorites and similar facilities, why the developer couldnā€™t have put some of that info HA is a mystery. It is such a jumble.