2 puntos por GN⁺ 2024-11-12 | 1 comentarios | Compartir por WhatsApp
  • IDHS es una app web que te permite pegar un enlace de un servicio de streaming en la barra de búsqueda y encontrar enlaces del mismo contenido en otras plataformas compatibles; cuando el origen es Spotify, también ofrece una vista previa rápida de audio
  • Compatible con tracks, álbumes, artistas y podcasts individuales; las playlists se indican explícitamente como fuera de alcance
  • Incluye adaptadores para Spotify, Tidal, YouTube Music, Apple Music, Deezer, SoundCloud, Qobuz, Bandcamp y Pandora, y todos admiten búsqueda invertida y enlaces verificados
  • El sistema se divide entre parsers que extraen metadatos del enlace de entrada y adaptadores que buscan y encuentran enlaces en la plataforma de destino; no garantiza que el resultado sea exactamente el track o canción correcta
  • Para ejecutarlo localmente se necesita Bun y algunas API keys; en marzo de 2026, la búsqueda en Spotify usa la GraphQL API interna del reproductor web de Spotify y tokens con renovación automática debido a las restricciones del Web API de Spotify

Qué hace IDHS

  • IDHS (I Don't Have Spotify) permite que el usuario copie el enlace de su servicio de streaming favorito y lo pegue en la barra de búsqueda para mostrar enlaces del mismo elemento en otras plataformas compatibles
  • Si el enlace de origen es Spotify, ofrece una vista previa rápida de audio para que el usuario pueda verificar si se trata del track correcto
  • El alcance compatible incluye tracks, álbumes, artistas y podcasts individuales
    • Las playlists quedan fuera del alcance

Servicios de streaming compatibles

  • La Web App y la extensión de Raycast gestionan la conversión de enlaces entre servicios de streaming mediante adaptadores
  • Los adaptadores compatibles son los siguientes
    • Spotify
    • Tidal
    • YouTube Music
    • Apple Music
    • Deezer
    • SoundCloud
    • Qobuz
    • Bandcamp
    • Pandora
  • Todos los adaptadores admiten Inverted Search y Verified Links
  • El uso de APIs oficiales varía según la plataforma
    • Usan API oficial: Tidal, Deezer
    • No usan API oficial: Spotify, YouTube Music, Apple Music, SoundCloud, Qobuz, Bandcamp, Pandora

Estructura de parsers y adaptadores

  • IDHS extrae metadatos del enlace proporcionado y, con esa información, crea nuevas consultas de búsqueda para usarlas en motores de búsqueda públicos o en APIs oficiales como las de Apple Music, YouTube o SoundCloud
  • Selecciona el resultado que parece más relevante, pero no garantiza que el enlace devuelto corresponda exactamente al track o canción que el usuario busca
  • Se agradecen propuestas para mejorar el flujo de generación de consultas, pero existe la restricción de excluir reintentos por fuerza bruta para mantener las solicitudes rápidas y evitar límites de velocidad
  • Parsers src/parsers

    • Los parsers identifican la plataforma del enlace entrante y extraen metadatos normalizados
    • título
    • descripción
    • tipo
    • imagen
    • audio opcional
    • consulta de búsqueda consistente
    • Por ejemplo, los enlaces de Spotify recopilan metadatos Open Graph y generan cadenas de búsqueda que representan tracks, álbumes, artistas, shows y episodios
    • Esa consulta se usa después para buscar en otras plataformas
  • Adapters src/adapters

    • Los adaptadores convierten la consulta normalizada en enlaces externos de la plataforma de destino
    • Cada adaptador se encarga de lo siguiente
    • realizar búsquedas específicas de la plataforma con la consulta normalizada
    • el método de búsqueda puede estar basado en API o en HTML
    • devolver resultados con valores como type, url, isVerified y notAvailable
    • priorizar enlaces verified cuando la plataforma ofrece señales de coincidencia confiables
    • Esta separación modulariza el sistema para que los parsers se concentren en entender el origen y los adaptadores en descubrir enlaces de destino

Web App y extensión de Raycast

  • El README incluye ejemplos de pantalla de la Web App
  • Se proporciona un enlace de instalación para la extensión de Raycast
  • El código fuente de la extensión de Raycast está en idonthavespotify de raycast/extensions

Ejecución local y configuración de API

  • La lista de variables de entorno puede consultarse en .env.test
  • Los siguientes valores requieren configuración por separado
  • Los comandos para ejecutar la app son los siguientes
bun install
bun dev
  • Para ejecutar también el acortador de URL, configura URL_SHORTENER_API_KEY con el valor usado en docker-compose.yml y luego usa los siguientes comandos
docker compose up -d
bun install
bun dev

Cómo funciona la búsqueda en Spotify

  • La búsqueda en Spotify no usa el Spotify Web API, sino un token de acceso anónimo extraído del reproductor web de Spotify en open.spotify.com
  • El flujo de autenticación está basado en TOTP y utiliza la GraphQL API interna que usa el reproductor web de Spotify
  • El README explica que, en marzo de 2026, Spotify restringió su Web API al exigir cuentas Premium en Development Mode y limitar los endpoints disponibles
  • Como este proyecto no tiene una cuenta Premium, usa la misma API interna que el reproductor web de Spotify
  • Los tokens se renuevan automáticamente con un ciclo de expiración aproximado de 1 hora, y no se necesita una cuenta de desarrollador

Contribuciones

  • Se aceptan contribuciones mediante la apertura de PRs

1 comentarios

 
GN⁺ 2024-11-12
Opiniones de Hacker News
  • También hay un sitio más impresionante que mueve playlists de unas 20 plataformas, incluyendo Spotify, o archivos de texto, a otras 20 plataformas o archivos de texto
    Solo no vayan todos de golpe y lo tumben :)
    https://app.tunemymusic.com/transfer

    • Lo probé y funcionó bien. Aunque es una lástima que algo así sea necesario
      Ojalá existiera un formato de importación/exportación neutral respecto a proveedores, en vez de que un tercero tenga que resolver todas las combinaciones de integraciones
    • Hace poco me pasé de Spotify a Tidal, y el servicio de migración recomendado era bastante tosco
      Migré mis artistas favoritos, pero intentaba hacer coincidencias solo por nombre, así que si había dos o más con el mismo nombre, fallaba desastrosamente y parecía elegir casi al azar. Me da curiosidad cómo será este servicio
    • ¿Alguien conoce alguna forma técnica de recuperar la lista de títulos de videos eliminados de una playlist de YouTube?
      Tengo más de 10 playlists llenas de música eliminada por reclamos de copyright indebidos, y como no sé el título/artista de las pistas eliminadas, ni siquiera puedo reconstruir las playlists
    • También existe esto: https://playlists.cloud/
    • Me gusta TuneMyMusic. Cuando dejé Spotify, exporté todo y lo importé a Deezer, y ahora periódicamente exporto todo desde Deezer y lo analizo de mil formas en Excel
  • Hice una extensión de Chrome muy simple que, al abrir enlaces de otros servicios de música, redirige automáticamente a mi servicio preferido
    En mi caso la tengo configurada para YouTube Music, así que cuando hago clic en un enlace de Spotify o similar en Slack, me lleva a YouTube Music
    https://chromewebstore.google.com/detail/music-link/gnhphofp...

    • ¿También hay versión para Firefox?
    • Este tipo de tareas hace que desarrollar extensiones de Chrome sea divertido
    • Se ve genial; ¿hiciste el mapeo de URLs manualmente?
  • Quiero comprar música de verdad y guardarla yo mismo. Porque cada vez veo más seguido que canciones que estaban en Spotify desaparecen
    Pero hoy en día es muy difícil comprar música. La mayoría sale como singles y, hasta donde sé, parece que solo se publica en plataformas de streaming. ¿Todavía hay alguna forma de comprar como archivos de audio reales el mismo tipo de música que está en las plataformas de streaming?

    • La forma más sostenible de “comprar” música, en mi opinión, es obtenerla mediante piratería y luego apoyar al artista comprando merchandising
      O, si es posible, comprarla en Bandcamp
    • Después de mudarme a otro país, cambié la tarjeta de crédito de Spotify por una del nuevo país, y Spotify también cambió mi configuración regional
      Como resultado, muchísimas canciones a las que les había puesto “estrella”/“agregado”/“me gusta” quedaron en gris y ya no se podían reproducir. En fin, si se trata de obtener una copia real de la música que escucho, creo que simplemente se puede piratear por completo sin sentir ninguna vergüenza
    • Yo también hago eso, y en Canadá https://ca.7digital.com/ era básicamente la única opción para comprar MP3 comunes, y la recomiendo mucho
      Pude comprar álbumes recientes sin problema, aunque no estoy seguro sobre singles recientes. En EE. UU. parece que Amazon permite comprar MP3, pero no estoy seguro
      Con lo que cuesta una suscripción a Spotify normalmente puedes comprar un álbum nuevo al mes, lo cual está bien, y me gusta que mi colección de álbumes vaya creciendo poco a poco
    • Bandcamp, 7Digital y, muy a regañadientes, Amazon. Cuanto más grande es el sello, más difícil es comprar música digital
    • Revisa Qobuz. Para empezar, ahí solo manejan audio sin pérdida, nada de MP3
      Ya estamos por cumplir 25 años del siglo XXI; los días de Napster, cuando había que streamear MP3, ya quedaron atrás
      En Qobuz también es común encontrar álbumes con calidad superior a estéreo de 44,1 kHz / 16 bits. Probablemente no puedas oír la diferencia, pero si un artista/ingeniero de sonido se preocupa lo suficiente como para ofrecer una frecuencia de muestreo o profundidad de bits mayor, normalmente también significa que se preocupa por que la música suene bien
      Qobuz hace exactamente lo que quieres. Puedes comprar y descargar pistas individuales o álbumes completos, y tampoco tiene DRM
      También tengo una colección de archivos de audio ripeados de CDs que compré, en formato 100% bit-perfect/sin pérdida, y uso una suscripción a Qobuz al mismo tiempo. Verifiqué los ripeos contra una base de datos en línea de otras personas que ripearon los mismos CDs
      La desventaja de Qobuz es que sus funciones de descubrimiento musical no son las mejores, y la UI también es bastante mala. Aun así, es bueno para quien valora la calidad y quiere ser dueño de su música
      Hoy en día la mayoría de los dispositivos de streaming en red soportan Qobuz. Por ejemplo, yo uso un amplificador Yamaha con streamer de red integrado (Yamaha R-N1000A), y la app de streaming musical de Yamaha, MusicCast, también soporta Qobuz, Tidal y Spotify
      En vez de alquilar acceso temporal a un servicio en línea que puede desaparecer bajo tus pies o quitar canciones que escuchabas, puedes comprar y poseer pistas individuales de verdad
      Revisa los planes. Según cuántas canciones compres, puede convenirte más un plan u otro
      Según entiendo, Spotify también anunció que, por la presión de Tidal y Qobuz, se pasaría al streaming sin pérdida. Recién en 2024, por fin
  • En las dos primeras canciones que probé, la coincidencia con YouTube Music falló
    Two Words de Kanye West: https://open.spotify.com/track/62wtttQzoIA9HnNmGVd9Yq?si=b1b...
    Me mandó a Two Words de Milabel Ranque: https://music.youtube.com/watch?v=Y64cFG9dfYo
    Never Let Me Down de Kanye West: https://open.spotify.com/track/34j4OxJxKznBs88cjSL2j9?si=7ec...
    Me mandó a Never Let me Down de Depeche Mode: https://music.youtube.com/watch?v=snILjFUkk_A
    Eso pasó aunque en el sitio aparecía la portada correcta del álbum. Ninguna de las canciones que probé funcionó bien. ¿Así es como se supone que funciona? ¿Busca canciones con títulos parecidos?

  • Recibo enlaces de Spotify con frecuencia, así que esto está bueno. Un mejor enlace sería la página real del servicio, no el repositorio de GitHub
    https://idonthavespotify.donado.co/
    También sería genial que existiera como extensión para usuarios de Firefox. Ojalá alguien la haga algún día

    • Si fuera fácil saber de dónde sale el parámetro id de la página de resultados, probablemente también podría hacerse como bookmarklet
      Supongo que es algo como un hash simple del enlace
    • ¿Por qué recibes enlaces de Spotify tan seguido?
  • Para crear páginas con enlaces a varios proveedores de música uso esta página: https://odesli.co
    Funciona a nivel de artista, álbum y canción
    Si inicias sesión, puedes personalizar la URL
    Solo soy usuario, no tengo ningún interés relacionado

    • A mí también me gusta mucho Songlink/Odesli. La búsqueda incluso funciona más rápido que la de Spotify o Apple Music
    • Hace 5 años hice un bot de Discord que usaba la API de songlinks
      Lamentablemente no se usó mucho y ya no lo mantengo
    • También hay una integración con Slack: /songlink {url}
  • Una de las mejores funciones que obtienes con un NAS es poder guardar música ahí y transmitirla al teléfono
    Prefiero comprar algo de música y conservarla yo mismo en vez de depender de servicios de suscripción

    • ¿Podrías compartir qué configuración usas o recomiendas, tanto para el NAS como para el software de streaming al teléfono?
  • Cuando antes mantenía un bot de música de Discord, transmitía desde YouTube
    Para que las URL de Spotify funcionaran, la búsqueda en YouTube tenía que acertar de forma confiable, y un truco que funcionaba bien era incluir también la URL de Spotify en la búsqueda de YouTube, junto con el nombre de la canción, el artista, etc.
    Muchas veces los videos oficiales de YouTube incluyen el enlace de Spotify en la descripción, y como la búsqueda de YouTube también coincide con la descripción, eso ayudaba bastante a elegir el video “oficial”

  • Este servicio conecta algunos servicios más, pero no puedes simplemente pegar una URL existente: https://odesli.co/
    Es más bien un servicio tipo linktree, pero permite buscar canciones y álbumes, así que es fácil encontrar cosas
    Ejemplo: https://song.link/i/1051394215