JoeSing
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