{"id":24541188,"url":"https://github.com/matteo-pacini/RadioGoGo","last_synced_at":"2025-10-03T17:30:35.706Z","repository":{"id":203188959,"uuid":"707701231","full_name":"matteo-pacini/RadioGoGo","owner":"matteo-pacini","description":"📻 Go-powered CLI to surf global radio waves via a sleek TUI. Tune in \u0026 let's Go 🚀!","archived":true,"fork":false,"pushed_at":"2024-11-03T22:11:12.000Z","size":2030,"stargazers_count":139,"open_issues_count":6,"forks_count":6,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-20T22:06:02.124Z","etag":null,"topics":["bubbletea","cli","go","golang","radio","radio-streaming","terminal","tui"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/matteo-pacini.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-10-20T13:19:34.000Z","updated_at":"2024-12-27T17:10:15.000Z","dependencies_parsed_at":"2024-05-09T16:53:44.869Z","dependency_job_id":"8c3e0466-b75b-49db-aa2a-957cd8d68c74","html_url":"https://github.com/matteo-pacini/RadioGoGo","commit_stats":null,"previous_names":["zi0p4tch0/radiogogo","matteo-pacini/radiogogo"],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matteo-pacini%2FRadioGoGo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matteo-pacini%2FRadioGoGo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matteo-pacini%2FRadioGoGo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matteo-pacini%2FRadioGoGo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/matteo-pacini","download_url":"https://codeload.github.com/matteo-pacini/RadioGoGo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235161517,"owners_count":18945537,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bubbletea","cli","go","golang","radio","radio-streaming","terminal","tui"],"created_at":"2025-01-22T18:17:17.510Z","updated_at":"2025-10-03T17:30:35.137Z","avatar_url":"https://github.com/matteo-pacini.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"# RadioGoGo 📻\n\n---\n\n📌 Repository Archived\n\nUnfortunately, 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.\n\nThe 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.\n\nThank you again for your understanding and support!\n\n---\n\n\u003cdiv style=\"display:flex;justify-content:center;\"\u003e\n    \u003cimg src=\"./logo.png\" alt=\"RadioGoGo Logo\" width=\"200\" height=\"200\"\u003e\n\u003c/div\u003e\n\u003cbr\u003e\n\nTune into global radio vibes directly from your terminal! \n\nCrafted with love in Go, RadioGoGo marries the elegance of the [BubbleTea TUI](https://github.com/charmbracelet/bubbletea) with the expansive reach of [RadioBrowser API](http://www.radio-browser.info/). \n\nDive into a world of sounds with just a few keystrokes. \n\nLet's Go 🚀!\n\n\u003cimg src=\"./screen1.png\" alt=\"RadioGoGo Search View\" width=\"500\" height=\"320\"\u003e\n\u003cimg src=\"./screen2.png\" alt=\"RadioGoGo Station List View\" width=\"500\" height=\"320\"\u003e\n\n## ⭐️ Features\n\n- Sleek and intuitive TUI that's a joy to navigate.\n- Search, browse, and play radio stations from a vast global database.\n- Enjoy cross-platform compatibility, because radio waves know no bounds.\n- Integrated playback using `ffplay`.\n\n## 📋 Upcoming Features\n\n- Scroll indicator for the station list.\n- Report / hide broken stations.\n- Vote stations.\n- Bookmark your favorite stations for easy access.\n- Record your favorite broadcasts for later listening.\n\n## ⚒️ Installation\n\n### Dependencies: \n\nFor seamless playback, ensure you have either `ffplay` installed:\n\n#### FFmpeg\n\n##### Windows:\n\nDownload FFmpeg from the [official website](https://ffmpeg.org/download.html) 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.\n\nIt can be installed via [Chocolatey](https://chocolatey.org/):\n\n```\nchoco install ffmpeg\n```\n\nOr [Scoop](https://scoop.sh/):\n\n```\nscoop install ffmpeg\n```\n\n##### Linux:\n\nFor apt-based distros (like Ubuntu and Debian):\n\n```\nsudo apt update\nsudo apt install ffmpeg\n```\n\nFor users of dnf-based distros such as Fedora, you may need to enable the RPM Fusion repository first before installing FFmpeg:\n\n```\nsudo 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\n```\n\nAnd then:\n\n```\nsudo dnf install ffmpeg\n```\n\nFor pacman-based distros, such as Arch, you can install FFmpeg using the following command:\n\n```\nsudo pacman -S ffmpeg\n```\n\nFor Gentoo:\n\n```\nemerge --ask --quiet --verbose media-video/ffmpeg\n```\n\n##### macOS:\n\nFor macOS users with Homebrew installed, you can use the following command:\n\n```\nbrew install ffmpeg\n```\n\n##### \\*BSD:\n\nFreeBSD:\n\n```\npkg install ffmpeg\n```\n\nNetBSD:\n\n```\npkg_add ffmpeg\n```\n\nOpenBSD:\n\n```\ndoas pkg_add ffmpeg\n```\n\n### Installing via Go\n\nEnsure you have [Go](https://golang.org/dl/) installed (version 1.18 or later).\n\nTo install RadioGoGo:\n\n```bash\ngo install github.com/zi0p4tch0/radiogogo@latest\n```\n\n#### For Linux/macOS/\\*BSD:\n\nTo make sure `radiogogo` is available in your terminal, you might need to add the Go binary path to your system's PATH:\n\n```bash\nexport PATH=$PATH:$(go env GOPATH)/bin\n```\n\n#### For Windows:\n\nAfter 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:\n\n```bash\nsetx PATH \"%PATH%;%USERPROFILE%\\go\\bin\"\n```\n\nNow, you can launch `radiogogo` directly from your terminal or Command Prompt.\n\n### Downloading the Binary\n\nNavigate to the `Releases` section of the project repository. \n\nFind the appropriate binary for your OS, download it, and place it in your system's PATH for easy access.\n\n## 🚀 Usage\n\nLaunch RadioGoGo by executing the following command:\n\n```bash\nradiogogo\n```\n\n### Terminals for an optimal RadioGoGo experience:\n\n- **Windows:** For a smooth experience on Windows, consider using [Windows Terminal](https://aka.ms/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)](https://docs.microsoft.com/en-us/windows/wsl/) combined with Windows Terminal can be a powerful duo.\n\n- **Linux:** On Linux, most modern terminals should work well with RadioGoGo. However, [Alacritty](https://github.com/alacritty/alacritty), a GPU-accelerated terminal, and [Terminator](https://gnometerminator.blogspot.com/p/introduction.html), known for its flexibility, stand out as exceptional choices. Both offer great performance and customization options to enhance your TUI experience.\n\n- **macOS:** On macOS, while the default Terminal.app should work fine, you might want to explore [iTerm2](https://iterm2.com/) for its advanced features, superior performance, and extensive customization options. iTerm2's integration with macOS makes it a preferred choice for many users.\n\n## Configuration\n\n**Config File Location:**\n- **Windows:** `%LOCALAPPDATA%\\radiogogo\\config.yaml`\n- **Other Platforms:** `~/.config/radiogogo/config.yaml`\n\nIt gets created automatically when you launch the app for the first time.\n\n### 🎨 Customizing App Theme\n\nPersonalize the look of RadioGoGo to match your style! \n\nThe application supports theme customization, which allows you to change various color attributes to give the TUI a fresh appearance.\n\nThe configuration file is automatically created when the app is launched for the first time if it doesn't already exist.\n\n**Default Theme Configuration:**\n```yaml\ntheme:\n    textColor: '#ffffff'\n    primaryColor: '#5a4f9f'\n    secondaryColor: '#8b77db'\n    tertiaryColor: '#4e4e4e'\n    errorColor: '#ff0000'\n```\n\nAdjust the color values in the configuration to your liking and relaunch the app to see the changes take effect.\n\nHere's another theme configuration to give you an idea of how you can customize the app's appearance:\n\n```yaml\ntheme:\n    textColor: '#f0e6e6'\n    primaryColor: '#c41230'\n    secondaryColor: '#e4414f'\n    tertiaryColor: '#f58b8d'\n    errorColor: '#ff0000'\n```\n\nHow it looks:\n\n\u003cimg src=\"./screen3.png\" alt=\"RadioGoGo Search View\" width=\"500\" height=\"320\"\u003e\n\u003cimg src=\"./screen4.png\" alt=\"RadioGoGo Station List View\" width=\"500\" height=\"320\"\u003e\n\n## 🤔 FAQ\n\n### I selected a radio station but there's no audio. What's happening?\nUpon selecting a station, the duration to initiate playback can vary based on the stream's origin and its server location.\nIn some cases, the playback is immediate, while in others, it might necessitate a brief buffering period. \nIt's analogous to the latency encountered with various online services – certain connections are swift, while others require a momentary lag. \nIf you don't experience instant audio, I recommend waiting a few seconds. \nThe broadcast is likely en route to your terminal.\n\n### Why do some stations not work at all?\nDue to the dynamic nature of radio stations, some might go offline or change their streaming endpoints. \nCurrently, RadioGoGo doesn't have a feature to report or hide these non-functioning stations. \nHowever, 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. \n\n### How do I adjust the volume in RadioGoGo?\nVolume 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.\n\n## Who is talking about RadioGoGo?\n\n- Mentioned on [Golang Weekly Issue 481](https://golangweekly.com/issues/481)!\n\n## ❤️ Contributing\n\nHey there, fellow radio enthusiast! \n\nFirst off, a big thanks for even considering contributing. \n\nEvery 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! \n\nPlease 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. \n\n📻 Happy coding!\n\n\n## ⚖️ License(s)\n\nRadioGoGo is licensed under the [MIT License](LICENSE).\n\n### Third-party dependencies\n\nBubbleTea TUI license (MIT):\n\n```\nMIT License\n\nCopyright (c) 2020-2023 Charmbracelet, Inc\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatteo-pacini%2FRadioGoGo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmatteo-pacini%2FRadioGoGo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatteo-pacini%2FRadioGoGo/lists"}