PageSourceSearch

https://dial-station-stream.radio-retro.workers.dev/assets/index-CNT0ZbmL.js

js dial-station-stream.radio-retro.workers.dev collected 2026-10-03 08:07:02 UTC 79,864 bytes, 1 lines download raw bytes

1import{r as l,j as e,_ as $}from"./index-BVhZ3TlH.js";const w="https://a.files.bbci.co.uk/ms6/live/3441A116-B12E-4D2F-ACA8-C1984642FA4B/audio/simulcast/dash/nonuk/pc_hd_abr_v2/aks",W=[{frequency:88.8,name:"BBC Radio 2",streamUrl:`${w}/bbc_radio_two.mpd`,streamType:"dash"},{frequency:91.3,name:"BBC Radio 3",streamUrl:`${w}/bbc_radio_three.mpd`,streamType:"dash"},{frequency:93.5,name:"BBC Radio 4",streamUrl:`${w}/bbc_radio_fourfm.mpd`,streamType:"dash"},{frequency:94.9,name:"BBC Radio London",streamUrl:`${w}/bbc_london.mpd`,streamType:"dash"},{frequency:95.8,name:"Capital London",streamUrl:"https://media-ssl.musicradio.com/CapitalMP3"},{frequency:96.9,name:"Capital XTRA",streamUrl:"https://media-ssl.musicradio.com/CapitalXTRANationalMP3",fallbackUrls:["http://media-the.musicradio.com/CapitalXTRALondonMP3","https://media-ice.musicradio.com/CapitalXTRAReloadedMP3"]},{frequency:97.3,name:"LBC",streamUrl:"https://media-ssl.musicradio.com/LBCUK",fallbackUrls:["http://media-ice.musicradio.com/LBCUK","http://media-sov.musicradio.com/LBC973MP3Low"]},{frequency:98.5,name:"BBC Radio 1",streamUrl:`${w}/bbc_radio_one.mpd`,streamType:"dash"},{frequency:100,name:"Kiss FM",streamUrl:"https://stream-mz.planetradio.co.uk/kissnational.mp3",cors:!1},{frequency:100.9,name:"Classic FM",streamUrl:"https://media-ssl.musicradio.com/ClassicFMMP3",fallbackUrls:["http://ice-the.musicradio.com/ClassicFMMP3","https://media-ice.musicradio.com/ClassicFMCalmMP3"]},{frequency:102.2,name:"Smooth Radio London",streamUrl:"https://media-ssl.musicradio.com/SmoothLondonMP3",fallbackUrls:["http://media-the.musicradio.com/SmoothLondonMP3"]},{frequency:104.9,name:"Radio X",streamUrl:"https://media-ssl.musicradio.com/RadioXLondonMP3",fallbackUrls:["http://media-the.musicradio.com/RadioXUK","https://media-ice.musicradio.com/RadioXClassicRockMP3"]},{frequency:105.4,name:"Magic FM",streamUrl:"https://stream-mz.hellorayo.co.uk/magicnational.mp3?direct=true&aw_0_1st.playerid=BMUK_TuneIn&aw_0_1st.skey=7374499933&stationCode=mag",cors:!1,fallbackUrls:["http://edge-bauermz-01-gos2.sharp-stream.com/magic1054.mp3?aw_0_1st.skey=1657298076"]},{frequency:105.8,name:"Virgin Radio UK",streamUrl:"https://radio.virginradio.co.uk/stream",cors:!1,fallbackUrls:["https://virgin.live.stream.broadcasting.news/stream","http://radio.virginradio.co.uk/stream"]},{frequency:106.2,name:"Heart London",streamUrl:"https://media-ssl.musicradio.com/HeartLondonMP3",fallbackUrls:["http://ice-sov.musicradio.com/HeartLondonMP3","http://media-ice.musicradio.com/HeartLondon"]}],G=[{frequency:87.8,name:"France Inter",streamUrl:"https://icecast.radiofrance.fr/franceinter-hifi.aac",cors:!1,fallbackUrls:["https://stream.radiofrance.fr/franceinter/franceinter_hifi.m3u8?id=radiofrance","http://direct.franceinter.fr/live/franceinter-hifi.aac"]},{frequency:89.9,name:"TSF Jazz",streamUrl:"https://tsfjazz.ice.infomaniak.ch/tsfjazz-high.mp3",cors:!1,fallbackUrls:["http://tsfjazz.ice.infomaniak.ch/tsfjazz-high.mp3"]},{frequency:91.7,name:"France Musique",streamUrl:"https://icecast.radiofrance.fr/francemusique-hifi.aac",cors:!1,fallbackUrls:["http://icecast.radiofrance.fr/francemusique-hifi.aac","http://icecast.radiofrance.fr/francemusiquebaroque-hifi.aac"]},{frequency:93.5,name:"France Culture",streamUrl:"https://icecast.radiofrance.fr/franceculture-hifi.aac",cors:!1,fallbackUrls:["http://icecast.radiofrance.fr/franceculture-hifi.aac","https://stream.radiofrance.fr/franceculture/franceculture_hifi.m3u8"]},{frequency:96,name:"Skyrock",streamUrl:"https://icecast.skyrock.net/s/natio_mp3_128k",cors:!1,fallbackUrls:["http://icecast.skyrock.net/s/natio_mp3_128k","https://icecast.skyrock.net/s/klassiks_aac_64k?tvr_name=radiofr&tvr_section1=64aac"]},{frequency:96.4,name:"RFM",streamUrl:"https://rfm.lmn.fm/rfm.mp3",cors:!1,fallbackUrls:["http://stream.rfm.fr/rfm.mp3","https://stream.rfm.fr/rfm-wr10.aac"]},{frequency:97.4,name:"Rire & Chansons",streamUrl:"https://rireetchansons.lmn.fm/rireetchansons.mp3",cors:!1},{frequency:100.3,name:"NRJ",streamUrl:"https://scdn.nrjaudio.fm/adwz1/fr/30001/mp3_128.mp3",cors:!1,fallbackUrls:["https://streaming.nrjaudio.fm/ou7xugf3s5gi?origine=playernrj&aw_0_req.userConsentV2=&aw_0_1st.station=NRJ-Hits","https://streaming.nrjaudio.fm/oumrck8fnozc"]},{frequency:101.1,name:"Radio Classique",streamUrl:"https://radioclassique.ice.infomaniak.ch/radioclassique-high.mp3",cors:!1,fallbackUrls:["https://str0.creacast.com/classique1","https://iaradioclassique.ice.infomaniak.ch/iaradioclassique-128.mp3"]},{frequency:102.3,name:"Ouï FM",streamUrl:"https://ouifm.ice.infomaniak.ch/ouifm-high.mp3",cors:!1,fallbackUrls:["https://ouifmrock80s.ice.infomaniak.ch/ouifmeighties.mp3","https://ouifm3.ice.infomaniak.ch/ouifm3.mp3"]},{frequency:104.3,name:"RTL",streamUrl:"https://streaming.radio.rtl.fr/rtl-1-44-128",cors:!1,fallbackUrls:["https://live.m6radio.quortex.io/webM89Hc99XApzgfhXNX8ASN5/grouprtl/national/short/audio-64000/index.m3u8","http://streamer-02.rtl.fr/rtl2-1-44-128"]},{frequency:105.5,name:"France Info",streamUrl:"https://icecast.radiofrance.fr/franceinfo-hifi.aac",cors:!1,fallbackUrls:["http://direct.franceinfo.fr/live/franceinfo-m
1idfi.mp3","http://icecast.radiofrance.fr/franceinfo-hifi.aac"]},{frequency:105.9,name:"Mouv'",streamUrl:"https://icecast.radiofrance.fr/mouv-hifi.aac",cors:!1,fallbackUrls:["http://icecast.radiofrance.fr/mouv-hifi.aac","http://direct.mouv.fr/live/mouv-midfi.mp3"]}],Y=[{frequency:88.1,name:"BBC Radio 2",streamUrl:`${w}/bbc_radio_two.mpd`,streamType:"dash"},{frequency:90.3,name:"BBC Radio 3",streamUrl:`${w}/bbc_radio_three.mpd`,streamType:"dash"},{frequency:92.5,name:"BBC Radio 4",streamUrl:`${w}/bbc_radio_fourfm.mpd`,streamType:"dash"},{frequency:95.8,name:"BBC Radio 1",streamUrl:`${w}/bbc_radio_one.mpd`,streamType:"dash"},{frequency:96.4,name:"Greatest Hits Radio Surrey & Sussex",streamUrl:"https://stream-mz.planetradio.co.uk/ghr-surreysussex.mp3",cors:!1,fallbackUrls:["https://stream-mz.planetradio.co.uk/ghr.mp3","https://stream-mz.hellorayo.co.uk/ghr-surreysussex.mp3"]},{frequency:100,name:"Kiss",streamUrl:"https://stream-mz.planetradio.co.uk/kissnational.mp3",cors:!1},{frequency:100.9,name:"Classic FM",streamUrl:"https://media-ssl.musicradio.com/ClassicFMMP3",cors:!1,fallbackUrls:["http://ice-the.musicradio.com/ClassicFMMP3"]},{frequency:102.4,name:"Smooth Radio",streamUrl:"https://media-ssl.musicradio.com/SmoothUKMP3",cors:!1,fallbackUrls:["https://media-ssl.musicradio.com/SmoothLondonMP3","http://media-the.musicradio.com/SmoothLondonMP3"]},{frequency:103.4,name:"Heart Surrey",streamUrl:"https://media-ssl.musicradio.com/HeartUKMP3",cors:!1,fallbackUrls:["https://media-ssl.musicradio.com/HeartLondonMP3","http://media-ice.musicradio.com/HeartLondon"]},{frequency:104.6,name:"BBC Radio Surrey",streamUrl:`${w}/bbc_radio_surrey.mpd`,streamType:"dash"},{frequency:105.8,name:"Virgin Radio UK",streamUrl:"https://radio.virginradio.co.uk/stream",cors:!1,fallbackUrls:["http://radio.virginradio.co.uk/stream"]},{frequency:106.4,name:"Capital South",streamUrl:"https://media-ssl.musicradio.com/CapitalMP3",cors:!1,fallbackUrls:["http://media-the.musicradio.com/CapitalMP3"]},{frequency:107,name:"Radio X",streamUrl:"https://media-ssl.musicradio.com/RadioXLondonMP3",cors:!1,fallbackUrls:["https://media-ssl.musicradio.com/RadioXUKMP3","http://media-the.musicradio.com/RadioXUK"]}],X=[{frequency:89.5,name:"Petőfi Rádió",streamUrl:"https://icast.connectmedia.hu/4738/mr2.mp3",cors:!1,fallbackUrls:["http://mr-stream.mediaconnect.hu/4737/mr2.aac","https://mr-stream.connectmedia.hu/4738/mr2.mp3"]},{frequency:92.1,name:"Music FM",streamUrl:"https://icast.connectmedia.hu/5001/live.mp3",cors:!1},{frequency:94.8,name:"Jazzy Rádió",streamUrl:"https://stream.jazzy.hu/jazzy.mp3",cors:!1},{frequency:95.8,name:"Karc FM",streamUrl:"https://stream.karcfm.hu/karc.mp3",cors:!1},{frequency:98.6,name:"Rádió 1",streamUrl:"https://icast.connectmedia.hu/5202/live.mp3",cors:!1,fallbackUrls:["https://icast.connectmedia.hu/5201/live.mp3","http://icast.connectmedia.hu/5201/live.mp3"]},{frequency:99.5,name:"Kossuth Rádió",streamUrl:"https://icast.connectmedia.hu/4738/mr1.mp3",cors:!1,fallbackUrls:["http://mr-stream.mediaconnect.hu/4734/mr1.aac","https://mr-stream.connectmedia.hu/4736/mr1.mp3"]},{frequency:100.8,name:"Retro Rádió",streamUrl:"https://icast.connectmedia.hu/5001/retro.mp3",cors:!1,fallbackUrls:["https://icast.connectmedia.hu/5001/live.mp3"]},{frequency:103.9,name:"Best FM",streamUrl:"https://stream.bestfm.hu/best.mp3",cors:!1,fallbackUrls:["http://stream.webthings.hu:8000/fm95-x-128.mp3","https://icast.connectmedia.hu/5101/live.mp3/;"]},{frequency:105.9,name:"Bartók Rádió",streamUrl:"https://icast.connectmedia.hu/4738/mr3.mp3",cors:!1,fallbackUrls:["http://mr-stream.mediaconnect.hu/4742/mr3hq.mp3","https://mr-stream.connectmedia.hu/4741/mr3.mp3"]}],c="https://live-radio01.mediahubaustralia.com",J=[{frequency:92.9,name:"ABC Classic FM",streamUrl:`${c}/2FCW/mp3/`,cors:!1},{frequency:96.9,name:"Nova 96.9",streamUrl:"https://playerservices.streamtheworld.com/api/livestream-redirect/NOVA_969_SC",cors:!1},{frequency:100.9,name:"ABC Sydney",streamUrl:`${c}/2LRW/mp3/`,cors:!1},{frequency:101.7,name:"WSFM 101.7",streamUrl:"https://ais-arn.streamguys1.com/au_002_icy",cors:!1,fallbackUrls:["https://playerservices.streamtheworld.com/api/livestream-redirect/ARN_WSF
1M.mp3"]},{frequency:103.2,name:"ABC NewsRadio",streamUrl:`${c}/2PNN/mp3/`,cors:!1},{frequency:104.9,name:"ABC Radio National",streamUrl:`${c}/2RNW/mp3/`,cors:!1},{frequency:105.7,name:"Triple J",streamUrl:`${c}/2TJW/mp3/`,cors:!1},{frequency:106.5,name:"KIIS 106.5",streamUrl:"https://playerservices.streamtheworld.com/api/livestream-redirect/ARN_KIIS1065.mp3",cors:!1}],Z=[{frequency:93.1,name:"ABC Radio National",streamUrl:`${c}/2RNW/mp3/`,cors:!1},{frequency:97.3,name:"ABC Melbourne",streamUrl:`${c}/3LRW/mp3/`,cors:!1},{frequency:100.7,name:"ABC NewsRadio",streamUrl:`${c}/2PNN/mp3/`,cors:!1},{frequency:101.1,name:"KIIS 101.1",streamUrl:"https://playerservices.streamtheworld.com/api/livestream-redirect/ARN_KIIS1011.mp3",cors:!1},{frequency:103.5,name:"Double J",streamUrl:`${c}/2DDW/mp3/`,cors:!1},{frequency:104.3,name:"Gold 104.3",streamUrl:"https://playerservices.streamtheworld.com/api/livestream-redirect/ARN_GOLD1043AAC.aac",cors:!1},{frequency:105.9,name:"ABC Classic FM",streamUrl:`${c}/2FCW/mp3/`,cors:!1},{frequency:107.5,name:"Triple J",streamUrl:`${c}/2TJW/mp3/`,cors:!1}],Q=[{frequency:92.5,name:"ABC NewsRadio",streamUrl:`${c}/2PNN/mp3/`,cors:!1},{frequency:94.9,name:"ABC Brisbane",streamUrl:`${c}/4LRW/mp3/`,cors:!1},{frequency:97.3,name:"KIIS 97.3",streamUrl:"https://playerservices.streamtheworld.com/api/livestream-redirect/ARN_973FMAAC.aac",cors:!1},{frequency:100.5,name:"ABC Radio National",streamUrl:`${c}/2RNW/mp3/`,cors:!1},{frequency:103.7,name:"Double J",streamUrl:`${c}/2DDW/mp3/`,cors:!1},{frequency:106.1,name:"ABC Classic FM",streamUrl:`${c}/2FCW/mp3/`,cors:!1},{frequency:106.9,name:"Nova 106.9",streamUrl:"https://playerservices.streamtheworld.com/api/livestream-redirect/NOVA_1069.mp3",cors:!1},{frequency:107.7,name:"Triple J",streamUrl:`${c}/2TJW/mp3/`,cors:!1}],ee=[{frequency:91.3,name:"ABC NewsRadio",streamUrl:`${c}/2PNN/mp3/`,cors:!1},{frequency:93.7,name:"Nova 93.7",streamUrl:"https://playerservices.streamtheworld.com/api/livestream-redirect/NOVA_937_AAC128.aac",cors:!1},{frequency:96.1,name:"96FM",streamUrl:"https://playerservices.streamtheworld.com/api/livestream-redirect/ARN_96FM.mp3",cors:!1},{frequency:97.7,name:"ABC Classic FM",streamUrl:`${c}/2FCW/mp3/`,cors:!1},{frequency:99.3,name:"Triple J",streamUrl:`${c}/2TJW/mp3/`,cors:!1},{frequency:100.9,name:"ABC Perth",streamUrl:`${c}/6LRW/mp3/`,cors:!1},{frequency:102.9,name:"ABC Radio National",streamUrl:`${c}/2RNW/mp3/`,cors:!1},{frequency:105.7,name:"Double J",streamUrl:`${c}/2DDW/mp3/`,cors:!1}],ae=[{frequency:91.9,name:"Nova 91.9",streamUrl:"https://playerservices.streamtheworld.com/api/livestream-redirect/NOVA_919_AAC48.aac",cors:!1},{frequency:96.1,name:"ABC NewsRadio",streamUrl:`${c}/2PNN/mp3/`,cors:!1},{frequency:99.9,name:"ABC Adelaide",streamUrl:`${c}/5LRW/mp3/`,cors:!1},{frequency:102.3,name:"Mix 102.3",streamUrl:"https://playerservices.streamtheworld.com/api/livestream-redirect/ARN_MIX1023.mp3",cors:!1},{frequency:103.9,name:"ABC Classic FM",streamUrl:`${c}/2FCW/mp3/`,cors:!1},{frequency:105.5,name:"Triple J",streamUrl:`${c}/2TJW/mp3/`,cors:!1},{frequency:107.1,name:"Double J",streamUrl:`${c}/2DDW/mp3/`,cors:!1},{frequency:107.9,name:"ABC Radio National",streamUrl:`${c}/2RNW/mp3/`,cors:!1}],re=[{frequency:87.9,name:"Klassik Radio",streamUrl:"https://stream.klassikradio.de/live/mp3-192/",cors:!1,fallbackUrls:["https://live.streams.klassikradio.de/klassikradio-deutschland/stream/mp3","https://live.streams.klassikradio.de/klassikradio-movie"]},{frequency:89.6,name:"Radio Paradiso",streamUrl:"https://streams.paradiso.de/paradiso.mp3",cors:!1,fallbackUrls:["https://streams.paradiso.de/Berlin/mp3-128/Web/?pkey=web-radioparadiso-de&tcstring=CPXGs4APXGs4AAFADBDECKCgAAAAAAAAAAYgAAAAAAAA.YAAAAAAAAAAA"]},{frequency:91.4,name:"Deutschlandfunk Kultur",streamUrl:"https://st02.sslstream.dlf.de/dlf/02/128/mp3/stream.mp3",cors:!1,fallbackUrls:["https://st02.sslstream.dlf.de/dlf/02/128/mp3/stream.mp3?aggregator=web","https://st02.sslstream.dlf.de/dlf/02/high/aac/stream.aac?aggregator=web"]},{frequency:93.6,name:"Berliner Rundfunk 91.4",streamUrl:"https://stream.berliner-rundfunk.de/brf/mp3-128/",cors:!1,fallbackUrls:["http://stream.berliner-rundfunk.de/brf/mp3-128/internetradio/","https://topradio-de-hz-fal-stream08-cluster01.radiohost.de/brf-oldies_mp3-128?ref=homepage&amsparams=homepage&listenerid=31363231303734323636-37372e32322e36382e3830-3439333932-4d6f7a696c6c612f352e30202857696e646f7773"]},{frequency:95.8,name:"Jam FM",streamUrl:"https://jamfm.hoerradar.de/jamfm-live-mp3-hq",cors:!1,fallbackUrls:["http://stream.jam.fm/jamfm-live/mp3-128/radio-browser.info/","http://stream.jam.fm/jamfm-bl/mp3-128/radio-browser.info/"]},{frequency:97.7,name:"rbb 88.8",streamUrl:"https://rbb-888-live.sslcast.addradio.de/rbb/888/live/mp3/128/stream.mp3",cors:!1,fallbackUrls:["http://dispat
1cher.rndfnk.com/rbb/rbb888/live/mp3/mid"]},{frequency:100.6,name:"Flux FM",streamUrl:"https://streams.fluxfm.de/live/mp3-320/",cors:!1,fallbackUrls:["https://fluxfm.streamabc.net/flx-fluxfmberlin-mp3-128-5859035?sABC=69n71170%230%23759014699s404754o2p8p1q4q62r578p%23nhqvb&aw_0_1st.playerid=audio&amsparams=playerid:audio;skey:1772556656","http://streams.fluxfm.de/dubradio/mp3-128/streams.fluxfm.de/"]},{frequency:102.6,name:"Energy Berlin",streamUrl:"https://scdn.nrjaudio.fm/adwz1/de/33001/mp3_128.mp3",cors:!1,fallbackUrls:["http://nrj.de/berlin"]},{frequency:104.6,name:"104.6 RTL",streamUrl:"https://stream.104.6rtl.com/rtl-live/mp3-128/",cors:!1,fallbackUrls:["http://stream.104.6rtl.com/rtl-live/mp3-192/radio-browser.info/","http://rtlberlin.streamabc.net/rtlb-1046rtllive-mp3-192-4947175"]},{frequency:105.5,name:"Spreeradio",streamUrl:"https://stream.spreeradio.de/spree-live/mp3-128/",cors:!1,fallbackUrls:["https://stream.spreeradio.de/spree-live/mp3-128/surfmusikDE/","http://stream.spreeradio.de/spree-80er/mp3-128/radio-browser.info/"]}],se=[{frequency:88.2,name:"Radio Clásica",streamUrl:"https://rne-hls.flumotion.com/playlist/rne/rclasica/playlist.m3u8",cors:!1,fallbackUrls:["https://rtvelivestream.rtve.es/rtvesec/rne/rne_r2_main.m3u8","https://f121.rndfnk.com/star/crtve/rnerc/main/mp3/128/stream.mp3?cid=01GEM633TKTAHEB3GYTNAEZB90&sid=3DJW7d1vUQTr2MlFDR5fBHG2joq&token=cCVkCc78Nf0V3xu63dhQYE5HKMw3WnJ9HKWaNSk-MUQ&tvf=pCEh3arNrBhmMTIxLnJuZGZuay5jb20"]},{frequency:89.7,name:"Cadena Dial",streamUrl:"https://playerservices.streamtheworld.com/api/livestream-redirect/CADENADIALAAC.aac",cors:!1,fallbackUrls:["http://playerservices.streamtheworld.com/api/livestream-redirect/CADENADIAL.mp3","https://playerservices.streamtheworld.com/api/livestream-redirect/DIAL_ASO_MORON.mp3"]},{frequency:91,name:"Rock FM",streamUrl:"https://playerservices.streamtheworld.com/api/livestream-redirect/ROCK_FMAAC.aac",cors:!1,fallbackUrls:["http://flucast31-h-cloud.flumotion.com/cope/rockfm-low.mp3","https://rockfm-cope-rrcast.flumotion.com/cope/rockfm-low.mp3"]},{frequency:93.2,name:"Radio Marca",streamUrl:"https://nsstr1.tikast.com:8000/marcamadrid",cors:!1,fallbackUrls:["https://www.marca.com/radio/geoblock/getSrcApp.php?dial=Nacional&dist=radiomarcaweb","https://playerservices.streamtheworld.com/api/livestream-redirect/RADIOMARCA_NACIONAL_SC"]},{frequency:95.4,name:"Onda Cero Madrid",streamUrl:"https://playerservices.streamtheworld.com/api/livestream-redirect/OCR_MAD_SC",cors:!1,fallbackUrls:["https://atres-live.ondacero.es/live/ondacero/bitrate_1.m3u8"]},{frequency:96.5,name:"Los 40 Principales",streamUrl:"https://playerservices.streamtheworld.com/api/livestream-redirect/LOS40AAC.aac",cors:!1,fallbackUrls:["https://playerservices.streamtheworld.com/api/livestream-redirect/Los40.mp3"]},{frequency:98,name:"Cadena SER Madrid",streamUrl:"https://playerservices.streamtheworld.com/api/livestream-redirect/CADENASER.mp3",cors:!1,fallbackUrls:["https://25453.live.streamtheworld.com/SER_MAS_MADRID_SC"]},{frequency:99.5,name:"Europa FM",streamUrl:"https://playerservices.streamtheworld.com/api/livestream-redirect/EUROPA_FMAAC.aac",cors:!1,fallbackUrls:["https://stream.zeno.fm/se76qau1hc9uv"]},{frequency:101.3,name:"Cadena 100",streamUrl:"https://flucast-b03-04.flumotion.com/cope/cien.mp3",cors:!1,fallbackUrls:["http://cadena100-streamers-mp3.flumotion.com/cope/cadena100.mp3","https://cadena100-cope.flumotion.com/chunks.m3u8"]},{frequency:105.4,name:"M80 Radio",streamUrl:"https://playerservices.streamtheworld.com/api/livestream-redirect/M80AAC.aac",cors:!1}],te=[{frequency:88.1,name:"Rai Radio 3",streamUrl:"https://icestreaming.rai.it/3.mp3",cors:!1,fallbackUrls:["http://icestreaming.rai.it/3.mp3","https://icecdn-19d24861e90342cc8decb03c24c8a419.msvdn.net/icecastRelay/S53422322/bTdUFhYMnnra/icecast"]},{frequency:89.7,name:"Rai Radio 2",streamUrl:"https://icestreaming.rai.it/2.mp3",cors:!1,fallbackUrls:["http://icestreaming.rai.it/2.mp3","http://icecdn-19d24861e90342cc8decb03c24c8a419.msvdn.net/icecastRelay/S35942484/yp5F67151K92/icecast"]},{frequency:91.5,name:"Radio Capital",streamUrl:"https://19543.live.streamtheworld.com/CAPITAL.mp3",cors:!1,fallbackUrls:["https://4c4b867c89244861ac216426883d1ad0.msvdn.net/radiocapital/radiocapital/master_ma.m3u8","https://4c4b867c89244861ac216426883d1ad0.msvdn.net/webradio/capitalmusic/playlist.m3u8"]},{frequency:93.7,name:"RTL 102.5",streamUrl:"https://streamingv2.shoutcast.com/rtl-1025",cors:!1,fallbackUrls:["https://d
1d782ed59e2a4e86aabf6fc508674b59.msvdn.net/live/S97044836/tbbP8T1ZRPBL/playlist_audio.m3u8","https://streamingv2.shoutcast.com/rtl-1025-best"]},{frequency:95.1,name:"Radio Deejay",streamUrl:"https://radiodeejay-lh.akamaihd.net/i/RadioDeejay_Live_1@189857/master.m3u8",cors:!1,fallbackUrls:["http://streamcdnb1-4c4b867c89244861ac216426883d1ad0.msvdn.net/radiodeejay/radiodeejay/play1.m3u8","https://4c4b867c89244861ac216426883d1ad0.msvdn.net/radiodeejay/radiodeejay/master_ma.m3u8"]},{frequency:96.3,name:"Radio Globo",streamUrl:"https://radioglobo.giss.tv/radioglobo",cors:!1,fallbackUrls:["http://178.33.72.12/globorm64","https://globo.newradio.it/globorm64"]},{frequency:99,name:"Rai Radio 1",streamUrl:"https://icestreaming.rai.it/1.mp3",cors:!1,fallbackUrls:["http://icestreaming.rai.it/1.mp3","http://icecdn-19d24861e90342cc8decb03c24c8a419.msvdn.net/icecastRelay/S18493106/rCMKqdMFKPBB/icecast"]},{frequency:101.5,name:"Radio Italia",streamUrl:"https://radioitaliasmi.akamaized.net/hls/live/2093120/RISMI/stream01/streamPlaylist.m3u8",cors:!1,fallbackUrls:["http://icecast.unitedradio.it/Virgin.mp3","https://classichitsradio.streamingmedia.it/play"]},{frequency:102.5,name:"RTL 102.5",streamUrl:"https://streamingv2.shoutcast.com/rtl-1025",cors:!1,fallbackUrls:["https://dd782ed59e2a4e86aabf6fc508674b59.msvdn.net/live/S97044836/tbbP8T1ZRPBL/playlist_audio.m3u8","https://streamingv2.shoutcast.com/rtl-1025-best"]},{frequency:105,name:"Radio 105",streamUrl:"https://icy.unitedradio.it/Radio105.mp3",cors:!1,fallbackUrls:["http://icecast.unitedradio.it/Radio105.mp3","http://icy.unitedradio.it/105Dance90.mp3"]}],le=[{frequency:88,name:"NPO Radio 4",streamUrl:"https://icecast.omroep.nl/radio4-bb-mp3",cors:!1,fallbackUrls:["http://icecast.omroep.nl/radio4-bb-mp3","https://icecast.omroep.nl:80/radio4-bb-mp3"]},{frequency:92.6,name:"NPO Radio 1",streamUrl:"https://icecast.omroep.nl/radio1-bb-mp3",cors:!1,fallbackUrls:["http://icecast.omroep.nl/radio1-bb-mp3","http://icecast.omroep.nl/radio1-sb-aac"]},{frequency:96.8,name:"Radio 538",streamUrl:"https://21253.live.streamtheworld.com/RADIO538.mp3",cors:!1,fallbackUrls:["http://playerservices.streamtheworld.com/api/livestream-redirect/RADIO538.mp3","http://22713.live.streamtheworld.com/TLPSTR21_SC"]},{frequency:100.7,name:"Sky Radio",streamUrl:"https://19993.live.streamtheworld.com/SKYRADIO.mp3",cors:!1,fallbackUrls:["https://www.mp3streams.nl/zender/skyradio/stream/8-mp3-128","http://playerservices.streamtheworld.com/api/livestream-redirect/SKYRADIO.mp3"]},{frequency:101.2,name:"Q-music",streamUrl:"https://stream.qmusic.nl/qmusic/mp3",cors:!1,fallbackUrls:["https://icecast-qmusicnl-cdp.triple-it.nl/Qmusic_nl_live_high.aac?aw_0_1st.playerId=redirect","https://www.mp3streams.nl/zender/qmusic-limburg/stream/49-aac-64"]},{frequency:102.1,name:"Slam!",streamUrl:"https://stream.slam.nl/slam_mp3",cors:!1,fallbackUrls:["http://stream.slam.nl/slam","http://stream.radiocorp.nl/web10_mp3"]},{frequency:103.8,name:"Radio Veronica",streamUrl:"https://20853.live.streamtheworld.com/VERONICA.mp3",cors:!1,fallbackUrls:["http://playerservices.streamtheworld.com/api/livestream-redirect/VERONICAAAC.aac","https://playerservices.streamtheworld.com/api/livestream-redirect/VERONICA"]},{frequency:105.8,name:"100% NL",streamUrl:"https://stream.100p.nl/100pctnl.mp3",cors:!1,fallbackUrls:["http://stream.100p.nl/100pctnl.mp3","https://stream.100p.nl/web02_mp3"]}],ce=[{frequency:89.5,name:"Musiq3",streamUrl:"https://radios.rtbf.be/musiq3-128.mp3",cors:!1,fallbackUrls:["https://radios.rtbf.be/wr-m3-baroque-128.mp3","https://radios.rtbf.be/musiq3-128.aac"]},{frequency:91.2,name:"La Première",streamUrl:"https://radios.rtbf.be/laprem1ere-128.mp3",cors:!1,fallbackUrls:["https://radios.rtbf.be/laprem1ere-64.aac","http://radios.rtbf.be/laprem1erebxl-128.mp3"]},{frequency:92.5,name:"Classic 21",streamUrl:"https://radios.rtbf.be/classic21-128.mp3",cors:!1,fallbackUrls:["https://redbeemedia.streamabc.net/redbm-c2180snw-mp3-128-2391383?sABC=65084369%230%232qqpnss01895rqr0s8oq129o03s183o0%23zr&aw_0_1st.playerid=me&amsparams=playerid:me;skey:1695040361","https://radios.rtbf.be/wr-c21-70-128.mp3"]}
1,{frequency:94.3,name:"Bel RTL",streamUrl:"https://livestreams.audionow.eu/lu-belrtl/belrtl/aac_64.m3u",cors:!1,fallbackUrls:["http://broadcast.infomaniak.ch/belrtl-mp3-192.mp3","http://belrtl.ice.infomaniak.ch/belrtl-mp3-192.mp3"]},{frequency:96.1,name:"Pure FM",streamUrl:"https://radios.rtbf.be/pure-128.mp3",cors:!1,fallbackUrls:["https://radios.rtbf.be/pure-64.aac","http://radios.rtbf.be/pure-128.mp3"]},{frequency:99.3,name:"Studio Brussel",streamUrl:"https://icecast.vrtcdn.be/stubru-high.mp3",cors:!1,fallbackUrls:["http://icecast.vrtcdn.be/stubru-high.mp3","http://icecast.vrtcdn.be/stubru-mid.mp3"]},{frequency:101.6,name:"Radio 1 VRT",streamUrl:"https://icecast.vrtcdn.be/radio1-high.mp3",cors:!1},{frequency:103.4,name:"Nostalgie",streamUrl:"https://nostalgiewhatafeeling.ice.infomaniak.ch/nostalgiewhatafeeling-128.mp3",cors:!1,fallbackUrls:["https://playerservices.streamtheworld.com/api/livestream-redirect/NOSTALGIEWHATAFEELING.mp3?dist=radiobrowser","https://stream.rcs.revma.com/5gd04cwptg0uv"]}],me=[{frequency:88.6,name:"Ö1",streamUrl:"https://orf-live.ors-shoutcast.at/oe1-q2a",cors:!1,fallbackUrls:["http://orf-live.ors-shoutcast.at/oe1-q2a","http://orf-live.ors-shoutcast.at/oe1-q1a"]},{frequency:89.9,name:"Radio Wien",streamUrl:"https://orf-live.ors-shoutcast.at/wie-q2a",cors:!1,fallbackUrls:["http://orf-live.ors-shoutcast.at/wie-q2a","http://stream01.zogl.net:8906/stream"]},{frequency:92.9,name:"Hitradio Ö3",streamUrl:"https://orf-live.ors-shoutcast.at/oe3-q2a",cors:!1,fallbackUrls:["https://ors-sn03.ors-shoutcast.at/oe3-q1a","https://orf-live-oe3.mdn.ors.at/out/u/oe3/q4a/manifest.m3u8"]},{frequency:94,name:"FM4",streamUrl:"https://orf-live.ors-shoutcast.at/fm4-q2a",cors:!1,fallbackUrls:["https://orf-live.ors-shoutcast.at/fm4-q1a"]},{frequency:98.3,name:"Kronehit",streamUrl:"https://onair.krone.at/kronehit.mp3",cors:!1,fallbackUrls:["http://onair.krone.at/kronehit.mp3","http://onair-ha1.krone.at/kronehit1058.mp3"]},{frequency:102.5,name:"Radio Energy Wien",streamUrl:"https://scdn.nrjaudio.fm/adwz1/at/33011/mp3_128.mp3",cors:!1},{frequency:104,name:"Radio Arabella",streamUrl:"https://stream.arabella.at/wien",cors:!1,fallbackUrls:["https://frontend.streams.arabella.at/arabella-oberoesterreich?aggregator=tunein"]}],oe=[{frequency:88.5,name:"RTÉ Radio 1",streamUrl:"https://icecast.rte.ie/icecast/radio1.mp3",cors:!1,fallbackUrls:["https://liveaudio.rte.ie/hls-radio/radio1/chunklist.m3u8","http://icecast.rte.ie/radio1"]},{frequency:90.7,name:"RTÉ 2FM",streamUrl:"https://icecast.rte.ie/icecast/2fm.mp3",cors:!1,fallbackUrls:["https://liveaudio.rte.ie/hls-radio/2fm/chunklist.m3u8"]},{frequency:92,name:"RTÉ lyric fm",streamUrl:"https://icecast.rte.ie/icecast/lyricfm.mp3",cors:!1,fallbackUrls:["http://icecast.rte.ie/lyric","https://liveaudio.rte.ie/hls-radio/lyric/chunklist.m3u8"]},{frequency:95.8,name:"FM104",streamUrl:"https://stream.media.rte.ie/dummy.m3u8",cors:!1,fallbackUrls:["https://wg.cdn.tibus.net/fm104MP3128","https://onic.dublin.live.stream.broadcasting.news/stream-fm104"]},{frequency:98.1,name:"98FM",streamUrl:"https://wcr-stream-ssl.streamcdn.net/98fm_aacp",cors:!1,fallbackUrls:["https://stream.audioxi.com/98","https://live-bauerie.sharp-stream.com/98"]},{frequency:100.3,name:"Spin 1038",streamUrl:"https://stream.audio.com/spin1038",cors:!1},{frequency:102.2,name:"Today FM",streamUrl:"https://playerservices.streamtheworld.com/api/livestream-redirect/TODAY_FM.mp3",cors:!1,fallbackUrls:["https://stream.audioxi.com/TD","https://live-bauerie.sharp-stream.com/TDAAC"]},{frequency:103.2,name:"Newstalk",streamUrl:"https://playerservices.streamtheworld.com/api/livestream-redirect/NEWSTALK.mp3",cors:!1,fallbackUrls:["https://edge.audioxi.com/NT","https://live-bauerie.sharp-stream.com/NTAAC"]}],ne=[{frequency:88,name:"RDP Antena 1",streamUrl:"https://radiocast.rtp.pt/antena180a.mp3",cors:!1},{frequency:91,name:"Antena 2",streamUrl:"https://radiocast.rtp.pt/antena280a.mp3",cors:!1,fallbackUrls:["https://streaming-live.rtp.pt/liveradio/antena2jazzin80a/playlist.m3u8","https://streaming-live.rtp.pt/liveradio/antena280a/playlist.m3u8?DVR"]},{frequency:94.4,name:"Antena 3",streamUrl:"https://radiocast.rtp.pt/antena380a.mp3",cors:!1,fallbackUrls:["https://streaming-live.rtp.pt/liveradio/antena380a/playlist.m3u8?DVR","http://streaming-live-app.rtp.pt/liveradio/antena380a/playlist.m3u8"]},{frequency:95.7,name:"RFM",streamUrl:"https://20873.live.streamtheworld.com/RFM.mp3",cors:!1,fallbackUrls:["https://23603.live.streamtheworld.com/RFMAAC.aac","https://23543.live.streamtheworld.com/OCEANPACIFICAAC.aac"]},{frequency:97.4,name:"Rádio Comercial",streamUrl:"https://20873.live.streamtheworld.com/SCP_RC.mp3",cors:!1,fallbackUrls:["https://stream-icy.bauermedia.pt/comercial.mp3","https://stream-hls.bauermedia.pt/comercial.aac/playlist.m3u8"]},{frequency:100.4,name:"M80",streamUrl:"https://20873.live.streamtheworld.com/SCP_M80.mp3",cors:!1,fallbackUrls:["https://stream-icy.bauermedia.pt/m8080.aac","http://stream-icy.bauermedia.pt/m80.mp3"]},{frequency:102.6,name:"Mega Hits",streamUrl:"https://20873.live.streamtheworld.com/MEGA_HITS.mp3",cors:!1,fallbackUrls:["http://22333.live.streamtheworld.com:3690/MEGA_HITS_SC","http://playerservices.streamtheworld.com/api/livestream-redirect/MEGA_HITS_SC"]}],ie=[{frequency:88.6,name:"ERT 1",streamUrl:"https://radiostreaming.ert.gr/ert-proto",cors:!1},{frequency:90.1,name:"Kiss FM",streamUrl:"https://stream.radiojar.com/kissfm.aac",cors:!1,fallbackUrls:["http://live.radiokiss.gr/kissfm1006hq.mp3","http://168.119.74.185:9110/stream"]},{frequency:91.6,name:"ERT 2",streamUrl:"https://radiostreaming.ert.gr/ert-deftero",cors:!1},{frequency:95.6,name:"Sfera",streamUrl:"https://netradio.live24.gr/sfera1027",cors:!1,fallbackUrls:["http://sfera.live24.gr/sfera4132","http://n01.radiojar.com/mg2vq26eewzuv?rj-ttl=5&rj-tok=AAABePDKYnkA9kVa1QYWTKFxIQ"]},{frequency:97.5,name:"Skai",streamUrl:"https://liveradio.skai.gr/skai1003.mp3",cors:!1,fallbackUrls:["http://netradio.live24.gr/skai1003","https://skai.live24.gr/skai1003"]},{frequency:100.6,name:"Athina 9.84",streamUrl:"https://radiostreaming.ert.gr/athina984",cors:!1},{frequency:102.5,name:"Best Radio",streamUrl:"https://netradio.live24.gr/best925",cors:!1,fallbackUrls:["https://best.live24.gr/best1222","http://netradio.live24.gr/best1222"]}],pe=[{frequency:89.6,name:"P1",streamUrl:"https://sverigesradio.se/topsy/direkt/srapi/132.mp3",cors:!1,fallbackUrls:["https://live1.sr.se/p1-aac-320","https://live1.sr.se/p1-aac-32"]},{frequency:91.4,name:"P2",streamUrl:"https://sverigesradio.se/topsy/direkt/srapi/163.mp3",cors:!1,fallbackUrls:["https://live1.sr.se/p2-aac-320","https://edge1.sr.se/p2-flac"]},{frequency:92.4,name:"Bandit Rock",streamUrl:"https://live-bauerse-fm.sharp-stream.com/banditstockholm_se_mp3",cors:!1,fallbackUrls:["http://fm02-ice.stream.khz.se/fm02_mp3"]},{frequency:96.2,name:"Rix FM",streamUrl:"https://live-bauerse-fm.sharp-stream.com/rixfmstockholm_se_mp3",cors:!1,fallbackUrls:["https://fm01-ice.stream.khz.se/fm01_mp3","http://fm01-ice.stream.khz.se/fm01_mp3"]},{frequency:99.3,name:"P3",streamUrl:"https://sverigesradio.se/topsy/direkt/srapi/164.mp3",cors:!1,fallbackUrls:["https://live1.sr.se/p3-mp3-96","https://edge1.sr.se/p3-aac-320"]},{frequency:103.3,name:"P4 Stockholm",streamUrl:"https://sverigesradio.se/topsy/direkt/srapi/701.mp3",cors:!1,fallbackUrls:["https://edge1.sr.se/p4sth-aac-320","https://http-live.sr.se/p4stockholm-mp3-192"]},{frequency:106.7,name:"Mix Megapol",streamUrl:"https://live-bauerse-fm.sharp-stream.com/mixmegapolstockholm_se_mp3",cors:!1,fallbackUrls:["https://live-bauerse-fm.sharp-stream.com/mixmegapol_instream_se_mp3","https://live-bauerse-fm.sharp-stream.com/mixmegapol_instream_se_aacp"]}],fe=[{frequency:90.8,name:"DR P1",streamUrl:"https://live-icy.dr.dk/A/A03H.mp3",cors:!1,fallbackUrls:["http://live-icy.gss.dr.dk/A/A03H.mp3","http://live-icy.gslb01.dr.dk/A/A03H.mp3"]},{frequency:93.9,name:"DR P3",streamUrl:"https://live-icy.dr.dk/A/A05H.mp3",cors:!1,fallbackUrls:["https://drliveradio1.akamaized.net/hls/live/2097651/p3/masterab.m3u8","http://live-icy.gslb01.dr.dk/A/A05H.mp3"]},{frequency:96.5,name:"DR P2",streamUrl:"https://live-icy.dr.dk/A/A04H.mp3",cors:!1,fallbackUrls:["https://drliveradio1.akamaized.net/hls/live/2097651/p2/masterab.m3u8","http://live-icy.gss.dr.dk/A/A04H.mp3"]},{frequency:100.5,name:"Radio 100",streamUrl:"https://stream.radio100.dk/100fm_128.mp3",cors:!1,fallbackUrls:["https://live-bauerdk.sharp-stream.com/radio100_dk_mp3"]},{frequency:102.3,name:"Radio Soft",streamUrl:"https://stream.radiosoft.dk/soft_128.mp3",cors:!1,fallbackUrls:["http://tx-bauerdk.sharp-stream.com/http_live.php?i=radiosoft_dk_mp3","https://live-bauerdk.sharp-stream.com/radiosoft_dk_tunein_mp3"]},{frequency:104.9,name:"Nova FM",streamUrl:"https://live-bauerdk.sharp-stream.com/novafm_dk_mp3",cors:!1,fallbackUrls:["https://live-bauerdk.sharp-stream.com/nova_dk_mp3"]}],de=[{frequency:89.1,name:"NRK P1",streamUrl:"https://lyd.nrk.no/nrk_radio_p1_ostlandssendingen_mp3_h",cors:!1,fallbackUrls:["https://cdn0-47115-liveicecast0.dna.contentdelivery.net/p1_mp3_h","https://lyd.nrk.no/icecast/aac/high/s0w7hwn47m/p1_dk4"]},{frequency:92.4,name:"NRK P2",streamUrl:"https://lyd.nrk.no/nrk_radio_p2_mp3_h",cors:!1,fallbackUrls:["https://cdn0-47115-liveicecast0.dna.contentdelivery.net/p2_aac_h"]},{frequency:93.5,name:"NRK P3",streamUrl:"https://lyd.nrk.no/nrk_radio_p3_mp3_h",cors:!1,fallbackUrls:["https://cdn0-47115-liveicecast0.dna.contentdelivery.net/p3_mp3_h","https://lyd.nrk.no/icecast/mp3/high/bkaen3z6bl/p3musikk?1768728185"]},{frequency:99.3,name:"Radio Norge",streamUrl:"https://lyd.radionorge.no/radionorge_no_mp3_hq",cors:!1,fallbackUrls:["https://live-bauerno.sharp-stream.com/radionorge_no_mp3"]},{frequency:102.8,name:"P4 Norge",streamUrl:"https://lyd.p4.no/p4_no_mp3_hq",cors:!1,fallbackUrls:["https://p4.p4groupaudio.com/P04_AH","https://p4.p4groupaudio.com/P04_MM"]}],he=[{frequency:87.9,name:"The Voice",streamUrl:"https://stream.bauermedia.fi/voice/voice_128.mp3",fallbackUrls:["https://stream.bauermedia.fi/voice/voice_64.aac","http://stream.bauermedia.fi/voice/voice_128.mp3"],cors:!1},{frequency:88.6,name:"Radio Helsinki",streamUrl:"https://stream.radiohelsinki.fi/stream",fallbackUrls:["https://stream.radiohelsinki.fi/radiohelsinki.mp3","http://stream.radiohelsinki.fi/stream"],cors:!1},{frequency:90.9,name:"YleX",streamUrl:"https://icecast.live.yle.fi/radio/YleX/icecast.audio",fallbackUrls:["https://yleradiolive.akamaized.net/hls/live/2027674/in-YleX/master.m3u8","http://icecast.live.yle.fi/radio/YleX/icecast.audio"],cors:!1},{frequency:94,name:"Yle Radio Suomi",streamUrl:"http://icecast.live.yle.fi/radio/YleRS/icecast.audio",fallbackUrls:["https://yleradiolive.akamaized.net/hls/live/2027675/in-YleRS/256/variant.m3u8","https://yleradiolive.akamaized.net/hls/live/2027675/in-YleRadioSuomi/master.m3u8"],cors:!1},{frequency:94.9,name:"Yle Radio 1",streamUrl:"http://icecast.live.yle.fi/radio/YleRadio1Hifi/icecast.audio",fallbackUrls:["https://yleradiolive.akamaized.net/hls/live/2027672/in-YleRadio1/master.m3u8"],cors:!1},{frequency:96.2,name:"Radio Suomipop",streamUrl:"https://aud-stream-suomipop.nm-elemental.nelonenmedia.fi/playlist-256000.m3u8",fallbackUrls:["https://aud-stream-suomipop.nm-elemental.nelonenmedia.fi/playlist.m3u8"],cors:!1},{frequency:97.5,name:"Radio Rock",streamUrl:"https://aud-stream-radiorock.nm-elemental.nelonenmedia.fi/playlist-256000.m3u8",fallbackUrls:["https://aud-stream-radiorock.nm-elemental.nelonenmedia.fi/playlist.m3u8"],cors:!1},{frequency:99.4,name:"Radio City Helsinki",streamUrl:"https://stream.bauermedia.fi/city/city_128.mp3",fallbackUrls:["https://stream.bauermedia.fi/city/city_64.aac"],cors:!1}
1,{frequency:99.9,name:"Yle Puhe",streamUrl:"https://yleradiolive.akamaized.net/hls/live/2027679/in-YlePuhe/master.m3u8",fallbackUrls:["http://icecast.live.yle.fi/radio/YlePuhe/icecast.audio"],cors:!1},{frequency:100.1,name:"NRJ Suomi",streamUrl:"https://stream.bauermedia.fi/nrj/nrj_128.mp3",fallbackUrls:["https://stream.bauermedia.fi/nrj/nrj_64.aac","http://stream.bauermedia.fi/nrj/nrj_128.mp3"],cors:!1},{frequency:102.8,name:"Basso",streamUrl:"https://stream.bauermedia.fi/basso/bassoradio_128.mp3",fallbackUrls:["https://stream-redirect.bauermedia.fi/basso/bassoradio_64.aac","http://stream.bauermedia.fi/basso/bassoradio_128.mp3"],cors:!1},{frequency:103.7,name:"Loop",streamUrl:"https://aud-stream-loop.nm-elemental.nelonenmedia.fi/playlist-256000.m3u8",fallbackUrls:["https://aud-stream-loop.nm-elemental.nelonenmedia.fi/playlist.m3u8"],cors:!1},{frequency:105,name:"Iskelmä",streamUrl:"https://stream.bauermedia.fi/iskelma/iskelma_128.mp3",fallbackUrls:["https://aud-stream-aitoiskelma.nm-elemental.nelonenmedia.fi/playlist-256000.m3u8","https://stream.bauermedia.fi/iskelma/iskelma_64.aac"],cors:!1},{frequency:106.2,name:"Radio Nova",streamUrl:"https://stream.bauermedia.fi/radionova/radionova_128.mp3",fallbackUrls:["https://stream.bauermedia.fi/radionova/radionova_64.aac","http://stream.bauermedia.fi/radionova/radionova_64.aac"],cors:!1}],ue=[{frequency:89.8,name:"Radio Kolor",streamUrl:"https://radiokolor.cdn.eurozet.pl/KOL-PWA.mp3",cors:!1,fallbackUrls:["https://stream.rcs.revma.com/zbq79057xd3vv"]},{frequency:92.4,name:"Polskie Radio Trójka",streamUrl:"https://stream4.nadaje.com:8004/trojka",cors:!1,fallbackUrls:["http://stream3.polskieradio.pl:8954/;.mp3"]},{frequency:95,name:"Złote Przeboje",streamUrl:"https://zlotewarszawa-01.cdn.eurozet.pl/ZLO-WAW.mp3",cors:!1,fallbackUrls:["https://radiostream.pl/tuba9-1.mp3","http://radiostream.pl/tuba8926-1.mp3"]},{frequency:96,name:"RMF FM",streamUrl:"https://rs6-krk2.rmfstream.pl/rmf_fm",cors:!1,fallbackUrls:["http://195.150.20.242:8000/rmf_fm","https://rs202-krk.rmfstream.pl/rmf_fm"]},{frequency:100.6,name:"Eska Warszawa",streamUrl:"https://ic1.smcdn.pl/2380-1.mp3",cors:!1,fallbackUrls:["http://waw.ic.smcdn.pl/2380-2.aac","https://waw.ic.smcdn.pl/2380-1.mp3"]},{frequency:102.4,name:"Radio Zet",streamUrl:"https://n-3-9.dcs.redcdn.pl/sc/o2/Eurozet/live/audio.livx?audio=5",cors:!1,fallbackUrls:["http://zet-net-01.cdn.eurozet.pl:8400/","https://ch.cdn.eurozet.pl/chi-net.mp3"]},{frequency:105,name:"Polskie Radio Jedynka",streamUrl:"https://stream3.polskieradio.pl:8904/;",cors:!1,fallbackUrls:["http://mp3.polskieradio.pl:8900/;.mp3","http://stream3.polskieradio.pl:8950/;.mp3"]}],ye=[{frequency:87.6,name:"ČRo Radiožurnál",streamUrl:"https://rozhlas.stream/radiozurnal_mp3_128.mp3",cors:!1,fallbackUrls:["https://rozhlas.stream/radiozurnal_aac_128.aac","http://icecast8.play.cz/cro1-128.mp3"]},{frequency:90.7,name:"ČRo Vltava",streamUrl:"https://rozhlas.stream/vltava_mp3_128.mp3",cors:!1,fallbackUrls:["http://icecast5.play.cz/cro3-128.mp3","https://amp.cesnet.cz:8443/cro3.flac"]},{frequency:93.7,name:"Frekvence 1",streamUrl:"https://ice.actve.net/fm-frekvence-mp3",cors:!1,fallbackUrls:["https://playerservices.streamtheworld.com/api/livestream-redirect/FREKVENCE1.mp3","http://ice.actve.net/fm-frekvence1-aac"]},{frequency:96.6,name:"Evropa 2",streamUrl:"https://ice.actve.net/fm-evropa2-128",cors:!1,fallbackUrls:["https://playerservices.streamtheworld.com/api/livestream-redirect/EVROPA2AAC.aac","https://playerservices.streamtheworld.com/api/livestream-redirect/EVROPA2.mp3"]},{frequency:100.7,name:"Radio Impuls",streamUrl:"https://icecast4.play.cz/impuls128.mp3",cors:!1},{frequency:103.7,name:"Kiss Radio",streamUrl:"https://icecast2.play.cz/kiss128.mp3",cors:!1,fallbackUrls:["https://icecast1.play.cz/kissdelta128.mp3","http://icecast4.play.cz/kiss128.mp3"]}],Ue=[{frequency:89.3,name:"Rádio Expres",streamUrl:"https://stream.expres.sk/128.mp3",cors:!1,fallbackUrls:["https://stream.bauermedia.sk/128.mp3","http://stream.expres.sk/128.mp3"]},{frequency:92,name:"Rádio FM",streamUrl:"https://icecast.stv.livebox.sk/fm_128.mp3",cors:!1,fallbackUrls:["http://live.slovakradio.sk:8000/FM_256.mp3"]},{frequency:94.4,name:"Rádio Slovensko",streamUrl:"https://icecast.stv.livebox.sk/slovensko_128.mp3",cors:!1,fallbackUrls:["http://live.slovakradio.sk:8000/Slovensko_256.mp3","http://live.slovakradio.sk:8000/Slovensko_128.mp3"]},{frequency:99.5,name:"Fun Radio",streamUrl:"https://stream.funradio.sk:8000/fun128.mp3",cors:!1,fallbackUrls:["http://stream.funradio.sk:8000/fun128.mp3","http://stream.funradio.sk:8000/dance128.mp3"]},{frequency:102.9,name:"Rádio Jemné",streamUrl:"https://stream.bauermedia.sk/jemne128mp3.mp3",cors:!1}],ve=[{frequency:88.8,name:"Radio Romania Actualități",streamUrl:"https://live.srr.ro:8443/Bucuresti_FM_aac",cors:!1,fallbackUrls:["http://89.238.227.6:8006/;","https://stream4.srr.ro:8443/romania-actualitati"]},{frequency:92.1,name:"Kiss FM",streamUrl:"https://live.kissfm.ro/kissfm.aacp",cors:!1},{frequency:95,name:"Pro FM",streamUrl:"https://edge126.rcs-rds.ro/profm/profm.mp3",cors:!1,fallbackUrls:["http://edge126.rdsnet.ro:84/profm/profm.mp3","https://radioendirect.net/stream/125928"]},{frequency:96.1,name:"Europa FM",streamUrl:"https://astreaming.europafm.ro:8443/europafm_aacp64",cors:!1,fallbackUrls:["https://astreaming.edi.ro:8443/EuropaFM_aac","http://astreaming.europafm.ro:8000/europafm_aacp48k"]},{frequency:99.6,name:"Radio Zu",streamUrl:"https://live7.radiozu.ro/radiozu.aacp",cors:!1,fallbackUrls:["http://zuicast.digitalag.ro:9420/zu","https://live7digi.antenaplay.ro/radiozu/radiozu-48000.m3u8"]},{frequency:103.4,name:"Magic FM",streamUrl:"https://live.magicfm.ro/magicfm.aacp",cors:!1,fallbackUrls:["https://live.kissfm.ro/Magic-80s","https://dc.digi.live.kissfm.ro/magic-movies"]}],be=[{frequency:88.1,name:"BNR Horizont",streamUrl:"https://bnr.bg/listen/aada1899056d2980d4c4cbac0d3c1b25_320.mp3",cors:!1,fallbackUrls:["https://play.global.audio/testb.aac?dist=RADIOPLAY"]},{frequency:91,name:"Radio FM+",streamUrl:"https://radio.fmplus.bg/fmplus.mp3",cors:!1,fallbackUrls:["http://31.13.223.148:8000/fmplus.ogg"]},{frequency:94.5,name:"Radio Energy",streamUrl:"https://energy.fminbg.com:8443/energy.mp3",cors:!1},{frequency:97.6,name:"City TV Radio",streamUrl:"https://radio.cityinformer.com:8000/citytv.mp3",cors:!1},{frequency:100.9,name:"Z-Rock",streamUrl:"https://zrock.fminbg.com:8443/zrock.mp3",cors:!1,fallbackUrls:["http://193.108.24.6:8000/zrock"]},{frequency:103.6,name:"Veselina",streamUrl:"https://veselina.fminbg.com:8443/veselina.mp3",cors:!1,fallbackUrls:["https://bss1.neterra.tv/veselina/veselina.m3u8"]}],ke=[{frequency:89.5,name:"HRT HR1",streamUrl:"https://stream.hrt.hr/radio/hr1.mp3",cors:!1},{frequency:91.6,name:"Radio 101",streamUrl:"https://streaming.radio101.hr:8443/radio101",cors:!1,fallbackUrls:["https://live.radio101.hr:8010/","http://live.radio101.hr:9531/stream.mp3"]},{frequency:94.2,name:"Antena Zagreb",streamUrl:"https://stream.antenazagreb.hr/antena",cors:!1,fallbackUrls:["http://live.antenazagreb.hr:8000/;","http://live.antenazagreb.hr:8002/;"]},{frequency:98.5,name:"HRT HR2",streamUrl:"https://stream.hrt.hr/radio/hr2.mp3",cors:!1},{frequency:101.2,name:"Otvoreni Radio",streamUrl:"https://otvoreni.cdn.bitservice.net/otvoreni",cors:!1,fallbackUrls:["http://stream.otvoreni.hr/otvoreni","https://stream.otvoreni.hr/otvoreni"]},{frequency:104,name:"Narodni Radio",streamUrl:"https://stream.narodni.hr/narodni",cors:!1,fallbackUrls:["https://cmr-hosting.com:7013/;","https://sonic1-rbx.cloud-center.ro:8026/stream"]}],qe=[{frequency:88.9,name:"Radio Slovenija 1",streamUrl:"https://mp3.rtvslo.si/ra1",cors:!1,fallbackUrls:["https://mp3.rtvslo.si/prvi"]},{frequency:92,name:"Val 202",streamUrl:"https://mp3.rtvslo.si/val202",cors:!1,fallbackUrls:["http://mp3.rtvslo.si/val202","http://mp3.rtvslo.si:8000/val202"]},{frequency:94.9,name:"Radio Ognjišče",streamUrl:"https://recast.ognjisce.si/ognjisce128.mp3",cors:!1,fallbackUrls:["https://live.radio.si/ognjisce.mp3","http://live.ognjisce.si/ognjisce.mp3"]},{frequency:96.4,name:"Radio City",streamUrl:"https://radio.radiocity.si/city",cors:!1,fallbackUrls:["http://82.149.22.34:8000/CityMp364mono.mp3","https://stream1.radiocity.si/CityMp3128.mp3"]}
1,{frequency:99.9,name:"Radio Hit",streamUrl:"https://stream.radiohit.si/hit",cors:!1,fallbackUrls:["http://stream03.exit.si:8000/radiohit"]}],Re=[{frequency:89.7,name:"Vikerraadio",streamUrl:"https://icecast.err.ee/vikerraadio.mp3",cors:!1,fallbackUrls:["http://icecast.err.ee/vikerraadio.mp3","http://icecast.err.ee/vikerraadiokorge.mp3"]},{frequency:96.3,name:"Raadio 2",streamUrl:"https://icecast.err.ee/raadio2.mp3",cors:!1,fallbackUrls:["http://icecast.err.ee/raadio2korge.mp3","http://icecast.err.ee/raadio2.mp3"]},{frequency:100.1,name:"Sky Plus",streamUrl:"https://media.skyplus.fm/skyplus.mp3",cors:!1,fallbackUrls:["https://skymedia-live.bitflip.ee/SKYPLUS","https://edge03.cdn.bitflip.ee:8888/NRJdnb"]},{frequency:102.4,name:"Star FM",streamUrl:"https://media.starfm.ee/starfm.mp3",cors:!1,fallbackUrls:["https://ice.leviracloud.eu/star320-mp3","https://ice.leviracloud.eu/starFMEesti96-aac"]},{frequency:106,name:"Power Hit Radio",streamUrl:"https://media.powerhitradio.ee/powerhit.mp3",cors:!1,fallbackUrls:["https://ice.leviracloud.eu/phr96-aac?"]}],Ae=[{frequency:90.7,name:"Latvijas Radio 1",streamUrl:"https://lr1.lsm.lv/lr1.mp3",cors:!1,fallbackUrls:["http://lr1mp1.latvijasradio.lv:8012/;","https://60766ff53d5e6.streamlock.net/liveALR1/mp4:LR1/playlist.m3u8"]},{frequency:93.1,name:"Latvijas Radio 2",streamUrl:"https://lr2.lsm.lv/lr2.mp3",cors:!1,fallbackUrls:["http://lr2mp1.latvijasradio.lv:8002/;"]},{frequency:96.2,name:"Star FM",streamUrl:"https://stream.starfm.lv:8443/starfm.mp3",cors:!1,fallbackUrls:["http://starfm.live.advailo.com/audio/mp3/icecast.audio","https://live.advailo.com/audio/live/playlist.m3u8"]},{frequency:100.5,name:"Radio SWH",streamUrl:"https://stream.swh.lv/swh.mp3",cors:!1,fallbackUrls:["http://80.232.162.149:8000/swh96mp3","https://live.radioswh.lv:8443/plusmp3"]},{frequency:105.2,name:"European Hit Radio",streamUrl:"https://stream.ehr.lv/ehr.mp3",cors:!1,fallbackUrls:["http://stream.europeanhitradio.com:8000/Stream_21.aac","http://stream.europeanhitradio.com:8000/Stream_27.aac"]}],ge=[{frequency:89,name:"LRT Radijas",streamUrl:"https://radijas.lrt.lt/lrt_opus.mp3",cors:!1,fallbackUrls:["https://stream-live.lrt.lt/radijas/master.m3u8"]},{frequency:95,name:"M-1",streamUrl:"https://radijo.m-1.fm/m1/mp3",cors:!1,fallbackUrls:["http://stream.m-1.fm/M-1aacp","http://radio.m-1.fm/m1plius/mp3"]},{frequency:99.6,name:"Lietus",streamUrl:"https://radijo.m-1.fm/lietus/mp3",cors:!1,fallbackUrls:["https://radio.m-1.fm/LIETUS"]},{frequency:101.5,name:"Power Hit Radio",streamUrl:"https://stream.powerhit.lt/powerhit.mp3",cors:!1,fallbackUrls:["https://ice.leviracloud.eu/phr192-mp3","https://n02a-eu.rcs.revma.com/f31w7e0fveuvv"]},{frequency:103.8,name:"Radio Relax",streamUrl:"https://stream.radiorelax.lt/relax.mp3",cors:!1}],_e=[{frequency:90.4,name:"Ukrainian Radio",streamUrl:"https://radio.nrcu.gov.ua:8443/ur1-mp3",cors:!1},{frequency:96,name:"Hit FM",streamUrl:"https://online.hitfm.ua/HitFM",cors:!1,fallbackUrls:["http://195.95.206.17/HitFM","http://online.hitfm.ua/HitFM_Be
1st"]},{frequency:100.5,name:"Russkoe Radio",streamUrl:"https://online-radio.ua/rr.mp3",cors:!1},{frequency:102.5,name:"Lux FM",streamUrl:"https://online-radio.ua/luxfm.mp3",cors:!1,fallbackUrls:["http://lux.radio.tvstitch.com/kyiv/lux_adv_sd","https://streamvideo.luxnet.ua/lux/smil:lux.stream.smil/playlist.m3u8"]},{frequency:105,name:"Radio Roks",streamUrl:"https://online-radio.ua/roks.mp3",cors:!1,fallbackUrls:["http://online.radioroks.ua/RadioROKS_Ballads_HD","http://online.radioroks.ua/RadioROKS_HardnHeavy_HD"]}],Se=[{frequency:88.7,name:"Echo Moskvy",streamUrl:"https://icecast-echomsk.cdnvideo.ru/EchoMsk-mp3-128",cors:!1},{frequency:91.2,name:"Silver Rain",streamUrl:"https://icecast.silver.cdnvideo.ru/silver",cors:!1,fallbackUrls:["http://silverrain.hostingradio.ru/silver128.mp3"]},{frequency:95.2,name:"Avtoradio",streamUrl:"https://pub0202.101.ru:8443/stream/air/aac/64/100",cors:!1,fallbackUrls:["http://77.73.90.46:1055/avtoradio","http://vladfm.ru:8000/ara"]},{frequency:100.5,name:"Radio Maximum",streamUrl:"https://maximum.hostingradio.ru:80/maximum128.mp3",cors:!1,fallbackUrls:["https://metallica.hostingradio.ru/metallica96.aacp","https://maximum-rammstein.hostingradio.ru/rammstein96.aacp"]},{frequency:103.4,name:"Nashe Radio",streamUrl:"https://nashe1.hostingradio.ru/nashe-128.mp3",cors:!1,fallbackUrls:["http://nashe1.hostingradio.ru/nashe-128.mp3","http://77.73.90.46:1055/nasheradio"]},{frequency:105.7,name:"Russkoe Radio",streamUrl:"https://pub0102.101.ru:8443/stream/air/aac/64/99",cors:!1,fallbackUrls:["http://rusradio.hostingradio.ru/rusradio96.aacp","https://stream.skymedia.ee/live/RR_AAC?no-cache=1710341223893"]}],Te=[{frequency:88.4,name:"SRF 1 Bern",streamUrl:"https://stream.srg-ssr.ch/m/regi_be/mp3_128",cors:!1,fallbackUrls:["http://stream.srg-ssr.ch/srgssr/regi_be_fr_vs/aac/48","https://stream.srg-ssr.ch/m/regi_be_fr_vs/aacp_96"]},{frequency:90.1,name:"SRF 2 Kultur",streamUrl:"https://stream.srg-ssr.ch/m/drs2/mp3_128",cors:!1,fallbackUrls:["https://stream.srg-ssr.ch/m/drs2/aacp_32","http://stream.srg-ssr.ch/srgssr/srf2/mp3/128"]},{frequency:92.6,name:"SRF 3",streamUrl:"https://stream.srg-ssr.ch/m/drs3/mp3_128",cors:!1,fallbackUrls:["http://stream.srg-ssr.ch/m/drs3/mp3_128","https://stream.srg-ssr.ch/m/drs3/aacp_32"]},{frequency:95.2,name:"Radio Bern1",streamUrl:"https://stream.bern1.ch/bern1.mp3",cors:!1,fallbackUrls:["https://stream.streambase.ch/radiobern1/mp3-192/direct/"]},{frequency:102.6,name:"Energy Bern",streamUrl:"https://scdn.nrjaudio.fm/adwz1/ch/55001/mp3_128.mp3",cors:!1,fallbackUrls:["https://energybern.ice.infomaniak.ch/energybern-high.mp3","http://broadcast.infomaniak.ch/energybern-high.mp3"]}],Me=[{frequency:92.4,name:"RÚV Rás 1",streamUrl:"https://ruv-ras1.ruv.cdn.gnata.is/ras1.aac.m3u8",cors:!1},{frequency:93.5,name:"RÚV Rás 2",streamUrl:"https://ruv-ras2.ruv.cdn.gnata.is/ras2.aac.m3u8",cors:!1},{frequency:96.7,name:"Bylgjan",streamUrl:"https://hls.stod2.is/hls-live/bylgjan/_definst_/bylgjan.m3u8",cors:!1,fallbackUrls:["http://icecast.365net.is:8000/orbbylgjan.aac","http://icecast.365net.is:8000/orbGullBylgjan.aac"]},{frequency:99.9,name:"FM957",streamUrl:"https://hls.stod2.is/hls-live/fm957/_definst_/fm957.m3u8",cors:!1,fallbackUrls:["http://icecast.365net.is:8000/orbFm957.aac"]},{frequency:102.2,name:"X977",streamUrl:"https://hls.stod2.is/hls-live/x977/_definst_/x977.m3u8",cors:!1,fallbackUrls:["http://icecast.365net.is:8000/orbXid.aac"]}],we=[{frequency:88.9,name:"Radio 100,7",streamUrl:"https://radio.100komma7.lu/dnr.mp3",cors:!1,fallbackUrls:["http://100komma7.cast.addradio.de/100komma7/live/mp3/128/stream.mp3"]},{frequency:92.5,name:"RTL Radio Lëtzebuerg",streamUrl:"https://livestreams.audionow.eu/lu-rtl/rtl-radio/aac_128.m3u",cors:!1,fallbackUrls:["http://sc-rtllive.newmedia.lu/","https://live-edge.rtl.lu/rtlradiowebtv/smil:rtlradiowebtv/playlist.m3u8"]},{frequency:93.3,name:"Eldoradio",streamUrl:"https://stream.eldoradio.lu/eldo128k.mp3",cors:!1,fallbackUrls:["http://81.92.238.33/","http://sc.bce.lu/eldoalt"]},{frequency:102.9,name:"DNR",streamUrl:"https://www.dnr.lu:8443/listen.mp3",cors:!1}],Ne=[{frequency:89.7,name:"Radju Malta",streamUrl:"https://liveradio.pbs.com.mt/radio/8000/64.mp3",cors:!1},{frequency:93.7,name:"Bay Radio",streamUrl:"https://streams.bay.com.mt:8443/89.7BayRadio.mp3",cors:!1},{frequency:98.6,name:"Magic Malta",streamUrl:"https://streams.bay.com.mt:8443/MagicMalta.mp3",cors:!1},{frequency:101.7,name:"Vibe FM",streamUrl:"https://radio.vibe.com.mt:8443/vibe.mp3",cors:!1}],xe=[{frequency:90.2,name:"CyBC Radio 1",streamUrl:"https://radiostreaming.cybc.com.cy/trito.mp3",cors:!1},{frequency:94.8,name:"Antenna FM",streamUrl:"https://stream.radiojar.com/antenna.aac",cors:!1},{frequency:97.2,name:"Kiss FM Cyprus",streamUrl:"https://stream.radiojar.com/kissfmcy.aac",cors:!1,fallbackUrls:["http://r1.phileradio.com:8193/89FM"]},{frequency:99.3,name:"Mix FM",streamUrl:"https://stream.radiojar.com/mixfm.aac",cors:!1,fallbackUrls:["https://strm.mixlive.eu/mixfm/index.m3u8"]}],Ce=[{frequency:88.9,name:"Radio Beograd 1",streamUrl:"https://rts1.cdn.mihnet.net/audio/rts1.mp3",cors:!1,fallbackUrls:["https://rtsradio-live.morescreens.com/RTS_2_001/audio/c
1hunklist.m3u8"]},{frequency:92.5,name:"Radio S1",streamUrl:"https://stream.radios.rs:9000/s1.mp3",cors:!1,fallbackUrls:["http://edge-rs-01.maksnet.tv/asmedia/radios/chunklist_w2049618642.m3u8","https://stream.radios.rs:9000/;"]},{frequency:96.9,name:"Radio Hit FM",streamUrl:"https://stream.hitfm.rs:8443/hitfm",cors:!1},{frequency:99.1,name:"Radio Index",streamUrl:"https://stream.index.rs:8443/index",cors:!1},{frequency:104.6,name:"Play Radio",streamUrl:"https://stream.playradio.rs:8443/play",cors:!1,fallbackUrls:["https://stream.playradio.rs:8443/play.mp3","https://stream.playradio.rs:8443/party.mp3"]}],ze=[{frequency:89.5,name:"BHR1",streamUrl:"https://stream.bhrt.ba:8443/bhr1.mp3",cors:!1},{frequency:92.6,name:"Radio M",streamUrl:"https://radiom.cdn.bitservice.net/radiom",cors:!1},{frequency:99.3,name:"Federalni Radio",streamUrl:"https://stream.rtvfbih.ba:8443/fr.mp3",cors:!1},{frequency:102.5,name:"BN Radio",streamUrl:"https://stream.bnradio.ba:8443/bn.mp3",cors:!1}],Ie=[{frequency:90.3,name:"Makedonsko Radio 1",streamUrl:"https://stream.mrt.com.mk/mr1.mp3",cors:!1,fallbackUrls:["https://vod-c57.interspace.com/channel_abr/47/playlist.m3u8"]},{frequency:92.6,name:"Antenna 5",streamUrl:"https://stream.antenna5.com.mk/antenna5",cors:!1,fallbackUrls:["https://fms.off.net.mk:8000/antenna5.stream","http://antenna5stream.neotel.mk:8000/live128"]},{frequency:96.7,name:"Kanal 77",streamUrl:"https://stream.kanal77.com.mk/kanal77",cors:!1,fallbackUrls:["https://radiocnd.mms.mk/proxy/offnet/stream"]},{frequency:102.6,name:"Metropolis",streamUrl:"https://stream.metropolis.com.mk/metropolis",cors:!1,fallbackUrls:["https://eu4.fastcast4u.com/proxy/metradio?mp=/1"]}],Be=[{frequency:89.2,name:"Radio Tirana",streamUrl:"https://radiotirana.rtsh.al/radio1",cors:!1,fallbackUrls:["http://79.106.48.2:8000/rti","http://79.106.48.2:8000/radiotirana1"]},{frequency:95.7,name:"Top Albania Radio",streamUrl:"https://live.topradio.al/topradio",cors:!1},{frequency:100.2,name:"Plus 2 Radio",streamUrl:"https://live.plus2.al/plus2",cors:!1},{frequency:105.6,name:"Radio Tirana 2",streamUrl:"https://radiotirana.rtsh.al/radio2",cors:!1}],Oe=[{frequency:89.6,name:"Radio Crne Gore 1",streamUrl:"https://stream.rtcg.me:8443/radio1.mp3",cors:!1,fallbackUrls:["https://rtcg.ipradio.rs:9008/;"]},{frequency:96.5,name:"Radio Antena M",streamUrl:"https://stream.antenam.net:8443/antenam.mp3",cors:!1},{frequency:98.4,name:"Radio D",streamUrl:"https://stream.radiod.me:8443/radiod.mp3",cors:!1,fallbackUrls:["https://radiodplus.radioca.st/xstream"]}],Le=[{frequency:89.6,name:"Radio Moldova",streamUrl:"https://stream.trm.md/radio-moldova.mp3",cors:!1,fallbackUrls:["http://37.233.41.76:8000/lovefm","https://www.radio.md/stream/radiomoldovanews"]},{frequency:95.3,name:"Kiss FM Moldova",streamUrl:"https://live.kissfm.md/kissfm.aacp",cors:!1,fallbackUrls:["https://live.kissfm.md/kissfm.chisinau"]},{frequency:100.2,name:"Pro FM Chișinău",streamUrl:"https://edge.profm.md/profm.mp3",cors:!1},{frequency:104.7,name:"Radio Zum",streamUrl:"https://stream.radiozum.md/zum.mp3",cors:!1,fallbackUrls:["https://streams.radiozum.md/listen/zum4/ZUM4","https://streams.radiozum.md/listen/zum2/ZUM2"]}],je=[{frequency:92.4,name:"Belarus 1",streamUrl:"https://stream.tvr.by/belarus1.mp3",cors:!1},{frequency:98.4,name:"Radius FM",streamUrl:"https://stream.tvr.by/radiusfm.mp3",cors:!1,fallbackUrls:["https://stream2.datacenter.by/radiusfm_main"]},{frequency:102.1,name:"Radio Mir",streamUrl:"https://stream.mir.fm:8443/mir.mp3",cors:!1},{frequency:105.1,name:"Radio Roks Belarus",streamUrl:"https://stream.roks.by:8443/roks.mp3",cors:!1}],Ee=[{frequency:91.4,name:"Ràdio Nacional d'Andorra",streamUrl:"https://rtvasa.akamaized.net/hls/live/2069483/rna/master.m3u8",cors:!1},{frequency:100.8,name:"Andorra 1",streamUrl:"https://rtvasa.akamaized.net/hls/live/2069484/andorra1/master.m3u8",cors:!1}],Fe=[{frequency:95.4,name:"Radio Monaco",streamUrl:"https://radiomonaco.ice.infomaniak.ch/radiomonaco-128.mp3",cors:!1,fallbackUrls:["http://radiomonaco.ice.infomaniak.ch/radiomonaco-128.mp3"]},{frequency:98.2,name:"Riviera Radio",streamUrl:"https://stream.rivieraradio.mc:8443/riviera.mp3",cors:!1,fallbackUrls:["http://rivieraradio.ice.infomaniak.ch/rivieraradio-high.mp3"]},{frequency:103.1,name:"RMC",streamUrl:"https://rmc.bfmtv.com/rmcinfo-mp3",cors:!1}],Pe=[{frequency:102.7,name:"Radio San Marino",streamUrl:"https://stream.sanmarinortv.sm:8443/radio.mp3",cors:!1,fallbackUrls:["https://d18ufyp3q60j7u.cloudfront.net/radio-ch01/radio-ch02/playlist.m3u8","https://d18ufyp3q60j7u.cloudfront.net/radio-ch01/radio-ch01/playlist.m3u8"]},{frequency:103.2,name:"Radio Birikina SM",streamUrl:"https://stream.radiobirikina.it/birikina.mp3",cors:!1}],De=[{frequency:88.5,name:"Radio Liechtenstein",streamUrl:"https://stream.radio.li:8443/radio_li.mp3",cors:!1}],Ke=[{frequency:87.7,name:"Radyo Eksen",streamUrl:"https://moondigitaledge.radyotvonline.net/eksen/playlist.m3u8",cors:!1},{frequency:90.3,name:"Power FM",streamUrl:"https://provisioning.streamtheworld.com/pls/POWER_FM.pls",cors:!1},{frequency:92.3,name:"Kral FM",streamUrl:"https://kralweb.radyotvonline.net/kralfm/playlist.m3u8",cors:!1},{frequency:94.5,name:"TRT Radyo 1",streamUrl:"https://radio-trtradyo1.live.trt.com.tr/master_720.m3u8",cors:!1},{frequency:98,name:"NTV Radyo",streamUrl:"https://nrcdn.radyotvonline.net/ntvradyo/playlist.m3u8",cors:!1},{frequency:99.5,name:"Metro FM",streamUrl:"https://provisioning.streamtheworld.com/pls/METRO_FM.pls",cors:!1},{frequency:104,name:"Radyo Viva",streamUrl:"https://radyoviva.radyotvonline.net/radyoviva/playlist.m3u8",cors:!1}],He=[{frequency:90.7,name:"90.7 WFUV",streamUrl:"https://onair.wfuv.org/onair-aacplus",cors:!1},{frequency:91.1,name:"WFMU",streamUrl:"https://stream0.wfmu.org/freeform-high.aac",cors:!1},{frequency:93.9,name:"93.9 WNYC",streamUrl:"https://iheart.wnyc.org/wnycfm-iheart.aac",cors:!1},{frequency:97.9,name:"Mega 97.9",streamUrl:"https://liveaudio.lamusica.com/NY_WSKQ_icy?aw_0_1st.playerId=lamusica.iheart",cors:!1},{frequency:100.3,name:"Z100",streamUrl:"https://stream.revma.ihrhls.com/zc1469",cors:!1},{frequency:103.5,name:"103.5 KTU",streamUrl:"https://stream.revma.ihrhls.com/zc1473",cors:!1},{frequency:104.3,name:"Q104.3",streamUrl:"https://stream.revma.ihrhls.com/zc1465",cors:!1},{frequency:105.1,name:"Power 105.1",streamUrl:"https://stream.revma.ihrhls.com/zc1481",cors:!1},{frequency:106.7,name:"106.7 Lite FM",streamUrl:"https://stream.revma.ihrhls.com/zc1477",cors:!1}],We=[{frequency:88.5,name:"88.5 The SoCal Sound",streamUrl:"https://stream.revma.ihrhls.com/zc5523",cors:!1},{frequency:92.3,name:"Real 92.3",streamUrl:"https://stream.revma.ihrhls.com/zc181",cors:!1},{frequency:98.7,name:"ALT 98.7",streamUrl:"https://stream.revma.ihrhls.com/zc201",cors:!1},{frequency:102.7,name:"102.7 KIIS FM",streamUrl:"https://stream.revma.ihrhls.com/zc185",cors:!1},{frequency:103.5,name:"KOST 103.5",streamUrl:"https://stream.revma.ihrhls.com/zc193",cors:!1},{frequency:104.3,name:"1043 MYfm",streamUrl:"https://stream.revma.ihrhls.com/zc173",cors:!1},{frequency:106.7,name:"KROQ",streamUrl:"https://live.amperwave.net/direct/audacy-kroqfmaac-imc",cors:!1}],Ve=[{frequency:91.5,name:"91.5 WBEZ",streamUrl:"https://stream.wbez.org/WBEZ-iheart96.aac",cors:!1},{frequency:93.9,name:"93.9 Lite FM",streamUrl:"https://stream.revma.ihrhls.com/zc853",cors:!1},{frequency:95.5,name:"Rock 95.5",streamUrl:"https://stream.revma.ihrhls.com/zc857",cors:!1},{frequency:102.7,name:"V103",streamUrl:"https://stream.revma.ihrhls.com/zc865",cors:!1},{frequency:103.5,name:"103.5 Kiss FM",streamUrl:"https://stream.revma.ihrhls.com/zc849",cors:!1},{frequency:107.5,name:"107.5 WGCI",streamUrl:"https://stream.revma.ihrhls.com/zc841",cors:!1}],$e=[{frequency:88.7,name:"News 88.7",streamUrl:"https://stream.houstonpublicmedia.org/news-aac?source=iheart",cors:!1},{frequency:93.7,name:"93.7 The Beat",streamUrl:"https://stream.revma.ihrhls.com/zc2265",cors:!1},{frequency:94.5,name:"94.5 The Buzz",streamUrl:"https://stream.revma.ihrhls.com/zc2281",cors:!1},{frequency:99.1,name:"Sunny 99.1",streamUrl:"https://stream.revma.ihrhls.com/zc2273",cors:!1}],Ge=[{frequency:95.5,name:"95.5 The Mountain",streamUrl:"https://stream.revma.ihrhls.com/zc57",cors:!1},{frequency:96.9,name:"Mix 96.9",streamUrl:"https://stream.revma.ihrhls.com/zc45",cors:!1}
1,{frequency:99.9,name:"99.9 KEZ",streamUrl:"https://stream.revma.ihrhls.com/zc33",cors:!1},{frequency:102.5,name:"102.5 KNIX",streamUrl:"https://stream.revma.ihrhls.com/zc49",cors:!1},{frequency:104.7,name:"104.7 Kiss FM",streamUrl:"https://stream.revma.ihrhls.com/zc61",cors:!1}],Ye=[{frequency:88.5,name:"WXPN",streamUrl:"https://wxpnhi.xpn.org/xpnhi",cors:!1},{frequency:98.9,name:"Power 99",streamUrl:"https://stream.revma.ihrhls.com/zc2009",cors:!1},{frequency:102.1,name:"Q102",streamUrl:"https://stream.revma.ihrhls.com/zc1997",cors:!1},{frequency:104.5,name:"ALT 104.5",streamUrl:"https://stream.revma.ihrhls.com/zc3401",cors:!1},{frequency:105.3,name:"105.3 WDAS FM",streamUrl:"https://stream.revma.ihrhls.com/zc1993",cors:!1},{frequency:106.1,name:"Rumba 106.1",streamUrl:"https://stream.revma.ihrhls.com/zc2001",cors:!1}],Xe=[{frequency:92.5,name:"92.5 The Bull",streamUrl:"https://stream.revma.ihrhls.com/zc6168",cors:!1},{frequency:96.1,name:"Mix 96.1",streamUrl:"https://stream.revma.ihrhls.com/zc2357",cors:!1},{frequency:97.3,name:"KJ97",streamUrl:"https://stream.revma.ihrhls.com/zc2337",cors:!1},{frequency:101.9,name:"Q101.9",streamUrl:"https://stream.revma.ihrhls.com/zc2341",cors:!1},{frequency:104.5,name:"104.5 Latino Hits",streamUrl:"https://stream.revma.ihrhls.com/zc4051",cors:!1}],Je=[{frequency:93.3,name:"Channel 93.3",streamUrl:"https://stream.revma.ihrhls.com/zc241",cors:!1},{frequency:94.1,name:"Star 94.1",streamUrl:"https://stream.revma.ihrhls.com/zc253",cors:!1},{frequency:95.7,name:"JAM'N 95.7",streamUrl:"https://stream.revma.ihrhls.com/zc261",cors:!1},{frequency:101.5,name:"KGB 101.5",streamUrl:"https://stream.revma.ihrhls.com/zc237",cors:!1},{frequency:105.3,name:"Rock 105.3",streamUrl:"https://stream.revma.ihrhls.com/zc245",cors:!1}],Ze=[{frequency:90.1,name:"90.1 KERA",streamUrl:"https://kera-ice.streamguys1.com:8443/kera32-iheart",cors:!1},{frequency:91.7,name:"91.7 KXT",streamUrl:"https://kera-ice.streamguys1.com/kxtlive64aacplus",cors:!1},{frequency:92.5,name:"Lone Star 92.5",streamUrl:"https://stream.revma.ihrhls.com/zc3379",cors:!1},{frequency:97.1,name:"97.1 The Eagle",streamUrl:"https://stream.revma.ihrhls.com/zc2241",cors:!1},{frequency:102.1,name:"Star 102.1",streamUrl:"https://stream.revma.ihrhls.com/zc2815",cors:!1},{frequency:102.9,name:"The New Mix 102.9",streamUrl:"https://stream.revma.ihrhls.com/zc2237",cors:!1},{frequency:106.1,name:"106.1 Kiss FM",streamUrl:"https://stream.revma.ihrhls.com/zc2245",cors:!1}],Qe=[{frequency:88.5,name:"KQED-FM",streamUrl:"https://streams.kqed.org/kqedradio",cors:!1},{frequency:91.1,name:"KCSM Jazz",streamUrl:"https://ice5.securenetsystems.net/KCSM",cors:!1},{frequency:94.9,name:"Wild 94.9",streamUrl:"https://stream.revma.ihrhls.com/zc305",cors:!1},{frequency:98.1,name:"98.1 The Breeze",streamUrl:"https://stream.revma.ihrhls.com/zc285",cors:!1},{frequency:101.3,name:"Star 101.3",streamUrl:"https://stream.revma.ihrhls.com/zc281",cors:!1},{frequency:103.7,name:"Classic Hits 103.7",streamUrl:"https://stream.revma.ihrhls.com/zc4342",cors:!1},{frequency:106.1,name:"106.1 KMEL",streamUrl:"https://stream.revma.ihrhls.com/zc293",cors:!1}],ea=[{frequency:94.1,name:"WQBT The Beat 94.1 (Savannah)",streamUrl:"https://stream.revma.ihrhls.com/zc805",cors:!1},{frequency:94.9,name:"WUBL The Bull 94.9 (Atlanta)",streamUrl:"https://stream.revma.ihrhls.com/zc2829",cors:!1},{frequency:96.3,name:"WKSP Kiss 96.3",streamUrl:"https://stream.revma.ihrhls.com/zc769",cors:!1},{frequency:97.9,name:"WIBB 97.9 (Macon)",streamUrl:"https://stream.revma.ihrhls.com/zc3256",cors:!1},{frequency:98.7,name:"WYKZ The River 98.7 (Savannah)",streamUrl:"https://stream.revma.ihrhls.com/zc797",cors:!1},{frequency:100.1,name:"WXBT The Beat 100.1 (Columbia)",streamUrl:"https://stream.revma.ihrhls.com/zc2069",cors:!1},{frequency:104.3,name:"WBBQ 104.3",streamUrl:"https://stream.revma.ihrhls.com/zc757",cors:!1},{frequency:105.7,name:"WLUB The Bull 105.7",streamUrl:"https://stream.revma.ihrhls.com/zc765",cors:!1},{frequency:106.3,name:"WLUB Eagle 106.3",streamUrl:"https://stream.revma.ihrhls.com/zc753",cors:!1},{frequency:107.7,name:"WPRW Power 107",streamUrl:"https://stream.revma.ihrhls.com/zc773",cors:!1}
1],D=[{id:"london",name:"London",country:"UK",stations:W},{id:"guildford",name:"Guildford",country:"UK",stations:Y},{id:"paris",name:"Paris",country:"France",stations:G},{id:"budapest",name:"Budapest",country:"Hungary",stations:X},{id:"amsterdam",name:"Amsterdam",country:"Netherlands",stations:le},{id:"andorra",name:"Andorra la Vella",country:"Andorra",stations:Ee},{id:"athens",name:"Athens",country:"Greece",stations:ie},{id:"belgrade",name:"Belgrade",country:"Serbia",stations:Ce},{id:"berlin",name:"Berlin",country:"Germany",stations:re},{id:"bern",name:"Bern",country:"Switzerland",stations:Te},{id:"bratislava",name:"Bratislava",country:"Slovakia",stations:Ue},{id:"brussels",name:"Brussels",country:"Belgium",stations:ce},{id:"bucharest",name:"Bucharest",country:"Romania",stations:ve},{id:"chisinau",name:"Chișinău",country:"Moldova",stations:Le},{id:"copenhagen",name:"Copenhagen",country:"Denmark",stations:fe},{id:"dublin",name:"Dublin",country:"Ireland",stations:oe},{id:"helsinki",name:"Helsinki",country:"Finland",stations:he},{id:"istanbul",name:"Istanbul",country:"Türkiye",stations:Ke},{id:"kyiv",name:"Kyiv",country:"Ukraine",stations:_e},{id:"lisbon",name:"Lisbon",country:"Portugal",stations:ne},{id:"ljubljana",name:"Ljubljana",country:"Slovenia",stations:qe},{id:"luxembourg",name:"Luxembourg",country:"Luxembourg",stations:we},{id:"madrid",name:"Madrid",country:"Spain",stations:se},{id:"minsk",name:"Minsk",country:"Belarus",stations:je},{id:"monaco",name:"Monaco",country:"Monaco",stations:Fe},{id:"moscow",name:"Moscow",country:"Russia",stations:Se},{id:"nicosia",name:"Nicosia",country:"Cyprus",stations:xe},{id:"oslo",name:"Oslo",country:"Norway",stations:de},{id:"podgorica",name:"Podgorica",country:"Montenegro",stations:Oe},{id:"prague",name:"Prague",country:"Czechia",stations:ye},{id:"reykjavik",name:"Reykjavík",country:"Iceland",stations:Me},{id:"riga",name:"Riga",country:"Latvia",stations:Ae},{id:"rome",name:"Rome",country:"Italy",stations:te},{id:"san_marino",name:"San Marino",country:"San Marino",stations:Pe},{id:"sarajevo",name:"Sarajevo",country:"Bosnia & Herzegovina",stations:ze},{id:"skopje",name:"Skopje",country:"North Macedonia",stations:Ie},{id:"sofia",name:"Sofia",country:"Bulgaria",stations:be},{id:"stockholm",name:"Stockholm",country:"Sweden",stations:pe},{id:"tallinn",name:"Tallinn",country:"Estonia",stations:Re},{id:"tirana",name:"Tirana",country:"Albania",stations:Be},{id:"vaduz",name:"Vaduz",country:"Liechtenstein",stations:De},{id:"valletta",name:"Valletta",country:"Malta",stations:Ne},{id:"vienna",name:"Vienna",country:"Austria",stations:me},{id:"vilnius",name:"Vilnius",country:"Lithuania",stations:ge},{id:"warsaw",name:"Warsaw",country:"Poland",stations:ue},{id:"zagreb",name:"Zagreb",country:"Croatia",stations:ke},{id:"nyc",name:"New York",country:"USA (NY)",stations:He},{id:"la",name:"Los Angeles",country:"USA (CA)",stations:We},{id:"chicago",name:"Chicago",country:"USA (IL)",stations:Ve},{id:"houston",name:"Houston",country:"USA (TX)",stations:$e},{id:"phoenix",name:"Phoenix",country:"USA (AZ)",stations:Ge},{id:"philadelphia",name:"Philadelphia",country:"USA (PA)",stations:Ye},{id:"san_antonio",name:"San Antonio",country:"USA (TX)",stations:Xe},{id:"san_diego",name:"San Diego",country:"USA (CA)",stations:Je},{id:"dallas",name:"Dallas",country:"USA (TX)",stations:Ze},{id:"san_jose",name:"San Jose",country:"USA (CA)",stations:Qe},{id:"augusta",name:"Augusta",country:"USA (GA)",stations:ea},{id:"sydney",name:"Sydney",country:"Australia (NSW)",stations:J},{id:"melbourne",name:"Melbourne",country:"Australia (VIC)",stations:Z},{id:"brisbane",name:"Brisbane",country:"Australia (QLD)",stations:Q},{id:"perth",name:"Perth",country:"Australia (WA)",stations:ee},{id:"adelaide",name:"Adelaide",country:"Australia (SA)",stations:ae}],I=88,B=108,K=.4;function aa(s,d=W){let t=null,n=1/0;for(const a of d){const f=Math.abs(a.frequency-s);f<n&&(n=f,t=a)}if(!t||n>K)return{station:null,strength:0};const y=1-n/K,U=y*y*(3-2*y);return{station:t,strength:U}}function ra({frequency:s,onChange:d,stations:t,probe:n,power:y}){const U=l.useRef(null),a=l.useRef(!1),f=.04,i=l.useCallback(r=>{const p=U.current;
1if(!p)return;const u=p.getBoundingClientRect(),g=(r-u.left)/u.width,b=Math.max(0,Math.min(1,(g-f)/(1-2*f))),M=I+b*(B-I);d(Math.round(M*10)/10)},[d]);l.useEffect(()=>{const r=u=>{a.current&&i(u.clientX)},p=()=>a.current=!1;return window.addEventListener("pointermove",r),window.addEventListener("pointerup",p),()=>{window.removeEventListener("pointermove",r),window.removeEventListener("pointerup",p)}},[i]);const k=r=>(f+(r-I)/(B-I)*(1-2*f))*100,h=k(s),R=[];for(let r=I;r<=B+.001;r+=.1){const p=Math.round(r*10)/10,u=Math.abs(p-Math.round(p))<.001;R.push({pct:k(p),major:u,label:u?String(Math.round(p)):void 0})}return e.jsx("div",{className:"w-full select-none",style:{opacity:y?1:.35,transition:"opacity 0.4s ease"},children:e.jsxs("div",{ref:U,onPointerDown:r=>{a.current=!0,i(r.clientX)},onWheel:r=>{const p=r.deltaY>0?-.1:.1,u=Math.max(I,Math.min(B,s+p));d(Math.round(u*10)/10)},className:"relative h-32 cursor-ew-resize rounded-md border border-[color:var(--dial-edge)] bg-[color:var(--dial-bg)] shadow-inner touch-none",style:{backgroundImage:"linear-gradient(180deg, color-mix(in oklab, var(--dial-bg) 92%, black) 0%, var(--dial-bg) 30%, color-mix(in oklab, var(--dial-bg) 88%, black) 100%)",filter:y?void 0:"brightness(0.6)",transition:"filter 0.4s ease"},children:[t.map(r=>{const p=k(r.frequency),u=n?.[r.frequency]?.status,g=u==="down",b=u==="checking";return e.jsx("div",{className:"absolute top-2 -translate-x-1/2",style:{left:`${p}%`},title:`${r.frequency} ${r.name}${g?" (unavailable)":b?" (checking…)":""}`,children:e.jsx("div",{className:"h-2 w-2 rounded-full bg-[color:var(--dial-station)] transition-opacity",style:{opacity:g?.2:b?.5:1}})},r.frequency)}),e.jsx("div",{className:"absolute inset-x-0 bottom-0 h-20",children:R.map((r,p)=>e.jsxs("div",{className:"absolute bottom-6 -translate-x-1/2",style:{left:`${r.pct}%`},children:[e.jsx("div",{className:"bg-[color:var(--dial-tick)]",style:{width:1,height:r.major?18:8}}),r.label&&e.jsx("div",{className:"mt-1 -translate-x-1/2 text-[11px] font-serif text-[color:var(--dial-tick)]",children:r.label})]},p))}),e.jsx("div",{className:"pointer-events-none absolute top-0 bottom-0 w-px bg-[color:var(--dial-needle)] shadow-[0_0_8px_var(--dial-needle)]",style:{left:`${h}%`},children:e.jsx("div",{className:"absolute -top-1 -left-1.5 h-3 w-3 rotate-45 bg-[color:var(--dial-needle)]"})})]})})}const sa=["streamtheworld.com","live.streamtheworld.com","playerservices.streamtheworld.com","provisioning.streamtheworld.com","amperwave.net","live.amperwave.net","revma.ihrhls.com","stream.revma.ihrhls.com","ihrhls.com","iheart.com"];function ta(s){try{const t=new URL(s).hostname.toLowerCase();return sa.some(n=>t===n||t.endsWith("."+n))}catch{return!1}}function V(s){return!s||s.startsWith("/api/public/stream")||!ta(s)?s:"/api/public/stream?url="+encodeURIComponent(s)}function la(s){const{power:d,volume:t,station:n,strength:y,stereoBlend:U}=s,a=l.useRef(null),f=l.useRef(null),i=l.useRef(null),k=l.useRef(null),h=l.useRef(null),R=l.useRef(null),r=l.useRef(null),p=l.useRef(null),u=l.useRef(null),g=l.useRef(null),b=l.useRef(null),M=l.useRef(null),O=l.useRef(0);l.useEffect(()=>{if(!d){b.current&&(b.current.destroy(),b.current=null);for(const v of[a,f])v.current&&(v.current.pause(),v.current.src="",v.current=null);if(M.current=null,h.current){try{h.current.stop()}catch{}h.current.disconnect(),h.current=null}R.current=null,r.current=null,p.current=null,u.current=null,g.current=null,k.current=null,i.current&&(i.current.close().catch(()=>{}),i.current=null);return}if(i.current)return;const m=window.AudioContext||window.webkitAudioContext,o=new m;i.current=o,o.resume().catch(()=>{});const A=2*o.sampleRate,N=o.createBuffer(1,A,o.sampleRate),x=N.getChannelData(0);for(let v=0;v<A;v++)x[v]=(Math.random()*2-1)*.6;const q=o.createBufferSource();q.buffer=N,q.loop=!0;const S=o.createGain();S.gain.value=0,q.connect(S).connect(o.destination),q.start(),k.current=S,h.current=q;const C=new Audio;C.crossOrigin="anonymous",C.preload="none",a.current=C;try{const v=o.createMediaElementSource(C),T=o.createChannelSplitter(2),z=o.createChannelMerger(2),L=o.createGain();L.gain.value=0;const j=o.createGain(),E=o.createGain(),F=o.createGain(),P=o.createGain();v.connect(T),T.connect(j,0),T.connect(F,1),j.connect(z,0,0),F.connect(z,0,0),T.connect(E,1),T.connect(P,0),E.connect(z,0,1),P.connect(z,0,1),z.connect(L).connect(o.destination),R.current=L,r.current=j,p.current=E,u.current=F,g.current=P}catch{}const _=new Audio;_.preload="none",f.current=_},[d]),l.useEffect(()=>{if(!d)return;const m=++O.current,o=n?.streamUrl??null,A=o?V(o):null,N=n?.cors!==!0,x=n?.streamType==="dash",q=N?f.current:a.current,S=N?a.current:f.current;!x&&b.current&&(b.current.destroy(),b.current=null),S&&(S.pause(),S.src&&(S.src="")),q&&A!==M.current&&(M.current=A,A?x?(q.pause(),$(()=>import("./dash.all.min-D_hFuBFJ.js"),[]).then(C=>{if(m!==O.current||M.current!==A)return;b.current?.destroy();const _=C.MediaPlayer().create();_.initialize(q,A,!0),b.current=_,q.play().catch(()=>{})}).catch(()=>{})):(q.src=A,q.play().catch(()=>{})):(b.current?.destroy(),b.current=null,q.pause(),q.src=""))},[n,d]),l.useEffect(()=>{const m=i.current,o=k.current;
1if(!d||!m)return;m.state==="suspended"&&m.resume().catch(()=>{});const A=Math.max(0,Math.min(1,t)),N=.25+.75*Math.max(0,Math.min(1,y)),x=A*N,q=A*Math.max(0,1-y)*.3,S=m.currentTime,C=n?.cors!==!0,_=(v,T,z=.04)=>{if(v)try{v.gain.cancelScheduledValues(S),v.gain.setValueAtTime(v.gain.value,S),v.gain.setTargetAtTime(T,S,z)}catch{v.gain.value=T}};if(C)f.current&&(f.current.volume=x),a.current&&(a.current.volume=0),_(R.current,0);else{f.current&&(f.current.volume=0),a.current&&(a.current.volume=1),_(R.current,x);const v=.5+.5*U,T=.5-.5*U;_(r.current,v,.08),_(p.current,v,.08),_(u.current,T,.08),_(g.current,T,.08)}_(o,q)},[t,y,U,d,n])}const H=7e3;function ca(s,d){const t=V(s);return new Promise(n=>{let y=!1;const U=R=>{y||(y=!0,n(R))};if(d){const R=new AbortController,r=setTimeout(()=>{R.abort(),U(null)},H);fetch(t,{method:"GET",signal:R.signal,cache:"no-store"}).then(p=>{clearTimeout(r),U(p.ok)}).catch(()=>{clearTimeout(r),U(!1)});return}const a=new Audio;a.muted=!0,a.preload="auto";const f=()=>{try{a.pause()}catch{}a.removeAttribute("src");try{a.load()}catch{}},i=()=>{f(),U(!0)},k=()=>{f(),U(!1)};a.addEventListener("loadeddata",i),a.addEventListener("canplay",i),a.addEventListener("progress",i),a.addEventListener("error",k);const h=setTimeout(()=>{f(),U(null)},H);a.addEventListener("loadeddata",()=>clearTimeout(h)),a.addEventListener("canplay",()=>clearTimeout(h)),a.addEventListener("error",()=>clearTimeout(h)),a.src=t;try{a.load()}catch{k()}})}async function ma(s){const d=s.streamType==="dash",t=[s.streamUrl,...s.fallbackUrls??[]];for(const n of t)if(await ca(n,d)!==!1)return{status:"ok",url:n};return{status:"down",url:null}}function oa(s){const[d,t]=l.useState({});return l.useEffect(()=>{let n=!1;const y={};for(const i of s)y[i.frequency]={status:"checking",url:i.streamUrl};t(y);const U=[...s],f=Array.from({length:6},async()=>{for(;U.length&&!n;){const i=U.shift(),k=await ma(i);if(n)return;t(h=>({...h,[i.frequency]:k}))}});return Promise.all(f),()=>{n=!0}},[s]),d}function na(){const[s,d]=l.useState(98.5),[t,n]=l.useState(!1),[y,U]=l.useState(.7),[a,f]=l.useState("london"),i=l.useMemo(()=>D.find(m=>m.id===a),[a]),k=oa(i.stations),{station:h,strength:R}=l.useMemo(()=>aa(s,i.stations),[s,i]),p=(h?k[h.frequency]?.status:void 0)==="down",u=p?null:h?{...h,streamUrl:k[h.frequency]?.url??h.streamUrl}:null,g=p?0:R,b=Math.max(0,Math.min(1,(g-.55)/.3)),M=t&&!!u&&g>.85;la({power:t,volume:y,station:u,strength:g,stereoBlend:b}),l.useEffect(()=>{const m=o=>{if(o.key==="ArrowLeft"||o.key==="ArrowRight"){o.preventDefault();const A=o.shiftKey?1:.1,N=o.key==="ArrowLeft"?-1:1;d(x=>Math.round(Math.max(I,Math.min(B,x+N*A))*10)/10)}};return window.addEventListener("keydown",m),()=>window.removeEventListener("keydown",m)},[]);const O=Math.round(g*5);return e.jsx("div",{className:"min-h-screen w-full flex items-center justify-center p-4 sm:p-8 bg-[color:var(--room)]",children:e.jsxs("div",{className:"w-full max-w-3xl rounded-2xl border border-[color:var(--case-edge)] bg-[color:var(--case)] p-6 sm:p-10 shadow-2xl",children:[e.jsxs("div",{className:"flex items-baseline justify-between mb-4",children:[e.jsxs("h1",{className:"font-serif text-2xl sm:text-3xl tracking-wide text-[color:var(--case-fg)]",children:[i.name," FM"]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("label",{htmlFor:"city-select",className:"text-xs uppercase tracking-[0.2em] text-[color:var(--case-fg)]/60",children:"Location"}),e.jsx("select",{id:"city-select",value:a,onChange:m=>f(m.target.value),className:"font-serif text-sm rounded-md border border-[color:var(--case-edge)] bg-[color:var(--readout-bg)] text-[color:var(--readout-fg)] px-2 py-1 focus:outline-none focus:ring-1 focus:ring-[color:var(--dial-needle)]",children:D.map(m=>e.jsxs("option",{value:m.id,children:[m.name,", ",m.country]},m.id))})]})]}),e.jsxs("div",{className:"mb-4 flex items-center justify-between rounded-md border border-[color:var(--readout-edge)] bg-[color:var(--readout-bg)] px-4 py-3",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"font-mono text-3xl sm:text-4xl text-[color:var(--readout-fg)]",children:[s.toFixed(1),e.jsx("span",{className:"ml-2 text-base text-[color:var(--readout-fg)]/70",children:"MHz"})]}),e.jsx("div",{className:"font-serif text-sm text-[color:var(--readout-fg)]/80 h-5",children:t?u?u.name:p&&h?`${h.name} — unavailable`:"— tuning —":"off"})]}),e.jsx("div",{className:"flex items-end gap-1 h-8",children:[1,2,3,4,5].map(m=>e.jsx("div",{className:"w-1.5 rounded-sm transition-colors",style:{height:`${m*5+6}px`,background:t&&m<=O?"var(--readout-fg)":"color-mix(in oklab, var(--readout-fg) 18%, transparent)"}},m))})]}),e.jsxs("div",{className:"mb-3 flex items-center gap-3 px-1",children:[e.jsx("span",{className:"font-mono text-[10px] tracking-[0.2em] px-2 py-0.5 rounded-sm border transition-all",style:{borderColor:"color-mix(in oklab, var(--readout-fg) 35%, transparent)",color:M?"var(--case)":"color-mix(in oklab, var(--case-fg) 45%, transparent)",background:M?"var(--readout-fg)":"transparent",boxShadow:M?"0 0 10px color-mix(in oklab, var(--readout-fg) 60%, transparent)":"none"},children:"STEREO"}),e.jsx("div",{className:"flex-1 h-1.5 rounded-full overflow-hidden bg-[
1color-mix(in_oklab,var(--case-fg)_12%,transparent)]",children:e.jsx("div",{className:"h-full transition-all",style:{width:`${(t?b:0)*100}%`,background:"var(--readout-fg)"}})}),e.jsx("span",{className:"text-[10px] uppercase tracking-widest text-[color:var(--case-fg)]/50",children:"width"})]}),e.jsx(ra,{frequency:s,onChange:d,stations:i.stations,probe:k,power:t}),e.jsxs("div",{className:"mt-6 flex flex-col sm:flex-row items-stretch sm:items-center gap-4 sm:gap-6",children:[e.jsx("button",{onClick:()=>n(m=>!m),className:"rounded-full px-5 py-2 font-serif text-sm border transition-colors",style:{background:t?"var(--dial-needle)":"transparent",color:t?"var(--case)":"var(--case-fg)",borderColor:"var(--case-edge)"},children:t?"● ON":"○ OFF"}),e.jsxs("div",{className:"flex-1 flex items-center gap-3",children:[e.jsx("span",{className:"text-xs uppercase tracking-widest text-[color:var(--case-fg)]/60",children:"Vol"}),e.jsx("input",{type:"range",min:0,max:1,step:.01,value:y,onChange:m=>U(Number(m.target.value)),className:"flex-1 accent-[color:var(--dial-needle)]"})]})]}),e.jsx("p",{className:"mt-6 text-xs text-[color:var(--case-fg)]/50 leading-relaxed",children:"Drag the needle, scroll over the dial, or use ← → (Shift = 1 MHz). Streams are public internet feeds from each broadcaster — some may be region-locked or temporarily unavailable."}),e.jsx("p",{className:"mt-4 text-[10px] text-[color:var(--case-fg)]/40 text-center tracking-wide",children:"© 2026 Storycase.co.uk — All rights reserved."})]})})}function pa(){return e.jsx(na,{})}export{pa as component};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.