finds.dev← search

// the find

sjdonado/idonthavespotify

★ 1,898 · TypeScript · MIT · updated Apr 2026

Effortlessly convert music links between streaming services

idonthavespotify converts music links between streaming platforms — paste a Spotify URL, get back Apple Music, Tidal, YouTube Music, Deezer, and more. It's a self-hosted web app built on Bun with a Raycast extension for desktop users. The parser/adapter split is clean: one side extracts metadata from the source link, the other searches each destination platform independently.

The parser/adapter architecture is genuinely well-designed — adding a new platform means writing one parser and one adapter without touching anything else. The Spotify workaround (TOTP-based anonymous token against the internal GraphQL API, auto-refreshed) is clever and pragmatic given Spotify's March 2026 API changes that broke most similar tools. Test coverage includes integration tests with recorded snapshots rather than live API calls, which keeps the suite fast and reproducible. The isVerified flag per adapter is honest: it distinguishes platforms that gave a confident match from those that just returned the first search result.

The 'best match' selection is a fuzzy search heuristic with no fallback strategy — the README explicitly says it can return the wrong track or not a song at all, and there's no visible mechanism for users to report bad matches or trigger a retry with a different query. Several adapters scrape HTML rather than using official APIs (Apple Music, SoundCloud, YouTube without the API key), which means they can break silently on any frontend change with no warning. Playlist support is explicitly out of scope, which is a real gap for anyone who wants to share playlists between services. The Spotify anonymous token approach, while clever, is fragile by nature — Spotify can invalidate the TOTP flow at any time and there's no fallback.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →