Glass HarborNine Lanterns
0:003:24
ZCYMP

Docs

Everything about installing and using ZCYMP 1.0.0 on Windows, and building it yourself.

Install

Installer

  1. Download ZCYMP-1.0.0-Setup-x64.exe and run it.
  2. If SmartScreen says "Windows protected your PC", choose More info, then Run anyway. The build is not code-signed.
  3. Pick a folder or keep the default, %LOCALAPPDATA%\Programs\ZCYMP. No administrator rights are needed.

To remove it, open Windows Settings, Apps, Installed apps, and uninstall "Zero Client Youtube Music Player". The uninstaller asks whether to delete your settings and cached songs too.

Portable

Unzip ZCYMP-1.0.0-portable-x64.zip anywhere and run zcymp.exe. While portable.txt sits beside the exe, everything the app saves goes into a data folder next to it. Keep WebView2Loader.dll beside the exe; the app will not start without it.

Check the download

In PowerShell, compare the result with the SHA-256 on the download page:

Get-FileHash .\ZCYMP-1.0.0-Setup-x64.exe -Algorithm SHA256

First run

You can search and play without an account. To see your library, playlists and recommendations, choose Sign in in the sidebar. A window opens with Google's own sign-in page, so you type your password there and not into ZCYMP. The session it gets back is kept in Windows Credential Manager.

Home, Explore and Library are in the sidebar. The search box is at the top. Click a song to play it; the player bar at the bottom has the queue, the mini player and the now-playing view.

Island mini player

Press Ctrl + M, or the mini player button in the player bar. The app window becomes a small black notch at the top centre of the screen it was on, and stays above other windows.

At restShows the cover, the song's name, bars that move while music plays, and a thin line for how far the song has got.
Point at itIt opens into a mini player: cover, title and artists, a seek line you can click or drag, and previous, play / pause and next.
Double-clickOpens the full-screen player.
Corner buttonGoes back to the full window. Ctrl + M does the same.

The island always sits at the top centre; it cannot be dragged. Everything around it stays clickable. If you prefer the older strip-style mini player, turn off Settings, Appearance, Mini player, Island mini player and restart the app.

Good to know. The island lives on one monitor, the one the app was on. A game running in exclusive full screen can still cover it.

Song cache

When a song finishes streaming, ZCYMP keeps the audio on disk. The next time you play it, it starts immediately, uses no network, and works offline. With the cache on, the next song in your queue is also fetched ahead of time.

Open Settings, Cache and downloads:

Song cacheOn or off. Off: every play streams again. Songs already kept stay until you delete them.
Size limit256 MB to 10 GB (1 GB to start with). A song is about 4 MB. When the cache is full, the songs you played longest ago are removed first.
Delete cacheRemoves every cached song and all cached artwork at once, and shows how much space that freed.

The cache is separate from Downloads. A download is a tagged audio file in your Music folder that you asked for from a song's menu; the cache is the app's own and can be emptied at any time. Songs longer than about 16 MB of audio play through a moving window and are not cached.

Artwork and display

Settings, Display controls how much the app loads and draws.

ArtworkOff, Low, Balanced or High. Lower settings download smaller pictures and keep fewer in memory. Off downloads no artwork at all and shows plain tiles.
Album and playlist coversOn cards and at the top of album and playlist pages.
Artist picturesArtists' round pictures and the banner across an artist's page, the largest picture the app loads.
ExploreSwitch New releases, Top songs and Charts on or off separately. A shelf that is off loads nothing.
Song listsRow size, covers in rows, the album column, play counts, durations and the explicit badge.
CardsSmall, medium or large, with one- or two-line titles.
AnimationsOff makes everything change at once and draws fewer frames.

For the lightest setup, set Artwork to Low or Off, turn off Animations, and leave Appearance, Album-art background off.

Network and HTTP/3

Settings, General, Connection shows how artwork is being fetched and lets you change it.

HTTP/3 for artworkOn by default. The app checks at launch whether HTTP/3 gets through on your network. If it does not, or a request fails, artwork is fetched over HTTP/2 instead without you noticing.
HTTP/3 for songsOff by default and experimental. YouTube ties a song's address to the connection that asked for it, so on some networks HTTP/3 is refused. Each block that fails is fetched the usual way at once, and after two failures songs stay on the usual connection until you restart.
ProxySend everything through an HTTP or SOCKS proxy, or follow Windows' setting. HTTP/3 is not used through a proxy.

Keyboard shortcuts

SpacePlay or pause
Ctrl + → / ←Next or previous song
Ctrl + ↑ / ↓Volume up or down
Ctrl + FSearch
LOpen or close now playing
FFull screen, while now playing is open
Ctrl + MMini player on or off
Alt + ← / →Back or forward
F5Refresh the page
EscLeave full screen or now playing
Ctrl + + / - / 0Zoom in, zoom out, back to 100%
Media keysPlay / pause, next and previous work from anywhere

The full list, and global shortcuts you can set yourself, are in Settings, Keyboard shortcuts.

Where files live

Installed%LOCALAPPDATA%\Programs\ZCYMP
Settings and caches%APPDATA%\zcymp\data (portable: the data folder beside the exe)
Cached songsdata\cache\songs
Cached artworkdata\thumbs
Logdata\zcymp.log, and zcymp.prev.log from the launch before
DownloadsMusic\ZCYMP, or the folder you pick in Settings

ZCYMP shares nothing with an installed ytm-rs; the two can sit side by side.

Troubleshooting

The app does not start (portable)

Make sure WebView2Loader.dll is in the same folder as zcymp.exe. Unzip the whole archive rather than running the exe from inside it.

Sign-in fails or the sign-in window is blank

Sign-in needs Microsoft Edge WebView2. Install or repair the "WebView2 Runtime" from Microsoft, then try again. If the message mentions an error sending a request, something between you and YouTube is blocking the connection: check your VPN, firewall, or the app's proxy setting.

A song will not play, or stops after a moment

Try another song first. If only some songs fail, they may need an account or be unavailable in your country. If "HTTP/3 for songs" is on, turn it off. The log file has the reason on a line that starts with the song's id.

Covers do not appear

Check Settings, Display, Artwork is not Off and the cover switches are on. If your network blocks UDP oddly, turn off "HTTP/3 for artwork".

Start over

Quit the app and delete %APPDATA%\zcymp. That removes settings, the sign-in and both caches.

Build from source

You need a current stable Rust toolchain. Download the source, unzip it, and run:

cargo build --release

The app is target\release\zcymp.exe. HTTP/3 uses reqwest's http3 feature, which needs --cfg reqwest_unstable; the project's .cargo/config.toml sets it. To leave HTTP/3 out:

cargo build --release --no-default-features

To make the installer you need NSIS 3:

makensis -DVERSION=1.0.0 -DEXE=..\target\release\zcymp.exe installer\zcymp.nsi

On Linux, install libssl-dev libasound2-dev libgtk-3-dev libwebkit2gtk-4.1-dev libxdo-dev libayatana-appindicator3-dev libdbus-1-dev first. Run the tests with cargo test. The README in the source has the rest, including cross-building for Windows from Linux.

Credits and licence