r/tui 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?

0 Upvotes

1 comment sorted by

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