Tune into global radio vibes directly from your terminal!
Crafted with love in Go, RadioGoGo marries the elegance of the BubbleTea TUI with the expansive reach of RadioBrowser API.
Dive into a world of sounds with just a few keystrokes.
Let's Go π!
- Sleek and intuitive TUI that's a joy to navigate.
- Search, browse, and play radio stations from a vast global database.
- Enjoy cross-platform compatibility, because radio waves know no bounds.
- Integrated playback using
ffplay
.
- Scroll indicator for the station list.
- Report / hide broken stations.
- Vote stations.
- Bookmark your favorite stations for easy access.
- Record your favorite broadcasts for later listening.
- Alternative playback using
mpv
.
For seamless playback, ensure ffplay
is installed:
Download FFmpeg from the official website and add it to your system's PATH.
It can also be installed via Chocolatey or Scoop.
sudo apt update
sudo apt install ffmpeg
sudo dnf install ffmpeg
P.S. If you're using Fedora, you might need to enable the RPM Fusion repository first. You can do so by executing the following command:
sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
sudo pacman -S ffmpeg
emerge --ask --quiet --verbose media-video/ffmpeg
brew install ffmpeg
pkg install ffmpeg
pkg_add ffmpeg
doas pkg_add ffmpeg
-
Windows: For a smooth experience on Windows, consider using Windows Terminal. It offers multiple tabs, a GPU-accelerated text rendering engine, and a rich set of customization options. If you're fond of UNIX-like environments, WSL (Windows Subsystem for Linux) combined with Windows Terminal can be a powerful duo.
-
Linux: On Linux, most modern terminals should work well with RadioGoGo. However, Alacritty, a GPU-accelerated terminal, and Terminator, known for its flexibility, stand out as exceptional choices. Both offer great performance and customization options to enhance your TUI experience.
-
macOS: On macOS, while the default Terminal.app should work fine, you might want to explore iTerm2 for its advanced features, superior performance, and extensive customization options. iTerm2's integration with macOS makes it a preferred choice for many users.
Ensure you have Go installed (version 1.18 or later).
To install RadioGoGo:
go install github.com/zi0p4tch0/radiogogo@latest
To make sure radiogogo
is available in your terminal, you might need to add the Go binary path to your system's PATH:
export PATH=$PATH:$(go env GOPATH)/bin
After installation, you might need to add the Go binary path to your system's PATH to run radiogogo
from the Command Prompt. You can do this manually through the System Properties β Environment Variables, or run the following in Command Prompt:
setx PATH "%PATH%;%USERPROFILE%\go\bin"
Now, you can launch radiogogo
directly from your terminal or Command Prompt.
Navigate to the Releases
section of the project repository.
Find the appropriate binary for your OS, download it, and place it in your system's PATH for easy access.
Launch RadioGoGo by executing the following command:
radiogogo
Personalize the look of RadioGoGo to match your style!
The application supports theme customization, which allows you to change various color attributes to give the TUI a fresh appearance.
Config File Location:
- Windows:
%LOCALAPPDATA%\radiogogo\config.yaml
- Other Platforms:
~/.config/radiogogo/config.yaml
The configuration file is automatically created when the app is launched for the first time if it doesn't already exist.
Default Theme Configuration:
theme:
textColor: '#ffffff'
primaryColor: '#5a4f9f'
secondaryColor: '#8b77db'
tertiaryColor: '#4e4e4e'
errorColor: '#ff0000'
Adjust the color values in the configuration to your liking and relaunch the app to see the changes take effect.
Here's another theme configuration to give you an idea of how you can customize the app's appearance:
theme:
textColor: '#f0e6e6'
primaryColor: '#c41230'
secondaryColor: '#e4414f'
tertiaryColor: '#f58b8d'
errorColor: '#ff0000'
How it looks:
Upon selecting a station, the duration to initiate playback can vary based on the stream's origin and its server location. In some cases, the playback is immediate, while in others, it might necessitate a brief buffering period. It's analogous to the latency encountered with various online services β certain connections are swift, while others require a momentary lag. If you don't experience instant audio, I recommend waiting a few seconds. The broadcast is likely en route to your terminal.
Due to the dynamic nature of radio stations, some might go offline or change their streaming endpoints. Currently, RadioGoGo doesn't have a feature to report or hide these non-functioning stations. However, I am actively aware of this challenge and am planning to introduce a feature in future releases to enhance this aspect of the user experience.
Volume controls in RadioGoGo are set before initiating playback. This is because the volume level is passed as a command line argument to ffplay
. As of now, once the playback has started, adjusting the volume within RadioGoGo isn't supported. To change the volume during an ongoing playback, you'd have to stop (ctrl+k
) and restart the stream.
Hey there, fellow radio enthusiast!
First off, a big thanks for even considering contributing.
Every typo fix, bug report, or thought you share genuinely helps make RadioGoGo better. If you're eyeing to introduce a new feature, I'd love to hear about it!
Please kick off a discussion by creating an issue before diving into crafting a pull request. This way, we can ensure everyone's on the same frequency.
π» Happy coding!
RadioGoGo is licensed under the MIT License.
BubbleTea TUI license (MIT):
MIT License
Copyright (c) 2020-2023 Charmbracelet, Inc
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.