- IDHS, bir streaming servis bağlantısını arama kutusuna yapıştırdığınızda desteklenen diğer platformlarda aynı parçanın bağlantısını bulup gösteren bir web uygulamasıdır; kaynak Spotify ise hızlı bir ses önizlemesi de sunar
- Destek kapsamı tekil parça, albüm, sanatçı, podcast ile sınırlıdır; çalma listelerinin kapsam dışı olduğu açıkça belirtilir
- Spotify, Tidal, YouTube Music, Apple Music, Deezer, SoundCloud, Qobuz, Bandcamp, Pandora adaptörleri vardır ve tüm adaptörler tersine arama ile doğrulanmış bağlantıları destekler
- Sistem, giriş bağlantısından meta veriyi çıkaran bir parser ve hedef platformda arayıp bağlantıyı bulan bir adapter olarak ayrılır; arama sonucunun tam olarak doğru parça ya da şarkı olduğu garanti edilmez
- Yerelde çalıştırmak için Bun ve bazı API anahtarları gerekir; Spotify araması ise Mart 2026 itibarıyla Web API kısıtlamaları nedeniyle Spotify web oynatıcısının dahili GraphQL API'sini ve otomatik yenilenen token'ları kullanır
IDHS ne yapar
- IDHS (I Don't Have Spotify), kullanıcıların sevdikleri streaming servisindeki bir bağlantıyı kopyalayıp arama kutusuna yapıştırdıklarında, desteklenen diğer platformlardaki karşılık gelen öğe bağlantılarını gösterir
- Kaynak bağlantı Spotify ise, kullanıcının doğru parça olup olmadığını kontrol edebilmesi için hızlı bir ses önizlemesi sunar
- Destek kapsamı tekil parça, albüm, sanatçı, podcast öğeleridir
- Çalma listeleri destek kapsamı dışındadır
Desteklenen streaming servisleri
- Web App ve Raycast Extension, streaming servisleri arasında bağlantı dönüşümünü adapter'lar üzerinden işler
- Desteklenen adaptörler şunlardır
- Spotify
- Tidal
- YouTube Music
- Apple Music
- Deezer
- SoundCloud
- Qobuz
- Bandcamp
- Pandora
- Tüm adaptörler Inverted Search ve Verified Links desteği sunar
- Resmi API kullanımı platforma göre değişir
- Resmi API kullananlar: Tidal, Deezer
- Resmi API kullanmayanlar: Spotify, YouTube Music, Apple Music, SoundCloud, Qobuz, Bandcamp, Pandora
Parser ve adapter yapısı
- IDHS, verilen bağlantıdan meta veriyi çıkarır ve bu bilgiye dayanarak genel arama motorlarında ya da Apple Music, YouTube, SoundCloud gibi resmi API'lerde kullanılacak yeni bir arama sorgusu oluşturur
- Arama sonuçları arasından en ilgili görünen öğeyi seçer, ancak dönen bağlantının kullanıcının istediği tam parça ya da şarkı olduğu garanti edilmez
- Arama sorgusu üretim iş akışını iyileştirmeye yönelik öneriler memnuniyetle karşılanır, ancak istekleri hızlı tutmak ve hız sınırına takılmamak için brute-force retry yaklaşımı özellikle kapsam dışıdır
-
Parsers src/parsers
- Parser'lar gelen bağlantının hangi platforma ait olduğunu tespit eder ve normalize edilmiş meta veriyi çıkarır
- Başlık
- Açıklama
- Tür
- Görsel
- İsteğe bağlı ses
- Tutarlı arama sorgusu
- Örneğin Spotify bağlantıları için Open Graph meta verisi toplanır ve parça, albüm, sanatçı, şov, bölüm için arama dizeleri oluşturulur
- Bu arama sorgusu daha sonra diğer platformlarda arama yapmak için kullanılır
-
Adapters src/adapters
- Adapter'lar normalize edilmiş arama sorgusunu hedef platformdaki harici bağlantılara dönüştürür
- Her adapter şu işlerden sorumludur
- Normalize edilmiş arama sorgusuyla platforma özgü arama yapmak
- Arama yöntemi API tabanlı ya da HTML tabanlı olabilir
type, url, isVerified, notAvailable gibi değerleri içeren sonuçlar döndürmek
- Platform güvenilir eşleşme sinyalleri sunuyorsa verified bağlantılara öncelik vermek
- Bu ayrım, parser'ların kaynağı anlamaya, adapter'ların ise hedef bağlantıları bulmaya odaklanmasını sağlayarak sistemi modüler hale getirir
Web App ve Raycast Extension
Yerelde çalıştırma ve API ayarları
- Ortam değişkenleri listesi
.env.test içinde görülebilir
- Aşağıdaki değerler ayrı yapılandırma gerektirir
- Uygulamayı çalıştırma komutları şöyledir
bun install
bun dev
- URL kısaltıcıyı da birlikte çalıştırmak için,
docker-compose.yml içinde kullanılan değerle URL_SHORTENER_API_KEY ayarlandıktan sonra şu komutlar kullanılır
docker compose up -d
bun install
bun dev
Spotify aramasının işlenişi
- Spotify araması Spotify Web API'yi kullanmaz; bunun yerine
open.spotify.com üzerindeki Spotify web oynatıcısından çıkarılmış anonim erişim token'ı kullanır
- Kimlik doğrulama akışı TOTP tabanlıdır ve Spotify web oynatıcısının kullandığı dahili GraphQL API kullanılır
- README, Mart 2026 itibarıyla Spotify'ın Web API'yi kısıtlayarak Development Mode'da Premium hesap zorunluluğu getirdiğini ve kullanılabilir endpoint'leri sınırladığını açıklar
- Bu proje, Premium hesabı olmadığı için Spotify web oynatıcısıyla aynı dahili API'yi kullanır
- Token'lar yaklaşık 1 saatlik son kullanma süresiyle otomatik olarak yenilenir ve geliştirici hesabı gerektirmez
Katkı
- Katkılar PR açılarak kabul edilir
1 yorum
Hacker News yorumları
Spotify dâhil 20'den fazla platformdaki ya da metin dosyasındaki çalma listelerini başka 20'den fazla platforma veya metin dosyasına taşıyan daha etkileyici bir site de var
Herkes birden yüklenip çökertmesin lütfen :)
https://app.tunemymusic.com/transfer
Üçüncü bir tarafın tüm entegrasyon kombinasyonlarını çözmek zorunda kalması yerine, satıcıdan bağımsız bir içe/dışa aktarma formatı olsa keşke
Favorilere eklediğim sanatçıları taşıdı ama yalnızca ada göre eşleştirmeye çalıştığı için aynı isimden birden fazla varsa feci şekilde başarısız oldu; neredeyse rastgele seçiyor gibiydi. Bu hizmetin nasıl olduğunu merak ediyorum
Uygunsuz telif hakkı şikâyetleriyle silinmiş müziklerle dolu 10'dan fazla çalma listem var; silinen parçaların başlığını/sanatçısını bilmediğim için çalma listesini yeniden oluşturamıyorum
Başka müzik hizmetlerinin bağlantılarını açınca tercih ettiğim hizmete otomatik yönlendiren çok basit bir Chrome uzantısı yaptım
Benim durumda YouTube Music'e ayarlı; Slack'te Spotify gibi bir bağlantıya tıklayınca YouTube Music'e gidiyor
https://chromewebstore.google.com/detail/music-link/gnhphofp...
Müziği gerçekten satın alıp kendim saklamak istiyorum. Çünkü Spotify'da olan parçaların giderek daha sık kaybolduğunu görmeye başladım
Ama bugünlerde müzik satın almak çok zor. Çoğu single olarak çıkıyor ve bildiğim kadarıyla yalnızca streaming platformlarına yükleniyor gibi. Streaming platformlarında bulunan aynı tür müziği gerçek ses dosyası olarak satın almanın hâlâ bir yolu var mı?
Ya da mümkünse Bandcamp'ten satın almak
Sonuç olarak “yıldızladığım”/“eklediğim”/“beğendiğim” pek çok parça griye dönüp çalınamaz hâle geldi. Her neyse, dinlediğim müziğin bir kopyasını fiilen edinme meselesiyse, hiç utanmadan tamamen korsan edinmenin de sorun olmadığını düşünüyorum
Yeni albümleri sorunsuz satın alabildim ama yeni single'lar konusunda emin değilim. ABD'de Amazon MP3 satın almaya izin veriyor gibi, ama emin değilim
Spotify abonelik ücretiyle genelde her ay yeni bir albüm alabilmek güzel; albüm koleksiyonumun yavaş yavaş büyümesi hoşuma gidiyor
21. yüzyıla gireli neredeyse 25 yıl olacak; MP3 stream etmek zorunda kaldığımız Napster günleri geride kaldı
Qobuz'da 44,1 kHz / 16-bit stereodan daha yüksek kalitede albümler de sıkça var. Farkı duyamıyor olabilirim ama daha yüksek örnekleme frekansı ya da bit derinliği sunacak kadar özen gösteren sanatçı/ses mühendisi genellikle iyi tınlayan müziğe de önem veriyor demektir
Qobuz tam olarak istediğiniz şeyi yapıyor. Tek tek parçaları veya tüm albümleri satın alıp indirebilirsiniz ve DRM de yok
Kendi satın aldığım CD'lerden %100 bit-perfect/kayıpsız şekilde rip'lediğim ses dosyası koleksiyonum da var; ayrıca Qobuz aboneliğini de kullanıyorum. Rip sonuçlarını aynı CD'yi rip'leyen kişilerin çevrimiçi veritabanıyla doğruladım
Qobuz'un dezavantajı, müzik keşif özelliğinin en iyisi olmaması; arayüzü de epey kötü. Yine de kaliteye önem veren ve müziğine sahip olmak isteyenler için iyi
Günümüzde çoğu ağ üzerinden streaming cihazı Qobuz'u destekliyor. Örneğin ben ağ streameri entegre Yamaha amfi (Yamaha R-N1000A) kullanıyorum; Yamaha'nın müzik streaming uygulaması MusicCast de Qobuz, Tidal ve Spotify'ı destekliyor
Ayağınızın altından çekilebilecek ya da dinlediğiniz parçaları kaldırabilecek çevrimiçi bir hizmetten geçici erişim kiralamak yerine, tek tek parçaları gerçekten satın alıp sahip olabiliyorsunuz
Tarifeleri inceleyin. Satın aldığınız parça sayısına göre daha iyi tarife değişebilir
Anladığım kadarıyla Spotify da Tidal ve Qobuz'un baskısıyla kayıpsız streaminge geçeceğini açıkladı. Nihayet 2024'te
İlk denediğim iki parçada YouTube Music eşleştirmesi başarısız oldu
Kanye West’in Two Words parçası: https://open.spotify.com/track/62wtttQzoIA9HnNmGVd9Yq?si=b1b...
Milabel Ranque’in Two Words parçasına gitti: https://music.youtube.com/watch?v=Y64cFG9dfYo
Kanye West’in Never Let Me Down parçası: https://open.spotify.com/track/34j4OxJxKznBs88cjSL2j9?si=7ec...
Depeche Mode’un Never Let me Down parçasına gitti: https://music.youtube.com/watch?v=snILjFUkk_A
Sitede doğru albüm kapağı görünmesine rağmen böyle oldu. Gerçekten denediğim hiçbir parça düzgün çalışmadı. Normalde böyle mi? Benzer başlıklı parçaları bulma yöntemi mi kullanıyor?
https://open.spotify.com/track/5qFL2uwfnGU8FccwLMgPNQ?si=b-a...
https://idonthavespotify.donado.co/?id=b3Blbi5zcG90aWZ5LmNvb...
Burada YouTube Music bağlantısı eksik:
https://music.youtube.com/watch?v=0IHBCxs7QPE&si=QYvCtGCjKav...
Yine de kararlı çalışırsa çok kullanırım gibi geliyor. Çok kullanışlı küçük bir araç fikri
https://idonthavespotify.donado.co/?id=b3Blbi5zcG90aWZ5LmNvb...
Deezer bağlantısı doğruydu, Tidal çalışmadı, geri kalanlar yanlıştı
Yine de harika bir fikir. Birkaç yıl önce ben de böyle bir şey geliştirmeyi düşünmüştüm
Spotify’ı olmayan kişilerin de bulunduğu bir gruba müzik paylaşırken genelde ortak payda olan YouTube bağlantısına dönülüyor
Sık sık Spotify bağlantısı almam gerektiği için bu iyi. Daha iyi bağlantı GitHub deposu değil, asıl servis sayfası olurdu
https://idonthavespotify.donado.co/
Firefox kullanıcıları için bir uzantı olarak da olsa gerçekten iyi olurdu. Umarım bir gün biri yapar
idparametresinin nereden geldiğini kolayca anlayabilirsek, muhtemelen bookmarklet olarak da yapılabilirBağlantının basit bir hash’i gibi olduğunu tahmin ediyorum
Birden fazla müzik sağlayıcısının bağlantısını içeren sayfalar oluştururken bu sayfayı kullanıyorum: https://odesli.co
Sanatçı, albüm ve parça düzeyinde çalışıyor
Giriş yaparsanız URL’yi özelleştirebiliyorsunuz
Sadece bir kullanıcıyım, herhangi bir çıkar ilişkim yok
Ne yazık ki pek kullanılmadı ve artık bakımını yapmıyorum
/songlink {url}NAS’ın sağladığı en iyi özelliklerden biri, müziği orada saklayıp telefona stream edebilmek
Abonelik servislerine bağlı kalmaktansa bazı müzikleri satın alıp kendim saklamayı tercih ediyorum
Eskiden bir Discord müzik botunun bakımını yaparken YouTube’dan stream ediyordum
Spotify URL’lerinin çalışması için YouTube aramasının güvenilir biçimde eşleşmesi gerekiyordu; iyi işleyen bir püf noktası, parça adı, sanatçı adı vb. ile birlikte Spotify URL’sini de YouTube arama sorgusuna eklemekti
Resmi YouTube videolarının açıklamalarında çoğu zaman Spotify bağlantısı bulunuyor ve YouTube araması açıklamaları da eşleştirdiği için “resmi” videoyu seçmeye epey yardımcı oluyor
Bu servis birkaç servisi daha birbirine bağlıyor, ama mevcut URL’yi doğrudan yapıştırmanıza izin vermiyor: https://odesli.co/
Daha çok linktree türü bir servise benziyor, ama parça ve albüm arayabildiğiniz için bulması kolay
Örnek: https://song.link/i/1051394215
Arama alanındaki yer tutucu da “Search or paste URL” diyor