How swadesh-c0de/vibe-fi works
Vibe-Fi is a terminal music player. Its main workflow accepts a search, URL, or local file, resolves online audio when needed, plays it through mpv, and presents playback controls and visualizations in the terminal. The README also documents library browsing, playlists, synced lyrics, session/theme preferences, updates, and desktop integrations. Several source excerpts are partial or absent, so links for those documented capabilities are limited to supported modules and are not expanded into speculative call chains.
Main entry points: ui.cpp Terminal UI · main.cpp CLI entry · player.cpp Audio player · search.cpp YouTube search
Components 19
Application
- CLI entry
src/main.cpp - Terminal UI
src/ui/ui.cpp
Playback
- Audio player
src/core/player.cpp - Audio visualizers
src/ui/visualizer.cpp
Music features
- YouTube search
src/services/search.cpp - Local library
src/services/library.cpp - Synced lyrics
src/services/lyrics.cpp - Playlist manager
src/services/playlist_manager.cpp - Playlist files
Integrations
- MPRIS controls
src/integrations/mpris.cpp - Discord presence
src/integrations/discord_rpc.cpp
App services
- Stream resolution
src/utils/utils.cpp - Updater and bottle
src/services/updater.cpp
Other components
- Listener
- yt-dlp
- mpv engine
- lrclib service
- Session D-Bus
- Discord client
Connections 21
- Listener → CLI entry: starts with input
- CLI entry → YouTube search: searches query
- YouTube search → yt-dlp: runs search
- CLI entry → Stream resolution: resolves URL
- Stream resolution → yt-dlp: resolves stream
- CLI entry → Audio player: loads track
- Listener → Terminal UI: uses controls
- Terminal UI → Local library: browses files
- Terminal UI → YouTube search: requests search
- Terminal UI → Playlist manager: manages playlists
- Playlist manager → Playlist files: reads and writes
- Terminal UI → Audio player: controls playback
- Audio player → mpv engine: controls audio
- Audio visualizers → Audio player: reads audio stats
- Terminal UI → Synced lyrics: requests lyrics
- Synced lyrics → lrclib service: fetches lyrics
- Terminal UI → MPRIS controls: starts and polls
- MPRIS controls → Session D-Bus: receives controls
- Terminal UI → Discord presence: updates presence
- Discord presence → Discord client: sends activity
- CLI entry → Updater and bottle: handles update flags