Last active
August 13, 2021 15:14
-
-
Save TheGroundZero/d01a94ed1d5fa6a752d0bb11510f4c7d to your computer and use it in GitHub Desktop.
Webradio player for Home Assistant, with dropdown list and input field
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Requirements | |
# - Media extractor integration - https://www.home-assistant.io/integrations/media_extractor/ | |
# - Mini media player (HACS) - https://github.com/kalkih/mini-media-player | |
# - A smart speaker, e.g. Xiaomi Mi Smart Speaker - https://s.click.aliexpress.com/e/_A0zLJq | |
# - Some URLs for web radio stations | |
# - (optional) Images/logos of the radio stations | |
# configuration.yaml | |
# ------------------ | |
homeassistant: | |
packages: !include_dir_merge_named packages/ | |
media_extractor: | |
# Lovelace dashboard | |
# ------------------- | |
type: vertical-stack | |
cards: | |
- type: custom:mini-media-player | |
group: false | |
artwork: cover | |
source: full | |
sound_mode: full | |
info: short | |
name: Living Room | |
idle_view: | |
when_idle: true | |
entity: media_player.livingroom | |
- type: entities | |
entities: | |
- entity: input_select.radio_station | |
name: station | |
- entity: script.play_radio | |
tap_action: | |
action: call-service | |
service: script.turn_on | |
service_data: | |
entity_id: script.play_radio | |
- type: entities | |
entities: | |
- entity: input_text.url | |
name: URL | |
- entity: script.play_media_url | |
tap_action: | |
action: call-service | |
service: script.turn_on | |
service_data: | |
entity_id: script.play_media_url | |
icon: mdi:play | |
# Images | |
# -------- | |
# If you want the logos of the webradio stations to be displayed in the mini media player card | |
# put them in a subfolder of the /config/www/ folder, which is referenced as /local/ in the URL. | |
# /config/packages/mediaplayers/webradio.yaml | |
# -------------------------------------------- | |
--- | |
# Play webradio on smart speaker(s) | |
# | |
# Based on https://community.home-assistant.io/t/chromecast-radio-with-station-and-player-selection/12732 | |
# | |
# https://www.home-assistant.io/integrations/media_player | |
# https://www.home-assistant.io/integrations/input_select/ | |
# | |
webradio: | |
script: | |
play_radio: | |
alias: Play radio | |
icon: mdi:play | |
description: Play web radio on Chromecast | |
mode: restart | |
sequence: | |
- service: media_player.volume_set | |
data: | |
entity_id: media_player.livingroom | |
volume_level: 0.10 | |
- service: media_player.play_media | |
data: | |
entity_id: media_player.livingroom | |
media_content_type: music | |
media_content_id: > | |
{%- set station = states('input_select.radio_station') -%} | |
{% if station == "VRT Radio 1" %} http://icecast.vrtcdn.be/radio1-high.mp3 | |
{% elif station == "VRT Radio 1 - Classics" %} http://icecast.vrtcdn.be/radio1_classics-high.mp3 | |
{% elif station == "VRT Radio 1 - De LageLandenLijst" %} http://icecast.vrtcdn.be/radio1_lagelanden-high.mp3 | |
{% elif station == "VRT Radio 2 Bene Bene" %} http://icecast.vrtcdn.be/radio2_benebene-high.mp3 | |
{% elif station == "VRT Radio 2 West-Vlaanderen" %} http://icecast.vrtcdn.be/ra2wvl-high.mp3 | |
{% elif station == "VRT Radio 2 Unwind" %} http://icecast.vrtcdn.be/radio2_unwind-high.mp3 | |
{% elif station == "VRT Studio Brussel" %} http://icecast.vrtcdn.be/stubru-high.mp3 | |
{% elif station == "VRT Studio Brussel - Bruut" %} http://icecast.vrtcdn.be/stubru_bruut-high.mp3 | |
{% elif station == "VRT Studio Brussel - Hooray" %} http://icecast.vrtcdn.be/stubru_hiphophooray-high.mp3 | |
{% elif station == "VRT Studio Brussel - De Tijdloze" %} http://icecast.vrtcdn.be/stubru_tijdloze-high.mp3 | |
{% elif station == "VRT Studio Brussel - #ikluisterbelgisch" %} http://icecast.vrtcdn.be/stubru_tgs-high.mp3 | |
{% elif station == "VRT Studio Brussel UNTZ" %} http://icecast.vrtcdn.be/stubru_untz-high.mp3 | |
{% elif station == "VRT MNM" %} http://icecast.vrtcdn.be/mnm-high.mp3 | |
{% elif station == "VRT MNM R&Beats" %} http://icecast.vrtcdn.be/mnm_urb-high.mp3 | |
{% elif station == "VRT MNM Hits" %} http://icecast.vrtcdn.be/mnm_hits-high.mp3 | |
{% elif station == "VRT MNM 90's & 00's" %} http://icecast.vrtcdn.be/mnm_90s00s-high.mp3 | |
{% elif station == "VRT Ketnet Hits" %} http://icecast.vrtcdn.be/ketnetradio-high.mp3 | |
{% elif station == "VRT NWS" %} http://progressive-audio.lwc.vrtcdn.be/content/fixed/11_11niws-snip_hi.mp3 | |
{% elif station == "Topradio" %} https://str.topradio.be/topradio.mp3 | |
{% elif station == "Qmusic" %} https://21293.live.streamtheworld.com/QMUSIC.mp3 | |
{% elif station == "VBRO" %} https://radiohuis.com/VBRO | |
{% elif station == "Willy Radio" %} http://20723.live.streamtheworld.com/WILLY.mp3 | |
{% endif %} | |
extra: | |
thumb: > | |
{%- set station = states('input_select.radio_station') -%} | |
{% if 'Studio Brussel' in station %} https://<my_homeassistant>/local/img/logo/logo_stubru.svg | |
{% elif 'MNM' in station %} https://<my_homeassistant>/local/img/logo/logo_mnm.svg | |
{% elif 'NWS' in station %} https://<my_homeassistant>/local/img/logo/logo_vrtnws.svg | |
{% elif station[:3] == "VRT" %} https://<my_homeassistant>/local/img/logo/logo_vrt.svg | |
{% elif station == "Topradio" %} https://<my_homeassistant>/local/img/logo/logo_topradio.svg | |
{% elif station == "Qmusic" %} https://<my_homeassistant>/local/img/logo/logo_qmusic.svg | |
{% elif station == "VBRO" %} https://<my_homeassistant>/local/img/logo/logo_vbro.png | |
{% elif station == "Willy Radio" %} https://<my_homeassistant>/local/img/logo/logo_willy.svg | |
{% endif %} | |
stream_type: LIVE | |
play_media_url: | |
alias: Play media from URL | |
mode: single | |
icon: mdi:music-box-multiple-outline | |
sequence: | |
- service: media_player.media_stop | |
target: | |
entity_id: media_player.livingroom | |
- service: media_player.volume_set | |
data: | |
entity_id: media_player.livingroom | |
volume_level: 0.10 | |
- service: media_extractor.play_media | |
data: | |
media_content_type: MUSIC | |
media_content_id: "{{ states('input_text.url') }}" | |
target: | |
entity_id: media_player.livingroom | |
input_text: | |
url: | |
name: URL | |
min: 10 | |
max: 255 | |
icon: mdi:web | |
mode: text | |
input_select: | |
radio_station: | |
name: 'Kies radiostation' | |
icon: mdi:radio | |
initial: VRT Studio Brussel | |
options: | |
- VRT Radio 1 | |
- VRT Radio 1 - Classics | |
- VRT Radio 1 - De LageLandenLijst | |
- VRT Radio 2 Bene Bene | |
- VRT Radio 2 West-Vlaanderen | |
- VRT Radio 2 Unwind | |
- VRT Studio Brussel | |
- VRT Studio Brussel - Bruut | |
- VRT Studio Brussel - Hooray | |
- VRT Studio Brussel - De Tijdloze | |
- "VRT Studio Brussel - #ikluisterbelgisch" | |
- VRT Studio Brussel UNTZ | |
- VRT MNM | |
- VRT MNM R&Beats | |
- VRT MNM Hits | |
- VRT MNM 90's & 00's | |
- VRT Ketnet Hits | |
- VRT NWS | |
- Topradio | |
- Qmusic | |
- Topradio | |
- VBRO | |
- Willy Radio |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment