A real desktop app, not a browser tab
YouTube Music on a computer is a web page. VIsage is a native app: media keys and playerctl work through MPRIS, Discord shows what you play, and your sign-in lives in the system keyring.

A desktop music player for YouTube Music, on Linux and Windows, that you can make your own. Colours, lyrics, seek bar, covers, sidebars and almost everything else can be changed, so it looks and feels like yours. Synced lyrics follow every word, your music folders sit beside your library, and songs save for offline.
YouTube Music on a computer is a web page. VIsage is a native app: media keys and playerctl work through MPRIS, Discord shows what you play, and your sign-in lives in the system keyring.
Your folders sit in an “On this device” shelf with generated mixes, genres and years, next to your YouTube Music library. YouTube Music cannot play files from your disk.
A Rust helper reads your folders in parallel and remembers every file it has seen. Re-scanning an unchanged library takes about 0.2 seconds, and search forgives typos, so a half-remembered title still finds the song.
The Tag Manager looks up MusicBrainz, Deezer and iTunes, writes MP3, FLAC, Opus, M4A and WAV, checks the result, and keeps a backup so you can undo.
Fling the album art to the side and release to change song. Shake it and shuffle flips on. No buttons needed, and the queue follows what you did.
The install shrank from 460 MB to 266 MB. The sign-in browser and libmpv download only when needed, and Windows starts faster after the first run.
Lyrics now fly toward you through a depth-blurred corridor. The line being sung is sharp, the rest fall away.
How: Open the lyrics panel, then Settings > Lyrics > Scene and pick "3D row". Close-up fade distance is adjustable there.
A vinyl-groove poster look: concentric rings slice through the lyric and ripple outward with the music.
How: Settings > Lyrics > Scene > "Cuts". The rings react to singing, tempo and every lyric change.
Drag a track out of the queue, the now-playing card or a library list and drop it onto a playlist or folder.
How: Hold a row and pull it sideways. Targets that would refuse the track (a local file onto a YouTube playlist) glow red and a toast says why.
Batch-fix your local library tags with auto-tagging, a review screen where you can type your own values, and a right-click menu.
How: Library > Tag Manager. Drag to select rows, right-click for Play, Add to queue or Open folder. Work continues in the background while you browse.
Pick several music folders, see each one's scan status, and filter the current tab with the new search bar.
How: Settings > Local & offline > Add folder. In Library, type in the search bar to filter the tab you are on.
VIsage now adapts from a phone-sized window to an ultrawide monitor. On small windows the tabs fold into a menu tray, the queue and lyrics open as trays and Now Playing stacks into one column.
How: Resize the window. Under 600 px wide tap the menu button in the top bar for Home, Search, Library and Settings. On big screens pages stay centred at a readable width.
Every settings page was rebuilt. Long rows of chips became dropdowns, options that depend on another switch only show up when it is on, and pages like Interface, Lyrics, Fullscreen player and Sidebars show a live preview of what you are changing as you change it.
How: Open Settings and pick a page. Change a setting and watch the preview on the same page update at once. Use the search box at the top of Settings to jump straight to any option.
Pull Now Playing into its own small window. Make it wide enough and the lyrics show up next to the cover.
How: Press Ctrl+Shift+M or use the pop-out button in the Now Playing tool row (rebindable in Settings > Keyboard shortcuts). It can stay on top; on Hyprland and other Wayland compositors pin it with a window rule, see docs/popup-player.md.
Almost everything in VIsage can be changed, and that is what sets it apart. Pick your colours and fonts, choose how the lyrics look and move, set the seek bar, the cover and the controls, and put the queue and library where you want them. No two players have to look the same.
Ten Now Playing backgrounds, nine colour styles, three mini-player shapes and rebindable keys are all in Settings. Version 1.3.0 adds two new lyric scenes (a 3D corridor and the ring-cut Cuts), a fully redesigned Settings with live previews, a layout that fits anything from a phone-sized window to an ultrawide monitor, and a pop-out mini player.
On Now Playing, VIsage paints a live shader behind the song, coloured from the cover art. It is the same set that ships in the app: Aurora, Glow, Mesh, Wave and XMB, plus Blur and Distort, which melt the cover itself. Pick one here and the whole page changes with it.
Blur and Distort need an album cover, so you can only see them in the app.
Looping video covers from Apple Music, Tidal and VIVI play behind the song. The loop crossfades without a gap, and a new track never starts on a black frame.
Nine colour styles, ten Now Playing backgrounds, three mini-player shapes, your own fonts and rebindable keys. Settings is where VIsage becomes yours.
The AppImage and the Windows installer update themselves. Every update is signed, and you can choose Update now, Later or Skip.
Built with Kotlin and Compose Multiplatform, libmpv for playback and a small Rust library for the heavy work. VIsage comes from VIVI Music and has no affiliation with YouTube or Google.