Cose che ho scoperto ed annotato lavorando a ChromaWaves
Hai presente come quando su Spotify avevi la possibilità di riprodurre un brano a caso e Spotify continuava a riprodurre all’infinito, consigliandoti altri brani? Ecco.. Ora è supportato pure su ChromaWaves!!
AutoDiscovery: Android
Sull’app “Tempo”, su Android, lasciare attivi / attivare:
- Riproduzione Continua
- Abilita Scrobbling Musicale
AutoDiscovery: iOS
(Usare app Arpeggi, o Narjo)
In Arpeggi, Settings > Playback, Abilitare "Continuous playback" e selezionare la modalità preferita. Per ora ho notato che funziona la modalità "LastFM"; screenshot
Nell’applicazione Narjo > Settings > Playback, Abilitare "Enable autoplay" come nello screenshot
AutoDiscovery: Windows / Macos/ Linux
(Usando Feishin)
Nella barra di riproduzione di Feishin, clicca "AUTO DJ" (se è blu è attivo)
Screenshot
C’era da dirlo. Non ci si poteva sempre ricordare l’indirizzo ip per fare qualsiasi cosa…
Perché?
Il protocollo HTTPs rende la comunicazione tra un computer ed un server molto più sicura. IN TERMINI SEMPLIFICATI: Se prima gli hacker potevano provare ad hackerare la connessione tra voi e ChromaWaves, ora non è più così! Inoltre adesso non serve più ricordarsi il vecchio IP del server per configurare il tutto; ogni cosa è coperta da https://waves.haxs.dev/!
Cosa Cambia?
Il traffico è ora indirizzato prima verso cloudflare, poi verso il server di ChromaWaves.
Ogni informazione condivisa è criptata in END-TO-END.
I servizi offerti dal server di ChromaWaves rispondono ad http ed https.
Entrambi i servizi possono ancora rispondere ad http, ma su un percorso differente. In quanto è sconsigliato usare http, il percorso non sarà ufficialmente comunicato.
Cosa fare se ho già ChromaWaves?
Grazie per stare usando il servizio!
Downloader:
Se non lo hai già fatto, su android, ri-scarica l’apk, mentre sulle altre piattaforme, il servizio di downloader si è spostato su https://waves.haxs.dev/downloader
Player:
Nelle impostazioni del tuo music player, cambia l’indirizzo URL da quello precedente, a https://waves.haxs.dev/music
Se i passaggi non sono chiari, leggi i tutorial aggiornati su ChromaWaves, o contattami per maggiore supporto
Ho notato che andando avanti, scaricando tante cose insieme c'erano problemi di Memory Managment e la SWAP del server veniva riempita, per colpa di una brutta gestione della memoria nel tenere traccia del progresso di download delle playlists.
Acon, inoltre, non stava aggiornando la libreria con le canzoni più popolari del momento, i suoi log erano vuoti e la logica per aggiungere la musica era antiquata.
Un bug di SpotDL inoltre stava bloccando gli utenti dal scaricare playlist infinitamente grandi.
Era un macello, e gemy era tutto scritto su un singolo file app.py.
Ho quindi riscritto da zero tutta la logica di Gemy, contribuendo ad una migliore struttura del codice, function calling per Acon, e infine ho cercato il più possibile per a gestire il problema della SWAP.
E' così che ho pushato un update ad un elemento cruciale di ChromaWaves: il Downloader.
Gemy 2, dopo alcuni test, si è dimostrato molto meglio della prima versione. Migliorato il sistema di logging, le funzioni sono ora in diversi file py invece che uno solo, ed è tutto molto più facile da gestire.
Questo update mi aiuterà, inoltre, a migliorare piccole cose del prodotto senza rischiare di rompere tutto! E come ciliegina sulla torta ho aggiunto un nuovo worker, Bika, aggiornato il sito web a questa versione, e aggiunto (finalmente), la dark mode.
Questo è più un lamento da parte mia che un articolo su cosa ho scoperto,
ma aiuta anche chi lo legge a capire un po' la situazione del perché non ho sempre potere sull'aggiustare ChromaWaves nel caso ci sono problemi.
Il downloader di ChromaWaves è un complesso ingegnoso meccanismo di codice che si bassa principalmente su richiedere una canzone ai server di Youtube Music.
Questo succede grazie a due software: spotdl e yt-dlp, che per comodità chiameremo in questo articolo spot e ytd.
YTD (yt-dlp) è un programma che c'è stato da ormai 15 anni, i suoi sviluppatori sono degli esperti, probabilmente ingegneri del software, insomma, è una piattaforma robustissima che viene costantemente aggiornata e supporta decine di siti web diversi, tra tiktok, youtube, instagram etc..
SpotDL è un "estensione" di ytd, che permette di convertire con altissima precisione i link di Spotify in Youtube Music, con tanto di metadati (copertina, lyrics, artista etc..). Questo è ottimo, perché vuol dire che posso cercare roba di Spotify e ottenerla direttamente da Youtube music, perché non c'è ancora modo di scaricare niente da Spotify in se.
Tutto bello, peccato che gli sviluppatori di Spot in questo momento non aggiornano abbastanza la loro piattaforma, e lasciano nel codice dei bug così stupidi che ricadono poi sugli sviluppatori di ytd, che vengono giustamente contattati perché nel server discord di Spot non risponde nessuno.
Quindi se io ho un problema le cose sono due: o chiedo in ginocchio aiuto agli sviluppatori di ytd, oppure mi devo arrangiare da solo, perché la maggior parte dei bug vengono da Spot, e nessuno risponde nel loro server discord!! e non posso semplicemente abbandonare Spot, tutto il downloader gira attorno al loro codice e non c'è piattaforma che è pronta a sostituirlo!!!!!
Extra frustrante, se ci fosse un modo per evitare di usare SpotDL, lo farei volentieri. Magari richiedo agli sviluppatori di ytd se iniziano a supportare Spotify, e supportare anche il download delle playlist. Ma fino ad allora... :sob:
Allo'
Copiare l'intero sistema di ChromaWaves da un server ad un altro è totalmente possibile.
I comandi sono semplicemente questi:
Sul server nuovo, installare navidrome.
Sul server vecchio, per trasferire gli agenti:
sudo rsync -avzP -e "ssh -p xxxx" /home/xxxxx/Modelli [email protected]:/home/xxxxxx/
Sul server vecchio, per trasferire gli Navidrome:
sudo rsync -avzP -e "ssh -p xxxx" /var/lib/navidrome/ [email protected]:/var/lib/navidrome/ --rsync-path="sudo rsync"
sudo rsync -avzP -e "ssh -p xxxx" /etc/navidrome/navidrome.toml [email protected]:/etc/navidrome/navidrome.toml --rsync-path="
Semplice, no?
SBAGLIATO
perché rsync fa SCHIFO e devi impostare i permessi degli utenti corretti perché navidrome altrimenti non legge le canzoni, ah che a proposito devi trasferire PER FORZA con SFTP (no rsync, no ftp) perché altrimenti si corrompono, e anche in quel caso alcuni non riescono ad essere trasferiti a seconda di quale pc stai usando1!1!!!
quindi reminder:
usa. sempre. filezilla.
comandi per i permessi sui file (sperando siano quelli giusti)
sudo chown -R xxxxx:xxxxx /percorso/della/cartella
sudo usermod -aG xxxxx navidrome
sudo chmod -R g+rwx /percorso/della/cartella
sudo chmod -R g+s /percorso/della/cartella
E rieccoci.
Il passaggio da mp3 a m4a ha portato molti vantaggi:
SpotDL funziona vastamente meglio
La qualità è vastamente migliore
Le traccie sono compatibili in lossless (ALAC)
Inoltre è ottimo per lo spazio su disco, ottimizzando di gran lunga i 500gb che ho per il nuovo server1 (hugehost).
L'unica cosa negativa è che crea duplicati con i file mp3, ceh la gente aveva già scaricato delle canzoni in mp3 e giustamente mo il downloader le ripiglia in m4a, e ora ci sono duplicati. Non posso nemmeno cancellare tutti quei 19300~ file mp3 perché la maggior parte sono nelle playlist della gente.
Quindi staremo come siamo, tanto anche Spotify ha spesso canzoni duplicate. L'importante è dare sempre più canzoni al server. FEED. THE. MACHINE!!!!!!!!
Scusate il francesismo ma MINCHIA, gli sviluppatori di yt-dlp fanno uscire una versione nightly (quindi beta) ogni 3 nanosecondi!!!
Ho sempre mantenuto la scelta di aggiornare manualmente il sistema così che mi assicurassi personalmente che il servizio funzioni sempre, ma così no, ceh sono passato alla versione Nightly di yt-dlp per assicurarmi di avere sempre la patch più recente, e ho visto che funziona a volte meglio della versione stable, però la devo aggiornare di continuo!
L'altra sera sono stato contattato da un utente di github perché chiedeva aiuto con la gestione di SpotDL, e nel mentre stavo contattando gli sviluppatori di yt-dlp per assicurarmi di alcune tecniche informatiche per assicurarmi di star consigliando bene. Mentre parlavamo ho aggiornato yt-dlp alla versione del giorno stesso, e 3 minuti dopo è uscita una versione nuova e avrei dovuto di nuovo aggiornare???
A questo punto ho optato per gli aggiornamenti automatici via uno script che gira su un timer systemd ogni 5 minuti, perché per quanto voglia essere attivo nello sviluppo del progetto, purtroppo non posso stare 24/7 ad assicurarmi di avere l'ultimissima patch 🥲...
RIASSUNTO: A causa delle nuove restrizioni di Spotify che impongono l'uso di account Premium per gli sviluppatori, mantenere il downloader ChromaWaves è diventato molto più costoso e difficile. Per garantire la sopravvivenza del servizio, sto valutando di passare al download delle tracce tramite YouTube, accettando però una gestione meno precisa dei metadati.
Nel dicembre 2025, Anna’s Archive, un gruppo di "Hacker" il cui scopo è preservare i media di tutto l'internet, ha scaricato 86 milioni di tracce Spotify, ovvero il 99% della musica sull’intera piattaforma.
Da quel giorno, Spotify ha lavorato e ha agito di conseguenza, per limitare il più possibile che questa cosa accada di nuovo.
Negli ultimi mesi la community di SpotDL ha visto un'enorme quantità di limitazioni per quanto riguarda lo scaricare le tracce e le playlist degli utenti. il downloader di ChromaWaves però, senza considerare alcuni incidenti, è rimasto attivo, in quanto mi sono assicurato di prevedere diverse situazioni in cui il processo di download si potesse rompere. Infatti, il nostro downloader è rimasto l'unico attivo nella community di SpotDL, ma l’inevitabile era solo dietro l’angolo.
Di recente, infatti, Spotify ha pubblicato un articolo rivolto agli sviluppatori comunicando che le chiavi delle developer app (componente fondamentale per i downloader) saranno limitate unicamente agli account Spotify Premium, e che ogni account avrà la possibilità di usare una sola chiave!
Questo non solo aumenta i costi del mantenimento di ChromaWaves, ma limita enormemente la quantità di tracce scaricabili per giorno.
Cosa succede quindi?
ChromaWaves continuerà a funzionare, ogni utente avrà la possibilità gratuita di ascoltare le tracce già presenti nel server. Per quanto riguarda l’aggiunta delle tracce, sto considerando di abbandonare Spotify, e concentrare il download delle tracce direttamente da YouTube. Questo non è proprio una bella modifica, in quanto il downloader di YouTube non prende gli stessi metadati(copertina dell'album, autore e lyrics) di quello di Spotify.
Sto anche considerando di modificare come funziona il download di ChromaWaves al fine di farlo funzionare unicamente con YouTube music, il che richiederebbe un script completamente nuovo è un bel po' di lavoro. considerato che sono all'università e sto studiando attualmente ingegneria informatica, queste modifiche saranno un'impresa, ma saranno necessarie per garantire la qualità del servizio di ChromaWaves.
A partire da Ottobre 2026 , ChromaWaves sarà hostato su un server privato, e non il server attuale. Il server attuale è un server comprato su OvhCloud, un servizio pubblico che vende server ad alta richiesta. Questa scelta è stata pensata per tagliare i costi di manutenzione del server, portando le spese ad acquistare account Spotify Premium per garantire la qualità del servizio.
Per adesso invece, ci saranno delle considerazioni sul budget per mantenere il servizio attivo, e non è ancora chiaro se il download per Spotify rimarrà attivo o no. gli utenti saranno comunque capaci di scaricare la musica personalizzata attraverso YouTube.
A parte il Downloader di Spotify, l'esperienza utente rimarrà invariata.
https://developer.spotify.com/blog/2026-02-06-update-on-developer-access-and-platform-security