Internet radio

Su AUDIOreview del mese scorso, nella posta dei lettori, abbiamo pubblicato la mail di un possessore del player di rete Marantz NA 6005 che lamentava l’interruzione del servizio di accesso alle radio internet, ora soggetto al pagamento di un importo a Vtuner.com, fornitore a cui l’azienda americana si era appoggiata per erogare il servizio. In realtà il problema riguarda tutti gli apparecchi che utilizzano questo servizio, ad esempio, oltre ai Marantz, anche i Denon, Onkyo e Yamaha. L’importo richiesto è modesto, 3 dollari l’anno, ma l’obiezione al pagamento è una questione di principio legata al fatto che al momento dell’acquisto del prodotto il servizio si palesava come gratuito. Sotto questo aspetto va elogiato il comportamento di Yamaha che ha messo a disposizione dei clienti un aggiornamento firmware che svincola il servizio da Vtuner.com per appoggiarsi ad altri sistemi gratuiti.

Possedendo un vecchio sintoamplificatore multicanale Denon AVR-4308, anche se raramente lo utilizzo per ascoltare le radio in streaming, ed avendo trovato un modo per recuperare questa funzionalità, penso di fare cosa gradita mettendolo a disposizione di tutti i lettori che hanno apparecchi coinvolti nella questione.

Il modo per reintegrare la mancanza richiede un po’ di esperienza informatica, ma non è esageratamente complicato. Chi avesse letto le indicazioni pubblicate nella “Posta dei lettori” di AR numero 429 (marzo 2021) potrebbe aver già tentato un’esplorazione sfruttando i collegamenti in rete che avevo elencato per utilizzare un piccolo software open source, definito “YCast”, che consente di ripristinare la funzionalità perduta utilizzando un espediente. Cercherò in queste pagine di descrivere il funzionamento dei diversi servizi implicati nella soluzione software senza scrivere un trattato d’informatica.

Prima di tutto occorre conoscere, almeno a grandi linee, i principi di funzionamento dei sistemi che permettono l’accesso al segnale delle radio internet. Una radio internet è costituita da un server che rende disponibile un flusso di dati (il cosiddetto stream) raggiungibile a un determinato indirizzo di rete, il quale viene codificato secondo il protocollo internet (IP) da quattro serie di numeri che vanno da 0 a 255, separati dal punto. Ad esempio, Rai Radio 1 è accessibile all’indirizzo 212.162.68.150.

