A desktop music player built with Electron that streams audio from YouTube Music. Clean UI, no accounts, no ads.
Warning
This is a Beta version of the app. It's still a work in progress and may contain bugs or unfinished features, use at your own discretion.
- Search — Find songs, artists, and albums via YouTube Music
- Playback — Stream audio directly with play/pause, seek, skip, volume
- Queue — View and manage upcoming tracks, drag reorder
- Smart Queue — Auto-fills with similar songs when the queue runs out
- Shuffle & Repeat — Shuffle queue, repeat one or all
- Playlists — Create, rename, delete, and add/remove tracks. Custom or auto-generated covers. Drag & drop songs into sidebar playlists
- Liked Songs — Heart any track to save it
- Synced Lyrics — Spotify-like synced lyrics from multi-source
- Artist Pages — Top songs, discography, monthly audience, fans also like, and live performances
- Follow Artists — Follow artists and see their recent releases on the home page
- Music Videos — Watch music videos in-app
- Discord Rich Presence — Show what you're listening to on Discord
- Cloud Sync — Sign in with email to sync your library across devices
- Themes — Built-in color themes
- Keyboard Shortcuts — Full keyboard control (see below)
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
You'll need Node.js (v18+) and yt-dlp installed on your system.
# Clone the repo
git clone https://github.com/Flalal/Snowify.git
cd Snowify
# Install dependencies
npm install
# Run in development mode (with hot reload)
npm run dev
# Preview production build
npm startBuild standalone executables with yt-dlp bundled automatically (no need to install yt-dlp separately for packaged builds):
# Windows (.exe installer)
npm run build:win
# Linux (AppImage)
npm run build:linux
# Both platforms
npm run build:allOutput files are placed in the dist/ directory.
| Dependency | Purpose |
|---|---|
| Electron | Desktop app shell |
| ytmusic-api | YouTube Music search, artist & album data |
| yt-dlp | Extracts audio stream URLs (must be in PATH for dev, bundled in builds) |
| synclyrics | Synced lyrics from Musixmatch, LrcLib, Netease |
| Key | Action |
|---|---|
Space |
Play / Pause |
← / → |
Seek backward / forward 5s |
Ctrl+← / Ctrl+→ |
Previous / Next track |
↑ / ↓ |
Volume up / down |
/ |
Focus search |
- Electron — Desktop framework
- ytmusic-api — YouTube Music metadata
- yt-dlp — Audio stream extraction
- synclyrics — Synced lyrics (Musixmatch, LrcLib, Netease)
- Discord RPC — Rich presence integration
- Song recommendations
- Smart queue — auto-fills with similar songs when not playing an album/playlist and the queue runs out
- Lyrics page with synced lyrics (Spotify-like)
- Drag and drop songs into playlists
- Discord RPC
- Follow Artist feature
- Upcoming Releases from followed artists
- Recent Releases from followed artists
- Watch Music Videos in-app
- Spotify playlists migration support
- "Fans might also like" section in artists page
- Monthly audience stat per artist
- Cloud sync
- User accounts
- Multi-source lyrics (Musixmatch, LrcLib, Netease)
- Watch Live Performances in-app
This app is for personal and educational use only. It streams content from publicly available sources. I am not responsible for how anyone chooses to use it.
If you find bugs, have ideas, or want to clean something up, feel free to open an issue or a PR. All skill levels welcome.
Note
AI Disclaimer: Parts of this project were assisted or written by AI. If that's something you're not comfortable with, no hard feelings, I understand and I don't force anyone to use it. The code may have flaws. If you spot something that could be better, contributions are very welcome. I'm still learning and would appreciate the help.






