# iradio A terminal internet radio player built with Rust. Streams stations from [radio-browser.info](https://www.radio-browser.info) and plays them via `mpv`. ## Requirements - [Rust / Cargo](https://rustup.rs) - [`mpv`](https://mpv.io) — must be installed and on `PATH` ## Build & Run ```bash cargo build --release cargo run ``` ## Features - Browse stations from Germany, Austria, and the US - Live search (filters by name and tags) - Now-playing display with song history - Favorite stations — persisted to `~/.config/iradio/favorites.json` ## Keybindings ### Normal mode | Key | Action | |-----------|-------------------------------| | `j` / `↓` | Move down | | `k` / `↑` | Move up | | `Ctrl-D` | Scroll down half page | | `Ctrl-U` | Scroll up half page | | `Enter` | Play selected station | | `s` | Stop playback | | `f` | Toggle favorite on selection | | `Tab` | Toggle All / Favorites view | | `/` | Enter search mode | | `Esc` | Clear active search filter | | `q` | Quit | ### Search mode | Key | Action | |---------|-------------------------------------| | typing | Filter station list live | | `Enter` | Confirm filter, return to Normal | | `Esc` | Clear filter, return to Normal | ## Layout ``` ┌─────────────────────┬──────────────────────────────┐ │ Search [/] │ Info (now playing) │ ├─────────────────────┼──────────────────────────────┤ │ │ │ │ Stations [All] │ Played Songs │ │ ★ NDR 2 │ Song title... │ │ SWR3 │ ... │ │ ... │ │ └─────────────────────┴──────────────────────────────┘ ``` Favorites are marked with `★` in the station list. Press `Tab` to show only favorited stations (`Stations [★ Fav]`).