- IDHS adalah aplikasi web yang, saat tautan layanan streaming ditempelkan ke kolom pencarian, menemukan dan menampilkan tautan untuk trek yang sama di platform lain yang didukung; jika sumbernya Spotify, aplikasi ini juga menyediakan pratinjau audio cepat
- Cakupannya mencakup trek, album, artis, dan podcast individual; playlist dinyatakan berada di luar cakupan
- Tersedia adaptor untuk Spotify, Tidal, YouTube Music, Apple Music, Deezer, SoundCloud, Qobuz, Bandcamp, dan Pandora, dan semua adaptor mendukung pencarian terbalik serta tautan terverifikasi
- Sistem terbagi menjadi parser yang mengambil metadata dari tautan input dan adaptor yang mencari tautan di platform tujuan; hasil pencarian tidak dijamin merupakan trek atau lagu yang persis benar
- Untuk menjalankan secara lokal diperlukan Bun dan beberapa API key; per Maret 2026, pencarian Spotify menggunakan GraphQL API internal dari pemutar web Spotify dan token yang diperbarui otomatis karena pembatasan Web API Spotify
Apa yang dilakukan IDHS
- IDHS(I Don't Have Spotify) menampilkan tautan item yang sesuai di platform lain yang didukung saat pengguna menyalin tautan dari layanan streaming favoritnya dan menempelkannya ke kolom pencarian
- Jika tautan sumber adalah Spotify, IDHS menyediakan pratinjau audio cepat agar pengguna dapat memastikan apakah treknya benar
- Cakupan dukungan adalah trek, album, artis, dan podcast individual
- Playlist berada di luar cakupan dukungan
Layanan streaming yang didukung
- Web App dan Raycast Extension menangani konversi tautan antar-layanan streaming melalui adaptor
- Adaptor yang didukung adalah sebagai berikut
- Spotify
- Tidal
- YouTube Music
- Apple Music
- Deezer
- SoundCloud
- Qobuz
- Bandcamp
- Pandora
- Semua adaptor mendukung Inverted Search dan Verified Links
- Penggunaan API resmi berbeda-beda menurut platform
- Menggunakan API resmi: Tidal, Deezer
- Tidak menggunakan API resmi: Spotify, YouTube Music, Apple Music, SoundCloud, Qobuz, Bandcamp, Pandora
Struktur parser dan adaptor
- IDHS mengekstrak metadata dari tautan yang diberikan, lalu berdasarkan informasi tersebut membuat kueri pencarian baru untuk digunakan di mesin pencari publik atau API resmi seperti Apple Music, YouTube, dan SoundCloud
- IDHS memilih item yang tampak paling relevan di antara hasil pencarian, tetapi tidak ada jaminan bahwa tautan yang dikembalikan adalah trek atau lagu persis yang diinginkan pengguna
- Usulan peningkatan alur kerja pembuatan kueri pencarian diterima, tetapi ada batasan bahwa percobaan ulang brute-force dikecualikan demi menjaga request tetap cepat dan menghindari rate limit
-
Parsers src/parsers
- Parser mengidentifikasi platform dari tautan yang masuk dan mengekstrak metadata yang sudah dinormalisasi
- Judul
- Deskripsi
- Tipe
- Gambar
- Audio opsional
- Kueri pencarian yang konsisten
- Sebagai contoh, tautan Spotify mengumpulkan metadata Open Graph dan membuat string pencarian yang merepresentasikan trek, album, artis, show, atau episode
- Kueri pencarian ini kemudian digunakan untuk mencari di platform lain
-
Adapters src/adapters
- Adaptor mengubah kueri pencarian yang sudah dinormalisasi menjadi tautan eksternal di platform tujuan
- Setiap adaptor bertanggung jawab atas hal berikut
- Melakukan pencarian khusus platform dengan kueri pencarian yang sudah dinormalisasi
- Metode pencarian bisa berbasis API atau HTML
- Mengembalikan hasil yang mencakup nilai seperti
type, url, isVerified, dan notAvailable
- Jika platform menyediakan sinyal pencocokan yang dapat dipercaya, tautan verified diprioritaskan
- Pemisahan ini memodularkan sistem agar parser fokus memahami sumber, sedangkan adaptor fokus menemukan tautan tujuan
Web App dan Raycast Extension
Menjalankan secara lokal dan pengaturan API
- Daftar environment variable dapat dilihat di
.env.test
- Nilai berikut perlu diatur secara terpisah
- Perintah untuk menjalankan aplikasi adalah sebagai berikut
bun install
bun dev
- Untuk menjalankan URL shortener bersama aplikasi, atur
URL_SHORTENER_API_KEY dengan nilai yang digunakan di docker-compose.yml, lalu gunakan perintah berikut
docker compose up -d
bun install
bun dev
Cara menangani pencarian Spotify
- Pencarian Spotify tidak menggunakan Spotify Web API, melainkan menggunakan token akses anonim yang diekstrak dari pemutar web Spotify di
open.spotify.com
- Alur autentikasinya berbasis TOTP dan menggunakan GraphQL API internal yang dipakai oleh pemutar web Spotify
- README menjelaskan bahwa per Maret 2026, Spotify membatasi Web API sehingga mewajibkan akun Premium dalam Development Mode dan membatasi endpoint yang dapat digunakan
- Karena proyek ini tidak memiliki akun Premium, proyek ini menggunakan API internal yang sama dengan pemutar web Spotify
- Token diperbarui otomatis dengan masa berlaku sekitar 1 jam, dan tidak memerlukan akun developer
Kontribusi
- Kontribusi diterima dengan cara membuka PR
1 komentar
Komentar Hacker News
Ada juga situs yang lebih mengesankan yang memindahkan playlist dari sekitar 20 platform termasuk Spotify, atau dari file teks, ke sekitar 20 platform lain atau ke file teks
Semoga jangan semua menyerbu sampai bikin situsnya tumbang :)
https://app.tunemymusic.com/transfer
Andai ada format impor/ekspor yang netral vendor, alih-alih pihak ketiga harus menyelesaikan semua kombinasi integrasi
Saya memindahkan artis favorit, tetapi layanan itu mencoba mencocokkan hanya berdasarkan nama, jadi kalau ada dua atau lebih nama yang sama hasilnya kacau total dan tampaknya memilih hampir secara acak. Penasaran bagaimana dengan layanan ini
Saya punya lebih dari 10 playlist penuh musik yang dihapus karena klaim hak cipta yang tidak semestinya, dan karena tidak tahu judul/artis track yang dihapus, saya bahkan tidak bisa menyusun ulang playlist-nya
Saya membuat ekstensi Chrome yang sangat sederhana, yang otomatis mengalihkan link layanan musik lain ke layanan pilihan saya
Dalam kasus saya, saya setel ke YouTube Music, jadi ketika mengklik link seperti Spotify di Slack, saya dibawa ke YouTube Music
https://chromewebstore.google.com/detail/music-link/gnhphofp...
Saya ingin benar-benar membeli musik dan menyimpannya sendiri. Karena saya makin sering melihat lagu-lagu yang dulu ada di Spotify perlahan menghilang
Tapi sekarang musik sangat sulit dibeli. Sebagian besar dirilis sebagai single, dan sejauh yang saya tahu sepertinya hanya tersedia di platform streaming. Apakah masih ada cara membeli musik semacam yang ada di platform streaming sebagai file audio sungguhan?
Atau beli di Bandcamp kalau memungkinkan
Akibatnya, banyak sekali lagu yang sudah saya “beri bintang”/“tambahkan”/“sukai” menjadi abu-abu dan tidak bisa diputar. Bagaimanapun, kalau urusannya mendapatkan salinan musik yang saya dengarkan secara nyata, saya rasa tidak perlu merasa malu sama sekali untuk membajaknya sepenuhnya
Album terbaru bisa saya beli tanpa masalah, tetapi untuk single terbaru saya kurang tahu. Di AS, Amazon tampaknya mengizinkan pembelian MP3, tapi saya tidak yakin
Dengan biaya langganan Spotify, biasanya kita bisa membeli satu album baru setiap bulan, jadi itu menyenangkan, dan saya suka koleksi album saya bertambah perlahan
Kita sudah hampir 25 tahun memasuki abad ke-21; masa Napster ketika kita harus streaming MP3 sudah berlalu
Di Qobuz, sering juga ada album dengan kualitas lebih tinggi daripada stereo 44,1 kHz / 16-bit. Saya mungkin tidak bisa mendengar bedanya, tetapi jika artis/engineer audio cukup peduli untuk menyediakan frekuensi sampling atau bit depth yang lebih tinggi, biasanya itu berarti mereka juga peduli agar musiknya terdengar bagus
Qobuz melakukan persis yang Anda inginkan. Anda bisa membeli dan mengunduh track individual atau album penuh, dan tanpa DRM
Saya juga punya koleksi file audio hasil rip dari CD yang saya beli sendiri secara 100% bit-perfect/lossless, dan juga menggunakan langganan Qobuz. Hasil rip itu saya verifikasi dengan DB online dari orang-orang yang merip CD yang sama
Kekurangan Qobuz adalah fitur penemuan musiknya bukan yang terbaik, dan UI-nya juga cukup buruk. Meski begitu, ini bagus untuk orang yang mementingkan kualitas dan ingin memiliki musiknya sendiri
Sekarang sebagian besar perangkat streaming jaringan mendukung Qobuz. Misalnya, saya memakai amplifier Yamaha dengan network streamer terintegrasi (Yamaha R-N1000A), dan aplikasi streaming musik Yamaha, MusicCast, juga mendukung Qobuz, Tidal, dan Spotify
Anda bisa benar-benar membeli dan memiliki track individual, bukan menyewa akses sementara ke layanan online yang bisa hilang dari bawah kaki Anda atau menghapus lagu yang sedang Anda dengarkan
Coba cek paket harganya. Paket yang lebih baik bisa berbeda tergantung jumlah lagu yang Anda beli
Sejauh yang saya pahami, Spotify juga, karena tekanan dari Tidal dan Qobuz, mengumumkan akan beralih ke streaming lossless. Baru akhirnya pada 2024
Pada dua lagu pertama yang saya coba, pencocokan YouTube Music gagal
Two Words dari Kanye West: https://open.spotify.com/track/62wtttQzoIA9HnNmGVd9Yq?si=b1b...
Malah masuk ke Two Words dari Milabel Ranque: https://music.youtube.com/watch?v=Y64cFG9dfYo
Never Let Me Down dari Kanye West: https://open.spotify.com/track/34j4OxJxKznBs88cjSL2j9?si=7ec...
Malah masuk ke Never Let me Down dari Depeche Mode: https://music.youtube.com/watch?v=snILjFUkk_A
Padahal artwork album yang benar muncul di situs. Tidak ada satu pun lagu yang saya coba yang benar-benar berfungsi dengan benar. Memang begini? Apakah caranya mencari lagu dengan judul mirip?
https://open.spotify.com/track/5qFL2uwfnGU8FccwLMgPNQ?si=b-a...
https://idonthavespotify.donado.co/?id=b3Blbi5zcG90aWZ5LmNvb...
Di sini tautan YouTube Music tidak ada:
https://music.youtube.com/watch?v=0IHBCxs7QPE&si=QYvCtGCjKav...
Tetap saja, kalau bisa bekerja stabil, sepertinya saya akan sering memakainya. Ini ide alat kecil yang sangat berguna
https://idonthavespotify.donado.co/?id=b3Blbi5zcG90aWZ5LmNvb...
Tautan Deezer benar, Tidal tidak berfungsi, dan sisanya salah
Tetap saja idenya bagus. Beberapa tahun lalu saya juga sempat berpikir untuk mencoba mengimplementasikan hal seperti ini
Saat berbagi musik ke grup yang berisi orang yang tidak punya Spotify, biasanya akhirnya kembali ke tautan YouTube sebagai penyebut yang sama
Saya sering menerima tautan Spotify, jadi ini bagus. Tautan yang lebih baik adalah halaman layanan sebenarnya, bukan repositori GitHub
https://idonthavespotify.donado.co/
Akan sangat bagus juga kalau ada sebagai ekstensi untuk pengguna Firefox. Semoga suatu saat ada yang membuatnya
iddi halaman hasil berasal, mungkin ini juga bisa dibuat sebagai bookmarkletSaya menduga itu semacam hash sederhana dari tautan
Saya memakai halaman ini saat membuat halaman berisi tautan ke berbagai penyedia musik: https://odesli.co
Berfungsi untuk artis, album, dan lagu
Jika login, URL bisa dikustomisasi
Saya hanya pengguna, tidak punya kepentingan apa pun
Sayangnya tidak banyak dipakai dan sekarang sudah tidak saya pelihara
/songlink {url}Salah satu fitur terbaik yang saya dapat dari NAS adalah bisa menyimpan musik di sana dan streaming ke ponsel
Daripada bergantung pada layanan berlangganan, saya lebih suka membeli sebagian musik dan menyimpannya sendiri
Dulu saat memelihara bot musik Discord, saya melakukan streaming dari YouTube
Agar URL Spotify berfungsi, pencarian YouTube harus cocok dengan andal, dan satu trik yang cukup berhasil adalah memasukkan URL Spotify juga ke kata kunci pencarian YouTube bersama judul lagu, nama artis, dan lainnya
Deskripsi video YouTube resmi sering berisi tautan Spotify, dan karena pencarian YouTube juga mencocokkan deskripsi, itu cukup membantu untuk memilih video “resmi”
Layanan ini menghubungkan beberapa layanan tambahan, tetapi URL yang sudah ada tidak bisa langsung ditempel begitu saja: https://odesli.co/
Ini lebih mirip layanan tipe linktree, tetapi bisa mencari lagu dan album sehingga mudah ditemukan
Contoh: https://song.link/i/1051394215
Placeholder di kolom pencariannya juga bertuliskan “Search or paste URL”