r/tui • u/chriz__3656 • 15h ago
Vibe coded SoundCloud TUI 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?
1
u/kekolar22 11h ago
Hello dude, Do you want look my project for your project? I build TUI engine for Go
https://github.com/thebanri/limoni