π Repository Archived
Unfortunately, I am no longer able to commit the necessary time to maintain and develop it further. As a result, I have decided to archive this repository.
The code and documentation will remain accessible, so feel free to fork it or use it as a reference for your own projects. I hope it continues to be helpful to the community in its current form.
Thank you again for your understanding and support!
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.
For seamless playback, ensure you have either ffplay
installed:
Download FFmpeg from the official website and add it to your system's PATH. For those unfamiliar with adding to the PATH, you might want to consult a guide or search for instructions specific to your version of Windows.
It can be installed via Chocolatey:
choco install ffmpeg
Or Scoop:
scoop install ffmpeg
For apt-based distros (like Ubuntu and Debian):
sudo apt update
sudo apt install ffmpeg
For users of dnf-based distros such as Fedora, you may need to enable the RPM Fusion repository first before installing FFmpeg:
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
And then:
sudo dnf install ffmpeg
For pacman-based distros, such as Arch, you can install FFmpeg using the following command:
sudo pacman -S ffmpeg
For Gentoo:
emerge --ask --quiet --verbose media-video/ffmpeg
For macOS users with Homebrew installed, you can use the following command:
brew install ffmpeg
FreeBSD:
pkg install ffmpeg
NetBSD:
pkg_add ffmpeg
OpenBSD:
doas pkg_add ffmpeg
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
-
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.
Config File Location:
- Windows:
%LOCALAPPDATA%\radiogogo\config.yaml
- Other Platforms:
~/.config/radiogogo/config.yaml
It gets created automatically when you launch the app for the first time.
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.
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.
- Mentioned on Golang Weekly Issue 481!
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.