- IDHS ist eine Web-App, die einen Link zum selben Track auf anderen unterstützten Plattformen sucht und anzeigt, wenn man einen Streaming-Service-Link in das Suchfeld einfügt; wenn die Quelle Spotify ist, bietet sie außerdem eine schnelle Audiovorschau
- Unterstützt werden einzelne Tracks, Alben, Künstler und Podcasts; Playlists sind ausdrücklich nicht im Umfang enthalten
- Es gibt Adapter für Spotify, Tidal, YouTube Music, Apple Music, Deezer, SoundCloud, Qobuz, Bandcamp und Pandora; alle Adapter unterstützen Inverted Search und verifizierte Links
- Das System ist in Parser, die Metadaten aus dem eingegebenen Link extrahieren, und Adapter, die auf der Zielplattform suchen und Links finden, aufgeteilt; es gibt keine Garantie, dass ein Suchergebnis der exakt richtige Track oder Song ist
- Für die lokale Ausführung sind Bun und einige API-Keys erforderlich; wegen Einschränkungen der Web API von Spotify (Stand März 2026) nutzt die Spotify-Suche die interne GraphQL API des Spotify-Webplayers und automatisch erneuerte Tokens
Was IDHS macht
- IDHS (I Don't Have Spotify) zeigt Links zum entsprechenden Eintrag auf anderen unterstützten Plattformen an, wenn Nutzer einen Link von ihrem bevorzugten Streaming-Dienst kopieren und in das Suchfeld einfügen
- Wenn der ursprüngliche Link von Spotify stammt, wird eine schnelle Audiovorschau bereitgestellt, damit Nutzer prüfen können, ob es der richtige Track ist
- Der unterstützte Umfang umfasst einzelne Tracks, Alben, Künstler und Podcasts
- Playlists werden nicht unterstützt
Unterstützte Streaming-Dienste
- Die Web App und die Raycast Extension übernehmen die Link-Umwandlung zwischen Streaming-Diensten über Adapter
- Unterstützte Adapter sind:
- Spotify
- Tidal
- YouTube Music
- Apple Music
- Deezer
- SoundCloud
- Qobuz
- Bandcamp
- Pandora
- Alle Adapter unterstützen Inverted Search und Verified Links
- Ob eine offizielle API verwendet wird, unterscheidet sich je nach Plattform
- Offizielle API verwendet: Tidal, Deezer
- Keine offizielle API verwendet: Spotify, YouTube Music, Apple Music, SoundCloud, Qobuz, Bandcamp, Pandora
Struktur aus Parsern und Adaptern
- IDHS extrahiert Metadaten aus dem bereitgestellten Link und erstellt auf dieser Basis neue Suchanfragen für öffentliche Suchmaschinen oder offizielle APIs wie Apple Music, YouTube oder SoundCloud
- Aus den Suchergebnissen wird der Eintrag ausgewählt, der am relevantesten erscheint; es gibt jedoch keine Garantie, dass der zurückgegebene Link der exakt gewünschte Track oder Song ist
- Vorschläge zur Verbesserung des Workflows zur Suchanfragenerstellung sind willkommen; als Einschränkung sind Brute-Force-Retries jedoch ausgeschlossen, um Requests schnell zu halten und Rate Limits zu vermeiden
-
Parsers src/parsers
- Parser erkennen die Plattform des eingehenden Links und extrahieren normalisierte Metadaten
- Titel
- Beschreibung
- Typ
- Bild
- Optionales Audio
- Konsistente Suchanfrage
- Ein Spotify-Link sammelt beispielsweise Open-Graph-Metadaten und erzeugt Suchstrings, die Tracks, Alben, Künstler, Shows oder Episoden repräsentieren
- Diese Suchanfrage wird anschließend verwendet, um andere Plattformen zu durchsuchen
-
Adapters src/adapters
- Adapter wandeln eine normalisierte Suchanfrage in einen externen Link auf der Zielplattform um
- Jeder Adapter ist für Folgendes zuständig:
- Eine plattformspezifische Suche mit der normalisierten Suchanfrage durchführen
- Die Suchmethode kann API- oder HTML-basiert sein
- Ergebnisse mit Werten wie
type, url, isVerified, notAvailable zurückgeben
- Wenn eine Plattform verlässliche Matching-Signale liefert, werden verified Links bevorzugt
- Diese Trennung modularisiert das System so, dass Parser sich auf das Verstehen der Quelle konzentrieren und Adapter auf das Finden von Ziel-Links
Web App und Raycast Extension
- Die README enthält Beispielansichten der Web App
- Ein Installationslink für die Raycast Extension wird bereitgestellt
- Der Quellcode der Raycast Extension befindet sich unter idonthavespotify in raycast/extensions
Lokale Ausführung und API-Konfiguration
- Die Liste der Umgebungsvariablen ist in
.env.test zu finden
- Die folgenden Werte müssen separat konfiguriert werden
- Der Befehl zum Starten der App lautet:
bun install
bun dev
- Um den URL-Shortener mit auszuführen, setzt man
URL_SHORTENER_API_KEY auf den in docker-compose.yml verwendeten Wert und nutzt anschließend die folgenden Befehle
docker compose up -d
bun install
bun dev
Wie die Spotify-Suche funktioniert
- Die Spotify-Suche verwendet nicht die Spotify Web API, sondern ein anonymes Access Token, das aus dem Spotify-Webplayer auf
open.spotify.com extrahiert wird
- Der Authentifizierungsablauf basiert auf TOTP und nutzt die interne GraphQL API, die auch der Spotify-Webplayer verwendet
- Die README erklärt, dass Spotify die Web API Stand März 2026 eingeschränkt hat, im Development Mode Premium-Konten verlangt und die verfügbaren Endpoints begrenzt
- Da dieses Projekt kein Premium-Konto hat, verwendet es dieselbe interne API wie der Spotify-Webplayer
- Tokens werden automatisch etwa im Stundentakt erneuert; ein Entwicklerkonto ist nicht erforderlich
Beiträge
- Beiträge werden über Pull Requests entgegengenommen
1 Kommentare
Hacker-News-Kommentare
Es gibt auch eine noch beeindruckendere Seite, die Playlists von über 20 Plattformen einschließlich Spotify oder aus Textdateien auf über 20 andere Plattformen oder in Textdateien übertragen kann
Hoffentlich stürmen jetzt nicht alle gleichzeitig hin und legen sie lahm :)
https://app.tunemymusic.com/transfer
Statt dass ein Dritter jede mögliche Integrationskombination lösen muss, wäre ein anbieterneutrales Import-/Exportformat schön
Ich habe meine favorisierten Künstler übertragen, aber es wurde nur nach Namen abgeglichen; wenn es mehrere mit demselben Namen gab, ist es katastrophal gescheitert und schien fast zufällig auszuwählen. Ich frage mich, wie dieser Dienst damit umgeht
Ich habe mehr als zehn Playlists, die voller Musik sind, die wegen missbräuchlicher Copyright-Meldungen gelöscht wurde, aber ich kenne weder Titel noch Künstler der entfernten Tracks und kann die Playlists deshalb nicht rekonstruieren
Ich habe eine sehr einfache Chrome-Erweiterung gebaut, die beim Öffnen von Links zu anderen Musikdiensten automatisch zu meinem bevorzugten Dienst weiterleitet
Bei mir ist das auf YouTube Music eingestellt; wenn ich also in Slack auf einen Link wie Spotify klicke, lande ich bei YouTube Music
https://chromewebstore.google.com/detail/music-link/gnhphofp...
Ich würde Musik gern tatsächlich kaufen und selbst archivieren. Ich sehe nämlich immer häufiger, dass Songs, die es auf Spotify gab, nach und nach verschwinden
Nur ist Musik heutzutage extrem schwer zu kaufen. Meistens erscheint sie als Single, und soweit ich weiß, landet sie nur auf Streaming-Plattformen. Gibt es noch eine Möglichkeit, solche Musik von Streaming-Plattformen als echte Audiodateien zu kaufen?
Oder man kauft, wenn möglich, bei Bandcamp
Das Ergebnis war, dass unzählige Songs, die ich markiert/gespeichert/gelikt hatte, ausgegraut wurden und nicht mehr abspielbar waren. Wenn es also darum geht, tatsächlich Kopien der Musik zu bekommen, die ich höre, finde ich ehrlich gesagt, dass man sich überhaupt nicht schämen muss, sie komplett zu piratisieren
Aktuelle Alben konnte ich problemlos kaufen, bei aktuellen Singles weiß ich es nicht genau. In den USA scheint Amazon den Kauf von MP3s zu erlauben, aber sicher bin ich mir nicht
Für ungefähr den Preis eines Spotify-Abos kann man sich normalerweise jeden Monat ein neues Album kaufen, und ich mag es, dass die Albumsammlung so langsam wächst
Wir sind fast 25 Jahre im 21. Jahrhundert, die Napster-Zeit, in der man MP3s streamen musste, ist vorbei
Bei Qobuz gibt es oft auch Alben in höherer Qualität als 44,1 kHz / 16-Bit-Stereo. Ich kann den Unterschied zwar nicht hören, aber wenn Künstler oder Toningenieure genug Wert darauf legen, eine höhere Abtastrate oder Bittiefe anzubieten, heißt das meist auch, dass ihnen Musik mit gutem Klang wichtig ist
Qobuz macht genau das, was du willst. Man kann einzelne Tracks oder ganze Alben kaufen und herunterladen, und es gibt kein DRM
Ich habe auch eine Sammlung von Audiodateien, die ich von selbst gekauften CDs zu 100 % bitgenau/verlustfrei gerippt habe, und nutze zusätzlich ein Qobuz-Abo. Die Rip-Ergebnisse habe ich anhand einer Online-Datenbank validiert, in die Leute ihre Rips derselben CDs hochladen
Der Nachteil von Qobuz ist, dass die Funktionen zur Musikentdeckung nicht die besten sind und die UI ebenfalls ziemlich schwach ist. Trotzdem ist es gut für Leute, denen Qualität wichtig ist und die ihre Musik besitzen wollen
Heutzutage unterstützen die meisten Netzwerk-Streaming-Geräte Qobuz. Ich verwende zum Beispiel einen Yamaha-Verstärker mit integriertem Netzwerk-Streamer (Yamaha R-N1000A), und Yamahas Musik-Streaming-App MusicCast unterstützt ebenfalls Qobuz, Tidal und Spotify
Statt nur vorübergehenden Zugriff auf einen Online-Dienst zu mieten, der unter den Füßen verschwinden oder Songs entfernen kann, die man hört, kann man einzelne Tracks wirklich kaufen und besitzen
Sieh dir die Tarife an. Je nachdem, wie viele Songs du kaufst, kann ein anderer Tarif günstiger sein
Soweit ich weiß, hat auch Spotify unter dem Druck von Tidal und Qobuz angekündigt, auf verlustfreies Streaming umzusteigen. Endlich im Jahr 2024
Bei den ersten zwei Songs, die ich ausprobiert habe, ist das YouTube-Music-Matching fehlgeschlagen
Kanye Wests Two Words: https://open.spotify.com/track/62wtttQzoIA9HnNmGVd9Yq?si=b1b...
führte zu Two Words von Milabel Ranque: https://music.youtube.com/watch?v=Y64cFG9dfYo
Kanye Wests Never Let Me Down: https://open.spotify.com/track/34j4OxJxKznBs88cjSL2j9?si=7ec...
führte zu Never Let me Down von Depeche Mode: https://music.youtube.com/watch?v=snILjFUkk_A
Auf der Seite wurde sogar das richtige Albumcover angezeigt. Keiner der Songs, die ich tatsächlich eingegeben habe, hat korrekt funktioniert. Ist das normal? Sucht das einfach nach Songs mit ähnlichem Titel?
https://open.spotify.com/track/5qFL2uwfnGU8FccwLMgPNQ?si=b-a...
https://idonthavespotify.donado.co/?id=b3Blbi5zcG90aWZ5LmNvb...
Hier fehlt der YouTube-Music-Link:
https://music.youtube.com/watch?v=0IHBCxs7QPE&si=QYvCtGCjKav...
Wenn es nur zuverlässig funktionieren würde, würde ich es oft benutzen. Eine sehr nützliche kleine Tool-Idee
https://idonthavespotify.donado.co/?id=b3Blbi5zcG90aWZ5LmNvb...
Der Deezer-Link stimmte, Tidal funktionierte nicht, und der Rest war falsch
Trotzdem eine großartige Idee. Ich hatte vor ein paar Jahren auch mal überlegt, so etwas zu bauen
Wenn man Musik in einer Gruppe teilt, in der Leute ohne Spotify dabei sind, landet man meistens wieder bei YouTube-Links als kleinstem gemeinsamen Nenner
Weil ich oft Spotify-Links bekomme, gefällt mir das hier. Der bessere Link wäre eher die eigentliche Serviceseite als das GitHub-Repository
https://idonthavespotify.donado.co/
Als Erweiterung für Firefox wäre das auch richtig gut. Hoffentlich baut das irgendwann jemand
id-Parameter auf der Ergebnisseite kommt, könnte man das wahrscheinlich auch als Bookmarklet bauenIch vermute, es ist einfach eine Art Hash des Links
Ich nutze diese Seite, wenn ich eine Seite mit Links zu mehreren Musikanbietern erstellen will: https://odesli.co
Funktioniert für Künstler, Alben und Songs
Wenn man eingeloggt ist, kann man die URL anpassen
Ich bin nur Nutzer, habe also kein finanzielles Interesse daran
Leider wurde er nicht viel benutzt, und ich pflege ihn inzwischen nicht mehr
/songlink {url}Eine der besten Funktionen eines NAS ist, dass man Musik dort speichern und dann aufs Handy streamen kann
Ich bevorzuge es, einen Teil meiner Musik zu kaufen und selbst zu archivieren, statt von Abo-Diensten abhängig zu sein
Als ich früher einen Discord-Musik-Bot gepflegt habe, wurde von YouTube gestreamt
Damit Spotify-URLs funktionierten, musste die YouTube-Suche zuverlässig treffen, und ein Trick, der gut funktioniert hat, war, zusätzlich zu Songtitel, Künstlername usw. auch die Spotify-URL in die YouTube-Suchanfrage aufzunehmen
Offizielle YouTube-Videobeschreibungen enthalten oft den Spotify-Link, und weil die YouTube-Suche auch Beschreibungen abgleicht, hilft das ziemlich gut dabei, das „offizielle“ Video herauszufiltern
Dieser Dienst verknüpft noch ein paar weitere Dienste, aber man kann bestehende URLs nicht einfach hineinkopieren: https://odesli.co/
Er ist eher wie ein Linktree-artiger Dienst, aber man kann nach Songs und Alben suchen, also ist das Auffinden einfach
Beispiel: https://song.link/i/1051394215
Im Platzhalter des Suchfelds steht auch „Search or paste URL“