MCPcopy Index your code
hub / github.com/dancnb/sonicradio

github.com/dancnb/sonicradio @v0.8.14

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.8.14 ↗ · + Follow
533 symbols 1,468 edges 67 files 35 documented · 7%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

SonicRadio

A TUI radio player making use of Radio Browser API and Bubbletea.

 Demo

Installation

  • Install using go:

Internal player version (requires CGO): go install github.com/dancnb/sonicradio/cmd/sonicradio@latest

External players only (no CGO): go install github.com/dancnb/sonicradio/cmd/sonicradio_external@latest

  • Clone this repository and build from source.

Depending on version (for the internal player implementation), some additional prerequisites are needed based on the platform (ex: CGO required for non-Windows), since this project uses https://github.com/gopxl/beep, respectively https://github.com/ebitengine/oto.

  • Optional third-party backend players:

One of the following tools must be installed and available in the PATH: - Mpv : https://mpv.io/ - FFplay : https://ffmpeg.org/ffplay.html, comes bundled with ffmpeg - VLC: https://www.videolan.org/vlc/ - MPlayer: http://www.mplayerhq.hu/design7/dload.html - Music Player Daemon: https://www.musicpd.org/

  • Download binaries available in Releases page.

Usage

After the installation, the command to run the application:

    sonicradio #sonicradio_external

Available options:

      -debug: creates a log file "sonicradio-[epoch millis].log" in OS specific temp dir

Keybindings

Key(s) Action
↑/k up
↓/j down
ctrl+f/pgdn next page
ctrl+b/pgup prev page
g/home go to start
G/end go to end
enter/l play
space pause/resume
- volume -
+ volume +
←/< seek backwards
→/> seek forward
i station info
f favorite station
a autoplay station
A add custom station
d delete station
p/shift+p paste deleted station
/ filter results
s open search view
# go to station number
esc go to now playing
shift+tab go to prev tab
tab go to next tab
v change view
? toggle help
q quit

License

Sonicradio is licensed under the MIT License.

Third-party dependencies

Bubbletea MIT License

Extension points exported contracts — how you extend this code

BackendPlayer (Interface)
(no doc) [7 implementers]
player/player.go
FormElementOpt (FuncType)
(no doc)
ui/form_element.go

Core symbols most depended-on inside this repo

Render
called by 65
ui/delegate.go
String
called by 52
ui/tab.go
Update
called by 31
ui/tab.go
Close
called by 29
player/player.go
View
called by 25
ui/tab.go
Value
called by 21
ui/checkbox.go
TextInput
called by 20
ui/form_element.go
NewInputModel
called by 17
ui/styles.go

Shape

Method 326
Function 111
Struct 76
TypeAlias 15
Interface 4
FuncType 1

Languages

Go100%

Modules by API surface

config/config.go29 symbols
ui/tab.go28 symbols
ui/model.go26 symbols
ui/tab_settings.go21 symbols
player/player.go21 symbols
ui/tab_history.go20 symbols
ui/delegate.go20 symbols
ui/search.go19 symbols
ui/option_list.go19 symbols
ui/form_element.go19 symbols
player/internalplayer/streamer.go19 symbols
ui/messages.go17 symbols

For agents

$ claude mcp add sonicradio \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact