← Ecosistema

JoeSing

sing.giorgiopalermo.com in produzione

Karaoke personale via Spotify: segue il brano che stai ascoltando e proietta il testo sincronizzato parola per parola, pensato per la TV del salotto.

Il problema

Il karaoke in casa si fa male: video con audio scadente e pubblicità, oppure basi da comprare. Chi ha Spotify Premium ha già il catalogo; mancava solo il testo, sincronizzato e leggibile da tre metri.

Nel 2026 Spotify limita le app indipendenti a cinque account e non permette più di verificare il Premium dal profilo. Il vincolo è diventato il design: ogni utente registra la propria app Spotify e incolla il suo Client ID, così la quota è sua e il Premium si verifica da sé al collegamento.

Come funziona

Struttura

Il browser non parla mai con Spotify: un worker PHP interroga Spotify una volta per account e tiene lo stato nel database, e tutti gli schermi leggono da lì. Si interroga solo chi ha uno schermo aperto, più spesso verso la fine del brano.

Flusso d'uso

Un wizard in quattro passi accompagna la creazione dell'app Spotify, con l'indirizzo di ritorno da copiare con un pulsante. Poi basta mettere play su Spotify: JoeSing riconosce il brano, carica il testo e lo mostra a schermo intero, con stili personalizzabili.

Scelte tecniche

Autorizzazione OAuth con PKCE, senza mai chiedere il Client Secret; token cifrati in AES-256-GCM. La posizione nel brano si ricalcola a ogni fotogramma dall'ultimo dato del server, così l'errore non si accumula. I testi arrivano da LRCLIB: sincronizzati se ci sono, statici come ripiego.

Limiti noti

Servono Spotify Premium e un minimo di dimestichezza per creare l'app sul portale per sviluppatori. Il piano Pro si paga con bonifico, confermato a mano: non c'è pagamento con carta.

Numeri

Righe di PHP, circa 18.000
Righe di JavaScript, circa 7.400
Tabelle dedicate 22
Classi del modulo 23
Verifiche automatiche, circa 450

Stack

  • PHP 8
  • MariaDB
  • JoeCMS
  • JavaScript
  • Spotify Web API
  • LRCLIB
  • systemd
Schermata di JoeSing