2 पॉइंट द्वारा GN⁺ 2024-11-12 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • IDHS एक web app है जिसमें streaming service link को search box में paste करने पर यह उसी track के links को समर्थित दूसरे platforms पर खोजकर दिखाता है, और अगर source Spotify है तो quick audio preview भी देता है
  • समर्थित items अलग-अलग tracks, albums, artists, podcasts हैं; playlists को scope से बाहर बताया गया है
  • Spotify, Tidal, YouTube Music, Apple Music, Deezer, SoundCloud, Qobuz, Bandcamp, Pandora adapters मौजूद हैं, और सभी adapters Inverted Search और verified links को support करते हैं
  • सिस्टम input link से metadata निकालने वाले parser और destination platform पर search करके link खोजने वाले adapter में बंटा है; search result के बिल्कुल सही track या song होने की guarantee नहीं है
  • local run के लिए Bun और कुछ API keys चाहिए; मार्च 2026 तक Web API restrictions की वजह से Spotify search Spotify web player के internal GraphQL API और auto-refresh token का उपयोग करता है

IDHS क्या करता है

  • IDHS(I Don't Have Spotify) में user अपनी पसंदीदा streaming service का link copy करके search box में paste करता है, तो यह समर्थित दूसरे platforms पर उस item के links दिखाता है
  • अगर original link Spotify का है, तो user सही track है या नहीं यह check कर सके, इसके लिए quick audio preview देता है
  • supported scope अलग-अलग tracks, albums, artists, podcasts है
    • playlists support scope से बाहर हैं

समर्थित streaming services

  • Web App और Raycast Extension adapters के जरिए streaming services के बीच link conversion handle करते हैं
  • supported adapters ये हैं
    • Spotify
    • Tidal
    • YouTube Music
    • Apple Music
    • Deezer
    • SoundCloud
    • Qobuz
    • Bandcamp
    • Pandora
  • सभी adapters Inverted Search और Verified Links support करते हैं
  • official API के उपयोग की स्थिति platform के हिसाब से अलग है
    • official API इस्तेमाल: Tidal, Deezer
    • official API इस्तेमाल नहीं: Spotify, YouTube Music, Apple Music, SoundCloud, Qobuz, Bandcamp, Pandora

Parser और adapter structure

  • IDHS दिए गए link से metadata extract करता है और उस जानकारी के आधार पर public search engines या Apple Music, YouTube, SoundCloud जैसे official APIs में इस्तेमाल करने के लिए नई search query बनाता है
  • search results में से सबसे relevant दिखने वाला item चुना जाता है, लेकिन returned link user के चाहिए हुए exact track या song का ही होगा, इसकी guarantee नहीं है
  • search query generation workflow सुधारने के सुझावों का स्वागत है, लेकिन requests को fast रखने और rate limits से बचने के लिए bruteforce retries को बाहर रखने की constraint है
  • Parsers src/parsers

    • parser incoming link के platform को identify करता है और normalized metadata extract करता है
    • title
    • description
    • type
    • image
    • optional audio
    • consistent search query
    • उदाहरण के लिए Spotify link Open Graph metadata collect करता है और track, album, artist, show, episode को represent करने वाली search string generate करता है
    • यह search query बाद में दूसरे platforms पर search करने के लिए इस्तेमाल होती है
  • Adapters src/adapters

    • adapters normalized search query को destination platform के external link में बदलते हैं
    • हर adapter की जिम्मेदारियां ये हैं
    • normalized search query से platform-specific search करना
    • search method API या HTML-based हो सकता है
    • type, url, isVerified, notAvailable जैसे values वाले results return करना
    • अगर platform भरोसेमंद matching signal देता है, तो verified link को प्राथमिकता देना
    • यह separation system को modular बनाता है, ताकि parser source को समझने पर और adapter destination link खोजने पर focus करे

Web App और Raycast Extension

  • README में Web App screen example शामिल है
  • Raycast Extension installation link दिया गया है
  • Raycast Extension source code raycast/extensions के idonthavespotify में है

local run और API setup

  • environment variables की list .env.test में देखी जा सकती है
  • नीचे दिए values के लिए अलग setup जरूरी है
  • app चलाने की command इस तरह है
bun install
bun dev
  • URL shortener को साथ में चलाने के लिए docker-compose.yml में इस्तेमाल होने वाली value से URL_SHORTENER_API_KEY set करें, फिर ये command इस्तेमाल करें
docker compose up -d
bun install
bun dev

Spotify search handling method

  • Spotify search Spotify Web API का उपयोग नहीं करता, बल्कि open.spotify.com के Spotify web player से extract किया गया anonymous access token इस्तेमाल करता है
  • authentication flow TOTP-based है और Spotify web player द्वारा उपयोग किए जाने वाले internal GraphQL API का इस्तेमाल करता है
  • README बताता है कि मार्च 2026 तक Spotify ने Web API को restrict कर दिया है, Development Mode में Premium account मांगता है और available endpoints को सीमित कर दिया है
  • इस project के पास Premium account नहीं है, इसलिए यह Spotify web player जैसी internal API इस्तेमाल करता है
  • token लगभग 1 घंटे की expiry cycle पर automatically refresh होता है, और developer account की जरूरत नहीं है

योगदान

  • contributions PR खोलने के तरीके से स्वीकार किए जाते हैं

1 टिप्पणियां

 
GN⁺ 2024-11-12
Hacker News की रायें
  • एक और ज़्यादा प्रभावशाली साइट भी है, जो Spotify समेत करीब 20 प्लेटफॉर्म या टेक्स्ट फाइल की प्लेलिस्ट को करीब 20 दूसरे प्लेटफॉर्म या टेक्स्ट फाइल में ट्रांसफर कर देती है
    बस सब लोग इतना न टूट पड़ें कि साइट ही बैठ जाए :)
    https://app.tunemymusic.com/transfer

    • इस्तेमाल करके देखा, अच्छे से काम किया। बस अफसोस है कि ऐसी चीज़ की ज़रूरत पड़ती है
      किसी तीसरे पक्ष को हर integration combination हल करने के बजाय, काश कोई vendor-neutral import/export format होता
    • हाल ही में Spotify से Tidal पर शिफ्ट हुआ, और जो migration service सुझाई गई थी वह काफी कच्ची निकली
      पसंदीदा artists को ट्रांसफर किया, लेकिन वह सिर्फ नाम से match करने की कोशिश कर रही थी; अगर एक ही नाम के दो या ज्यादा लोग हों तो बुरी तरह fail हो जाती थी, लगभग randomly चुनती हुई लगती थी। उत्सुक हूं कि यह service कैसी होगी
    • क्या किसी को YouTube playlist से हटाए गए videos की title list recover करने का कोई technical तरीका पता है?
      मेरे पास 10 से ज्यादा playlists हैं जिनमें गलत copyright claims की वजह से हटाए गए music से भरी थीं, और हटाए गए tracks के title/artist नहीं पता, इसलिए playlist को फिर से बना भी नहीं सकता
    • यह भी है: https://playlists.cloud/
    • TuneMyMusic पसंद है। Spotify छोड़ते समय export करके सब कुछ Deezer में import कर लिया था, और अब समय-समय पर Deezer से सब export करके Excel में तरह-तरह से analysis कर रहा हूं
  • मैंने एक बहुत simple Chrome extension बनाया है, जो दूसरी music service के links खोलने पर अपने-आप मेरी preferred service पर redirect कर देता है
    मेरे मामले में इसे YouTube Music पर set कर रखा है, इसलिए Slack में Spotify जैसा link click करूं तो YouTube Music पर चला जाता है
    https://chromewebstore.google.com/detail/music-link/gnhphofp...

    • Firefox version भी है क्या?
    • इस तरह के काम Chrome extension development को मज़ेदार बना देते हैं
    • बढ़िया लग रहा है, URL mapping manually की थी क्या?
  • मैं music को सच में खरीदकर अपने पास रखना चाहता हूं। क्योंकि Spotify पर जो songs थे, उन्हें धीरे-धीरे गायब होते हुए अब ज्यादा बार देख रहा हूं
    लेकिन आजकल music खरीदना बहुत मुश्किल है। ज्यादातर singles के रूप में आता है, और जहां तक मुझे पता है, लगता है कि सिर्फ streaming platforms पर ही upload होता है। क्या streaming platforms पर मौजूद इसी तरह के music को actual audio files के रूप में खरीदने का अब भी कोई तरीका है?

    • music को “खरीदने” का सबसे sustainable तरीका, मेरी नजर में, piracy से हासिल करना और फिर artist merch खरीदकर support करना है
      या अगर संभव हो तो Bandcamp से खरीद लें
    • दूसरे देश में shift होने के बाद Spotify का credit card नए देश के card में बदला, तो Spotify ने मेरी region setting भी बदल दी
      नतीजतन मेरे “star”/“add”/“like” किए हुए ढेर सारे songs grey होकर disabled हो गए और play नहीं हो सके। खैर, जिस music को मैं सुनता हूं उसकी copy सच में हासिल करने की बात हो तो, मुझे लगता है बिना किसी शर्म के पूरी तरह piracy कर लेना ठीक है
    • मैं भी ऐसा ही कर रहा हूं, और Canada में https://ca.7digital.com/ practically इकलौता option था जो साधारण MP3 खरीदने देता था, और मैं इसकी जोरदार सिफारिश करता हूं
      latest albums बिना दिक्कत खरीद पाया, लेकिन latest singles के बारे में पक्का नहीं। US में लगता है Amazon MP3 खरीदने देता है, पर निश्चित नहीं हूं
      Spotify subscription fee जितने में आम तौर पर हर महीने एक नया album खरीदा जा सकता है, यह अच्छा है, और album collection धीरे-धीरे बढ़ना मुझे पसंद है
    • Bandcamp, 7Digital, और सच में मजबूरी में Amazon। label जितना बड़ा होता है, digital music खरीदना उतना ही मुश्किल हो जाता है
    • Qobuz देखिए। सबसे पहले, यहां सिर्फ lossless audio मिलता है, MP3 नहीं
      21वीं सदी शुरू हुए जल्द ही 25 साल हो जाएंगे; MP3 stream करने वाले Napster के दिन बीत चुके हैं
      Qobuz पर अक्सर 44.1 kHz / 16-bit stereo से भी higher quality वाले albums होते हैं। फर्क सुनाई नहीं देगा, लेकिन अगर कोई artist/sound engineer higher sampling frequency या bit depth देने जितनी परवाह करता है, तो आम तौर पर इसका मतलब है कि वह अच्छा sound करने वाले music की भी परवाह करता है
      Qobuz ठीक वही करता है जो आप चाहते हैं। individual tracks या पूरे albums खरीदकर download कर सकते हैं, और DRM भी नहीं है
      मेरे पास खुद खरीदी CDs से 100% bit-perfect/lossless तरीके से rip की गई audio files का collection भी है, और साथ में Qobuz subscription भी इस्तेमाल करता हूं। rip results को उन्हीं CDs rip करने वाले लोगों के online DB से verify किया था
      Qobuz की कमी यह है कि music discovery feature सबसे अच्छा नहीं है, और UI भी काफी खराब है। फिर भी quality को अहमियत देने और अपना music own करना चाहने वालों के लिए अच्छा है
      आजकल ज्यादातर network streaming devices Qobuz support करते हैं। उदाहरण के लिए मैं integrated network streamer वाला Yamaha amp (Yamaha R-N1000A) इस्तेमाल करता हूं, और Yamaha का music streaming app MusicCast भी Qobuz, Tidal, Spotify support करता है
      किसी online service की अस्थायी access rent करने के बजाय, जो आपके पैरों तले से गायब हो सकती है या सुने हुए गाने हटा सकती है, आप individual tracks सच में खरीदकर own कर सकते हैं
      pricing plans देख लें। आप कितने songs खरीदते हैं, उसके हिसाब से बेहतर plan अलग हो सकता है
      मेरी समझ के मुताबिक Spotify ने भी Tidal और Qobuz के दबाव में lossless streaming पर जाने की घोषणा की थी। आखिरकार 2024 में
  • पहली बार जिन दो गानों पर कोशिश की, उनमें YouTube Music matching फेल हो गई
    Kanye West का Two Words: https://open.spotify.com/track/62wtttQzoIA9HnNmGVd9Yq?si=b1b...
    यह Milabel Ranque के Two Words पर चला गया: https://music.youtube.com/watch?v=Y64cFG9dfYo
    Kanye West का Never Let Me Down: https://open.spotify.com/track/34j4OxJxKznBs88cjSL2j9?si=7ec...
    यह Depeche Mode के Never Let me Down पर चला गया: https://music.youtube.com/watch?v=snILjFUkk_A
    साइट पर सही album art दिख रहा था, फिर भी ऐसा हुआ। असल में मैंने जो भी गाना डाला, एक भी ठीक से काम नहीं कर पाया। क्या यह आम तौर पर ऐसा ही है? क्या यह मिलते-जुलते title वाले गाने ढूंढने का तरीका है?

    • मेरे साथ भी यही हुआ। मैंने वह आखिरी गाना text messages में ढूंढा जो दोस्त ने भेजा था
      https://open.spotify.com/track/5qFL2uwfnGU8FccwLMgPNQ?si=b-a...
      https://idonthavespotify.donado.co/?id=b3Blbi5zcG90aWZ5LmNvb...
      यहां YouTube Music link गायब है:
      https://music.youtube.com/watch?v=0IHBCxs7QPE&si=QYvCtGCjKav...
      फिर भी अगर यह भरोसेमंद तरीके से काम करे, तो मुझे लगता है मैं इसे काफी इस्तेमाल करूंगा। बहुत उपयोगी छोटा tool idea है
    • एक random track पर टेस्ट किया जिसे मैं संयोग से सुन रहा था
      https://idonthavespotify.donado.co/?id=b3Blbi5zcG90aWZ5LmNvb...
      Deezer link सही था, Tidal काम नहीं कर रहा था, और बाकी गलत थे
      फिर भी शानदार idea है। कुछ साल पहले मैंने भी ऐसा कुछ implement करने के बारे में सोचा था
      जब Spotify न रखने वाले लोग group में हों और music share करना हो, तो आम तौर पर common denominator यानी YouTube link पर लौटना पड़ता है
    • पता नहीं Kanye के music से नफरत क्यों है। मैं समझता हूं कि वह बहुत पसंद आने वाला इंसान नहीं है, लेकिन music सच में अच्छा है। खासकर वे गाने जिन्हें आजमाया गया :D
  • मुझे Spotify links अक्सर मिलते रहते हैं, इसलिए यह अच्छा है। बेहतर link GitHub repository के बजाय असली service page होगा
    https://idonthavespotify.donado.co/
    Firefox users के लिए extension के तौर पर भी हो तो सच में बढ़िया होगा। उम्मीद है कोई कभी बना देगा

    • अगर यह आसानी से पता चल जाए कि results page का id parameter कहां से आता है, तो शायद इसे bookmarklet के तौर पर भी बनाया जा सकता है
      मेरा अंदाजा है कि यह link का कोई simple hash जैसा है
    • तुम्हें Spotify links इतने अक्सर क्यों मिलते हैं?
  • कई music providers के links वाला page बनाने के लिए मैं यह page इस्तेमाल करता हूं: https://odesli.co
    यह artist, album, और song level पर काम करता है
    login करने पर URL customize कर सकते हैं
    मैं सिर्फ user हूं, कोई हित-संबंध नहीं है

    • मुझे भी Songlink/Odesli सच में बहुत पसंद है। Search भी Spotify या Apple Music search से तेज काम करता है
    • 5 साल पहले मैंने songlinks API इस्तेमाल करने वाला Discord bot बनाया था
      अफसोस, इसका ज्यादा इस्तेमाल नहीं हुआ और अब मैं इसे maintain नहीं करता
    • Slack integration भी है: /songlink {url}
  • NAS से मिलने वाली सबसे अच्छी सुविधाओं में से एक यह है कि music को उस पर store करके phone पर stream किया जा सकता है
    subscription services पर निर्भर रहने के बजाय मैं कुछ music खरीदकर खुद संभालकर रखना पसंद करता हूं

    • क्या आप बता सकते हैं कि NAS और phone streaming software के लिए आप कौन-सा setup इस्तेमाल करते हैं या recommend करते हैं?
  • पहले जब मैं Discord music bot maintain करता था, तो YouTube से stream करता था
    Spotify URL को काम करवाने के लिए YouTube search का reliable matching करना जरूरी था, और एक trick जो अच्छी चली वह यह थी कि गाने का नाम, artist name आदि के साथ Spotify URL भी YouTube search query में डाल दिया जाए
    official YouTube videos के description में अक्सर Spotify link होता है, और YouTube search description से भी match करता है, इसलिए “official” video चुनने में यह काफी मदद करता है

  • यह service कुछ और services को भी जोड़ देती है, लेकिन मौजूदा URL को सीधे paste नहीं कर सकते: https://odesli.co/
    यह linktree-type service के ज्यादा करीब है, लेकिन songs और albums search कर सकते हैं, इसलिए ढूंढना आसान है
    उदाहरण: https://song.link/i/1051394215