I Built a Spotify Desktop Pet as My First Godot Project, BelPet! Here's how I did it.
Description and use
BelPet is a transparent, always‑on‑top desktop pet built in Godot 4 that doubles as a Spotify controller, handling playback, volume, track navigation, and album art via Spotify Web API and Web Playback SDK. It requires a Spotify Premium account and a custom Client ID.
Problem
Create a lightweight desktop pet that also serves as a Spotify controller without constantly opening Spotify.
Outcome
BelPet provides a convenient desktop Spotify controller with drag‑and‑drop pet animation, synchronized playback, and album art display, all built in Godot 4 with C# and a WebView.
Workflow
- 1. Set up Godot 4 project with C#.
- 2. Create transparent, borderless, always‑on‑top window and mouse‑passthrough regions.
- 3. Add simple gravity to let the pet fall to the taskbar area.
- 4. Integrate Spotify Web Playback SDK via a WebView using godot_wry.
- 5. Use Spotify Web API to poll playback state when another device is active.
- 6. Implement UI controls: play/pause, next/prev, seek, volume via hover, album art display.
- 7. Package the application for desktop distribution.
- 8. Test functionality with Spotify Premium account and active device.
- 9. Publish source on GitHub under MIT license.
Evidence
BelPet uses both the Spotify Web API and Spotify Web Playback SDK, but they serve slightly different purposes.
I ended up using godot_wry to embed a WebView inside the application.
BelPet works normally when BelPet itself is selected as the active Spotify playback device.
- Record date: 2026-09-21T21:00:15.288Z