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
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