"""A handful of directory entries for a cold offline start. Radio Browser itself is the directory, but an offline start has no cache — so this is ten stations whose relays have been up for years, one per taste. """ from __future__ import annotations from ...models import Station #: (id, title, country, genre tags, url, format, bitrate) _STATIONS: tuple[tuple[str, str, str, str, str, str, str], ...] = ( ("fallback-groovesalad", "SomaFM Groove Salad", "United States", "ambient|chill", "https://ice1.somafm.com/groovesalad-128-mp3", "mp3", "128"), ("fallback-radioparadise", "Radio Paradise", "United States", "eclectic|rock", "https://stream.radioparadise.com/flac", "flac", "1411"), ("fallback-fip", "FIP", "France", "eclectic|jazz", "https://icecast.radiofrance.fr/fip-midfi.mp3", "mp3", "128"), ("fallback-kexp", "KEXP", "United States", "alternative|indie", "https://kexp.streamguys1.com/kexp160.aac", "aac", "160"), ("fallback-nts1", "NTS Radio 1", "United Kingdom", "eclectic|electronic", "https://stream-relay-geo.ntslive.net/stream", "mp3", "128"), ("fallback-rinse", "Rinse UK", "United Kingdom", "house|electronic", "https://admin.stream.rinse.fm/proxy/rinse_uk/stream", "aacp", "128"), ("fallback-dublab", "dublab", "United States", "eclectic|experimental", "https://dublab.out.airtime.pro/dublab_a", "mp3", "192"), ("fallback-cashmere", "Cashmere Radio", "Germany", "experimental", "https://cashmereradio.out.airtime.pro/cashmereradio_a", "ogg", "192"), ("fallback-datafruits", "Datafruits", "United States", "electronic|experimental", "https://streampusher-relay.club/datafruits.mp3", "mp3", "128"), ("fallback-anonradio", "aNONradio", "United States", "eclectic|talk", "https://anonradio.net:8443/anonradio", "mp3", "192"), ) def fallback_stations() -> list[Station]: return [ Station( id=station_id, title=title, description=country, genre=genre, playlists=[ { "url": url, "format": fmt, "quality": "high", "bitrate": bitrate, } ], provider="radiobrowser", ) for station_id, title, country, genre, url, fmt, bitrate in _STATIONS ]