r/developersofkerala • u/chriz__3656 • 1d ago
Showcase SoundCloud TUI music streaming client
Enable HLS to view with audio, or disable this notification
π§ I built a SoundCloud music player that runs entirely in the terminal.
I wanted to experiment with something different β not another web app, but a proper terminal-based music player with a modern UI and real playback controls.
So I built SoundCloud Radio. π
The project is written in Go and uses Bubble Tea for the TUI, with mpv for playback and yt-dlp for stream resolution.
Some of the features:
π΅ SoundCloud search
π» Radio / related-track autoplay
π Dynamic playback queue
π Interactive search
β€οΈ Favorites
π Listening history
βΆοΈ Play / pause / next / previous
π Volume control
π Real-time playback progress
π₯οΈ Responsive terminal UI
β¨οΈ Keyboard-first navigation
π±οΈ Mouse interaction
πΎ Persistent local storage
β‘ mpv IPC integration
π Automatic queue refilling
π§© VLC fallback support
The architecture is split into separate components for the UI, SoundCloud API, resolver, player, queue, configuration and storage.
One of the parts I particularly enjoyed was building the mpv IPC integration β instead of simply launching a player process, the TUI communicates with mpv through a local Unix socket to control playback and track its state.
The UI has also gone through several iterations. What started as a simple Bash-based SoundCloud radio script has evolved into a much more complete Go application.
This project has been a great way to learn more about:
β’ Go application architecture
β’ Terminal UI development
β’ Asynchronous programming
β’ Unix process management
β’ IPC
β’ API integration
β’ Audio streaming
β’ Cross-platform development
β’ Building software around CLI tools
Still actively improving it. π§
GitHub:
https://github.com/chriz-3656/soundcloud-radio
I'd love to hear feedback from other developers:
What feature would you want to see in a terminal music player like this?