Per semplificare la memorizzazione degli indirizzi di rete, i codici numerici sono correlati a denominazioni alfanumeriche più facili da ricordare come, nel caso specifico, icestreaming.rai.it (l’URL è http://icestreaming.rai.it/1.mp3). Il nome del server viene convertito in un valore numerico comprensibile dalle macchine dal Domain Name System (DNS), un sistema gerarchico che regola la mappatura tra nomi e indirizzi IP. Questo ci evita di conoscere a memoria tutti gli indirizzi numerici che, tra l’altro, possono cambiare nel tempo. Per approfondire rimando a Wikipedia it.wikipedia.org/wiki/Domain_Name_System.

Passando al dispositivo fisico, per esempio un PC Windows 10, quando viene collegato alla rete domestica il modem/router che permette navigare su internet gli assegna automaticamente un indirizzo IP locale, attraverso il protocollo DHCP (Dynamic Host Configuration Protocol). Il pacchetto di configurazione dell’indirizzo IP del nostro dispositivo comprende anche altre informazioni, tra le quali l’indirizzo IP del server deputato alla risoluzione dei nomi (server DNS).

Quindi, facendo riferimento alla Figura 1, se il nostro dispositivo deve inviare una richiesta al server www.google.it, il server DNS 1.1.1.1 convertirà il nome nel corrispondente indirizzo numerico.

Figura 1.

Tornando al servizio Vtuner implementato nei riproduttori di rete, nei sintoamplificatori e altro, questo si comporta come una sorta di rubrica: il dispositivo invia una richiesta al server Vtuner, che risponde con la lista delle radio disponibili. Ed è qui che interviene l’espediente cui facevo riferimento: inserendo nella nostra rete locale un altro server che risolve i nomi (il server DNS) e sostituendo il suo indirizzo IP a quello che arriva in automatico nella configurazione del nostro dispositivo, possiamo fare in modo che tutte le richieste indirizzate ad esempio a denon.vtuner.com (utilizzato da Denon e Marantz, che fanno capo allo stesso gruppo), al momento della scrittura di questo articolo corrispondente all’IP 8.38.76.252, siano reindirizzate a un altro IP. Questo altro IP è quello che assegneremo alla macchina sulla quale gira il software YCast, che emula in tutto e per tutto il comportamento del servizio Vtuner. Nella pratica, il software intercetta le richieste che vanno verso Vtuner e fornisce al richiedente le informazioni come se arrivassero da Vtuner.

Le opzioni possibili per l’utilizzo di YCast sono varie, ma hanno tutte in comune l’installazione di un sistema operativo Linux, su un computer fisico (che può essere un vecchio PC, un Mac datato o un minicomputer Raspberry Pi), oppure su una macchina virtuale (VM). Le combinazioni possibili dell’hardware sono pressoché infinite, per cui ho scelto la macchina virtuale per mettere a disposizione – di chiunque voglia cimentarsi – qualcosa di pronto e di utilizzabile quasi immediatamente. Il “quasi immediatamente” è riferito all’inevitabile esigenza di fare una modifica alla configurazione dell’interfaccia di rete nella macchina virtuale, ma più avanti spiegherò come. In fondo all’articolo è indicato cosa fare per ricevere il file compresso (.zip) che contiene la macchina virtuale da importare nel proprio ambiente virtuale host.

I software che ho utilizzato sono elencati di seguito:

  • Sistema Host (Windows 10)
    • Oracle VirtualBox 6.1.18
    • Oracle VirtualBox 6.1.18 Extension Pack
  • Macchina virtuale (più avanti VM per brevità)
    • Ubuntu Server 18.04.5 LTS
    • Pi-hole (server risoluzione nomi DNS)
    • Webmin 1.970
    • Python 3.6 + pip3
    • YCast

Dopo aver installato Oracle VirtualBox (le indicazioni sono valide per il sistema operativo Windows 10, ma con le opportune modifiche si può operare anche su MacOS), per mettere in funzione la VM sono necessari alcuni passaggi. Il primo consiste nel decomprimere in una cartella su un’unità disco del vostro computer il file compresso che avete ricevuto. Eseguita questa operazione, la cartella conterrà due file: uno di testo e l’altro la VM da importare (Figura 2).

Figura 2.

Poi occorre aprire l’applicazione Oracle VirtualBox, selezionare la voce “Importa applicazione virtuale…” dal menu File (Figura 3) e selezionare il file della VM dalla cartella nella quale l’abbiamo decompressa in precedenza.

Figura 3.

Per l’importazione bisogna fare clic sul bottone “Importa” nella pagina con i dettagli (Figura 4).

Figura 4.

Se l’operazione è completata, vedrete la macchina virtuale YCast nella colonna sinistra, spenta. Dovrete verificare, nelle impostazioni della rete della VM, che la scheda di rete selezionata riporti la dicitura “Scheda con bridge” (Figura 5), e in caso contrario, selezionarla; inoltre, dovrete selezionare una scheda di rete presente nel vostro PC dalla tendina “Nome:”, altrimenti l’avvio non potrà essere eseguito correttamente, poiché l’importazione non la seleziona, ma mantiene quella salvata durante l’esportazione.

Figura 5.

A questo punto, siete pronti per avviare la VM YCast facendo clic sulla grossa freccia verde (“Avvia”) nella parte alta dell’interfaccia di Oracle VirtualBox. Se è tutto a posto, in pochi secondi la macchina sarà operativa e disponibile; è configurata per funzionare con l’indirizzo IP statico 192.168.1.91, ma può essere modificato secondo le proprie esigenze. Per farlo, nella finestra della VM in esecuzione occorre eseguire il login (le credenziali sono audioreview sia come utente, sia come password) e modificare il file /etc/netplan/01-netcfg.yaml con un editor, ad esempio nano. Il comando è il seguente (alla richiesta della password bisogna digitare audioreview):

audioreview@ycast: sudo nano /etc/netplan/01-netcfg.yaml

Nel file, bisognerà modificare l’indirizzo IP e, soltanto se necessario, quello del gateway, tutto dipende dalla vostra configurazione di rete.

network:
ethernets:
eth0:
addresses:
- 192.168.1.91/24
gateway4: 192.168.1.1
nameservers:
addresses:
- 8.8.8.8
- 8.4.4.8
version: 2

Una volta salvato il file, occorrerà riavviare la macchina col comando:

audioreview@ycast: sudo reboot

Al termine del riavvio dovreste essere in grado di raggiungere l’interfaccia web di configurazione di Pi-hole (il server DNS) tramite un browser all’URL https://192.168.1.91:88/admin (sostituire l’indirizzo 192.168.1.91 con l’indirizzo eventualmente modificato nel passaggio precedente, audioreview è la password per entrare). Controllare la voce Local DNS/DNS Records per verificare che siano elencati tutti i siti configurati (Figura 6).

Figura 6.


Il sistema permette di configurare anche l’elenco delle stazioni radio: per fare la modifica facilmente bisogna accedere con un browser all’interfaccia Webmin disponibile all’URL https://192.168.1.91:10000 (sostituire l’indirizzo 192.168.1.91 con l’indirizzo eventualmente modificato in precedenza, le credenziali sono audioreview sia come utente, sia come password); continuare nonostante il messaggio di errore di sicurezza del browser. Il file che deve essere modificato è /opt/ycast/stations.yml, per modificarlo scegliere dalla colonna sinistra la funzione Tools/File Manager, entrare nella cartella opt, poi ycast e fare clic col tasto destro sul file stations.yml, selezionando “Edit” (Figura 7).

Figura 7.


Gli URL delle radio internet si possono ricavare da questi siti:
www.radio-browser.info
fmstream.org
www.hendrikjansen.nl/henk/streaming.html

Una volta che la VM è correttamente configurata e accessibile nella propria rete locale, occorre entrare nella configurazione di rete del proprio dispositivo (lettore di rete, sintoamplificatore, etc.) per impostare come server DNS l’indirizzo 192.168.1.91 (o quello che avete configurato), riavviarlo e provare a utilizzare le radio internet in streaming. Probabilmente sarà necessario rendere statico (cioè fisso) l’IP del dispositivo.

Con il mio amplificatore Denon AVR-4308 questo sistema ha funzionato perfettamente, nonostante l’apparecchio non fosse elencato tra quelli compatibili nella pagina di YCast su Github.
Vi informo che la VM può essere importata anche in Hyper-V, il sistema di virtualizzazione di Microsoft, disponibile per la versione Pro di Windows 10, il cui supporto deve essere configurato nel firmware del PC, oppure in Vmware Workstation Player.

La macchina virtuale è contenuta in un file compresso scaricabile dal seguente indirizzo:

https://bit.ly/3ew9sYq

Per verificare con certezza che il file .zip non sia stato manomesso, è possibile richiamare, utilizzando il prompt di comandi in Windows 10 (cmd.exe), ed entrando nella cartella che contiene il file, il comando certutil:

certutil -hashfile VM-YCast.zip SHA512

Il valore che dovrete ottenere in uscita, per essere ragionevolmente certi che il file sia originale, è:

CF113908FADF9D19A782A6509F095B8645DF72CBAFDC90C8650ADA841E138C641ABB9341E1DAD8BE0521C25994FB9796307E1BC1082EFAA926630DB6AC8010D2

Auguro buon divertimento a chiunque voglia affrontare la sfida!

Marco Meta


Link alla documentazione utilizzata per realizzare la macchina virtuale
https://github.com/milaq/YCast
https://pc1mh-weblog.blogspot.com/2019/08/how-to-vtuner-alternative-for-yamaha.html