Cassette
A music player for a library on your own server. Open source, self-hosted, and built to keep playing when the network stops.
How it fits together
- The server holds your audio files and serves them over HTTPS. You run it.
- The iOS app plays that library, and keeps copies of what you choose so it works offline.
- The browser app does the same in a tab, and is where a library is managed.
The phone app is a player: it holds no catalogue and cannot add music to a library. Which server it talks to is not built in — it asks on first launch.
What it does well
- Offline playback from real files, not a cache that can be evicted.
- Lyrics that scroll in time and move with the measured loudness of the track.
- A queue you can see and reorder, with hand-queued songs kept apart from the album you are on.
- Lock-screen and car controls with artwork.
- A sleep timer that fades out, and can wait for the end of the song rather than cutting it.
The demo library
Our demo server carries a small library so the app can be tried without setting up a server first. Everything in it is Creative Commons or public domain — a demo library is published content, so it is content we have the right to publish.
Sources are Free Music Archive, ccMixter and Musopen, all filtered to CC0, CC BY or public-domain material only: nothing NonCommercial, and nothing NoDerivatives, since the audio is converted on the way in.
| Title | Artist | Licence | Source |
|---|---|---|---|
| Per-track credits are published here alongside the demo library. | |||
Privacy
No analytics, no advertising, no tracking. Your library never leaves your own server. The details are on the privacy page.