RaiNix: uno script per vedere le trasmissioni RAI senza browser su Linux

  

RaiNixV3 è’ un agile script (licenza GPL) dello stesso autore del vecchio plugin su browser Firefox gentilmente offerto ed ospitato in download qui. Permette la visione/registrazione ed il restreaming dei programmi RAI (comprese le Radio) e di RAI Replay senza l'uso del browser, evitando la pubblicità iniziale e senza registrazione per l'accesso a Rai Replay e OnDemand. Con l'opzione del menu principale 'Rai Play Vods' si scarica in automatico anche l'altro script 'RaiNixVod' per vedere/registrare e mettere in restreaming i programmi OnDemand della RAI. Lo script funziona, con opportuni accorgimenti, anche su FreeBSD. Per gli utenti Windows e Apple MacOS sono disponibili in download apposite versioni ( 'RaiWin' e 'RaiMac') che hanno funzionalità analoghe allo script per Linux come spiegato dopo nell'articolo. A causa dei continui cambiamenti RAI, lo script necessita di frequenti aggiornamenti. Pertanto, è gradita qualsiasi segnalazione. La versione 'RaINixV3' (versione 3.3.6.1 del  4 novembre 2023) è in download cliccando qui  oppure andando nell’apposita sezione 'DOWNLOAD' di questo sito. Con il tasto ESC dal menu principale si cambia il player per le dirette & VOD, mentre il radio player per dirette e podcast può essere cambiato nei rispettivi menu. Una versione leggermente diversa e già predisposta per video 4K è presente anche a questo link GitHub a cura dell'autore dello script.

COME USARE RAINIXV3

Dipende da xterm, curl, wget, dialog, ffmpeg, jq e youtube-dl (facoltativo). Il tool jq (preferibilmente dalla versione 1.5) si è reso necessario dato l'ampio uso della RAI del formato json. Supporta un'ampia scelta di player multimedialimpv, SMplayer (con mpv settato a player di default), QMPlay2, VLC, parole, Bomi Player, celluloid, ecc. E' consigliato installare anche streamlink.

Una volta scaricato lo script, eventualmente renderlo eseguibile e poi lanciarlo da terminale con il comando ./rainixv3.sh. Con bash -x rainixv3.sh è possibile attivare il debug. Si sceglie dal menu quello che si vuole riprodurre e una volta scelto il canale/programma si opta per la riproduzione oppure per registrare e fare il restreaming si sceglie l'opzione apposita. Per adesso il canale RAI 4K che appare nel menu non è disponibile.

Il menu iniziale dispone inoltre dell'opzione 'Cineteca Rai movie' che permette di scorrere i generi ed i titoli dei film accessibili su Rai Movie, rendendo il canale più fruibile per l'utente. In basso l'utile funzione di ricerca 'Rai Search' che permette di ricercare il video o la trasmissione che interessa mediante l'inserimento di parole-chiave. Inoltre con la la funzione di ricerca, inserendo una parola significativa più 'film', potrete cercare anche l'opera cinematografica relativa sul canale RaiMovie. E' inoltre possibile configurare la risoluzione dei video e attivare anche la risoluzione per la registrazione con le apposite opzioni del menu principale. E' possibile anche vedere e ricercare nei podcast dei canali Radio della RAI. 

 

COME REGISTRARE

ATTENZIONE!: si ricorda che l'uso di questa funzionalita' dei flussi sia di RaiNixV3 che di altri noti strumenti è responsabilità esclusiva dell'utilizzatore finale e deve essere usata solamente per motivi personali di studio, senza ledere i diritti Rai. Per le registrazioni di default lo script usa il tool 'selsta/hlsdl' su Linux e su Windows (ambiente WSL), di cui è disponibile in download un binario eseguibile già pronto in un file .zip (leggere il README per le istruzioni) hlsdl.zip per Linux.  Conviene avere installato anche FFMPEG, dato che per alcuni VOD hlsdl non registra l'audio.
Si può registrare usando direttamente l’opzione 'Record' oppure durante la visione, ridando il focus sulla finestra dove c'è il menu con i programmi e poi di nuovo con 'Record'. E' possibile registrare e contemporaneamente vedere la trasmissione o vederne un'altra. Questa opzione è attivata nello script nella riga 'Multiprocess=1', settando a '0' il valore si ritorna ad un singolo uso. La registrazione viene archiviata di default nella cartella 'Video' della directory utente. Usando la funzione di ricerca, lo script chiede se si desidera registrare oppure vedere. Infine è stata introdotta la possibilità di escludere la finestra Xterm di controllo del flusso di registrazione (cambiare in HideRecorder="1”). Se VLC ha difficoltà a riprodurre registrazioni in formato AVI settare LiveRecFmt="mkv".  Con Windows Media Player su Windows settare su 'mkv' o 'avi'. Con l'opzione apposita nel menu principale è possibile attivare il controllo della risoluzione in registrazione.

 

COME FARE IL RESTREAMING

Una volta scelto un canale/programma è possibile avviare un restreaming locale dello stesso. L'opzione reindirizza il flusso anziche' sul default player verso l'indirizzo locale del PC dove lo script e' attivo. Il protocollo usato di default è 'http' con porta 8530 e necessita di VLC installato. In alternativa si possono usare:

- il protocollo rtp all'indirizzo rtp://239.101.101.1:1234

- il protocollo rtsp all'indirizzo rtsp://192.168.xx.xx:8554/live. Con rtsp si deve usare un server rtsp/rtmp (consigliato rtsp-simple-server versione 0.16 in poi).

il protocollo rtmp all'indirizzo rtmp://192.168.xx.xx:1935/live. Con rtmp si deve usare un server rtsp/rtmp (consigliato rtsp-simple-server versione 0.16 in poi).

 - il protocollo udp all'indirizzo udp:/239.101.101.2:1234

Lo script troverà, di norma ed in automatico l'indirizzo IP (ad esempio: 192.168.x.x) del computer host (sempre che non siano presenti interfacce virtuali, bridges, vbox etc etc). Con l'avvio del restreaming appare prima una finestra terminale con il tool scelto in esecuzione (ffmpeg di default ma modificabile con hlsdl), mentre dopo qualche secondo apparirà anche una piccola finestra di monitor senz'audio. Per questa funzione il default è ffplay, ma è modificabile anch'esso. In questa maniera un qualsiasi altro dispositivo (smartphone, tablet, AndroidTV ecc.) collegato sulla rete locale può riprodurre il flusso direttamente collegandosi agli indirizzi citati con un media player in grado di gestire flussi di rete 'mpegts' (ad esempio VLC/MPV o altre app per Android e iOS). I dispositivi (ad esempio SmartTV) che non hanno a disposizione questo tipo di player  ma che siano in grado di usare il protocollo standard DLNA possono usare come middleware un mediaserver (consigliati Serviio o Jellyfin) in grado di gestire come input flussi di rete e permettere alla TV, via DLNA/uPnP, di riprodurre il contenuto. Il tutto senza ricorrere a protocolli proprietari del tipo Chromecast o SmartShare. Lo script per il restreaming usa FFMPEG di default. Si può usare anche il tool HLSDL ma con alcuni video ci sono problemi con l'audio.

 

COME CONFIGURARE

Entrambi gli  script sono facilmente configurabili intervenendo in alcune righe di codice situate nella parte iniziale. Queste le principali modifiche possibili (fare attenzione anche ai commenti inseriti a lato):

a) modificare l’ordine dei player per i canali TV e per le Radio nella riga 'PlayersLive= e PlayersRadio=;

b) Recorders= modifica l'ordine dei recorder (hlsdl, ffmpeg o youtube-dl);
c) con HideRecorder="1” scompare la finestra Xterm che controlla il flusso di registrazione. In tal caso non si ha a schermo il controllo del flusso ed anche un eventuale stop va fatto con riga di comando;
d) con NoTerm=0 si ripristina eventualmente la finestra Xterm anche durante la visione dei video;
e) con Wsl=1 (solo per Windows) si modifica il comportamento dello script in altri ambienti (modificare solo se ci sono problemi nell’uso);
f) con AudioCodec="libmp3lame" si cambia l’output del formato audio delle registrazioni in mp3, utile per problemi di compatibilità;
g) con LiveRecFmt= si cambia formato per il contenitore della registrazione delle dirette (usare 'avi', 'mkv' 'mp4') ed è utile per problemi di compatibilità con VLC, devices Apple iOS ed altro;

h) con ReplRecFmt= si cambia formato contenitore delle registrazioni per Rai Replay (usare 'avi', 'mkv' o 'mp4) utile per problemi di compatibilità come punto h);

i)   con Savedir= si cambia la directory dove scaricare le registrazioni (default: /<directory home utente>/Video);

l) con ResTool= si cambia il tool usato per il restreaming invertendo la priorita tra ffmpeg e hlsdl (hlsdl su alcuni canali ha problemi con l'audio)

m)  con ResProtocols=  si modifica l'ordine del protocollo usato per il restreaming ('http' di default oppure rtp, udp, rtsp, rtmp);

n)  con MonPlayers=  si modifica l'ordine del player usato come 'monitor' durante il restreaming (ffplay di default);

o)  con MonWait=  si modifica il ritardo su ffmpeg per evitare che il monitor del restreaming vada in crash (più alto il valore maggiore il ritardo);

p)  con SlinkPlayer=  si modifica il player usato da streamlink/ffmpeg dopo aver messo questo player prioritario in PlayersLive;

q)  con HlsdlEngine= si modifica il player usato da hlsdl

r)  con EpgStatus= si modifica la visione degli EPG sui canali della radio e delle dirette (default:1)

 

RAINIXV3 CON ALTRI SISTEMI OPERATIVI OLTRE LINUX

A)  Versioni a 32 o 64 bit di Windows  XP, Vista, 7, 8, 10  possono usare un file .bat RaiWin.bat simile alla versione per Linux per le dirette RAI ma manca: RAIPLAY, l'opzione Podcast delle Radio e la funzione di ricerca. Il file gira anche con Windows 11 ma è necessario settare la 'Console' da usare (leggere come fare nel file README). Scaricare da qui il file.zip, scompattare e lanciare, dopo aver attentamente letto il file README. Il programma eseguibile RaiWin (versione 3.0.0 del 18/05/2023) deriva inizialmente da una versione in porting per Windows a cura di @Panunzio poi riadattata da Shorewall e Bird52. Solo da Windows 10 a 64bit in poi  potrete usare anche l’ambiente WSL (Windows Subsystem Linux) dove lo script funziona ma senza l'opzione restreaming  a patto che sulla Linux caricata in WSL ci siano installate le dipendenze e gli applicativi richiesti. Per installare e gestire un ambiente WSL leggere questo articolo.

B) Apple MacOS può usare una versione (3.3.6.1 del 04/11/2023) appositamente modificata per MacOS versioni 10.11 e superiori. Scaricare da qui il file .zip, scompattare e leggere attentamente il file README per l'uso in ambiente MacOS. ATTENZIONE: lo script non è stato testato con i dispositivi Apple che usano il chip M1.

C) FreeBSD e derivate se lo script non parte, va lanciato con bash rainixv3.sh. Per registrare con FreeBSD cambiare eventualmente l'ordine dei recorder nella riga 'Recorders=' mettendo ffmpeg o youtube-dl al primo posto (hlsdl non è disponibile). Su FreeBSD non è disponibile rtsp-simple-server. Per usare eventualmente il protocollo 'rtmp' usare il tool 'Nginx' opportunatamente configurato (leggere qui le istruzioni alla sezione BSD)

 

PROBLEMI NOTI (ISSUES)

RaiNixV3 è stato testato nei seguenti ambienti Linux (Fedora 31/38 workstation, Ubuntu 18.04 LTS e 20.04, Solus 4.2, Ubuntu Budgie 20.04, Mageia 5 e seguenti, OpenMandriva Lx 4.2, Slackware 15, Manjaro/ArchLinux rolling release, MX  Linux/Debian Buster e Debian Bullseye) ed infine FreeBSD (dalla 10 in poi). Inoltre funziona come già detto su Windows 10 (in ambiente WSL) oppure con la versione  per Windows (da XP a 10). La versione in download per MacOS (versioni 10.11 e seguenti) è stato testata solo su dispositivi Apple con chip Intel e non con il nuovo M1.  L'utente 'Mitm' ha inoltre gentilmente segnalato che lo script è in grado di girare su un Raspberry con sistema operativo Raspbian.

Lo script agisce solamente estraendo i link dalle pagine del sito RAI limitandosi a passarli al player/recorder impostato dall'utente. Pertanto non esegue nessuna manipolazione sul flusso, per cui problematiche di riproduzione (ad esempio buffering) sono da addebitarsi unicamente all'associazione Player/Linea/Server Rai. Nonostante lo script supporti molti players, non tutti risultano affidabili in egual misura e molto dipende dalla distro Linux usata, quindi provate il migliore per voi. Dalla versione 3.2.4, per ovviare comunque a problemi di flusso sulle dirette RAI (interruzione dopo qualche minuto specie su RAI1 e RAI4), sono stati aggiunti come gestori specifici di flussi hls anche 'hlsdl' (consigliato), 'streamlink' e 'ffmpeg'. Basta metterne uno come prioritario nell'opzione 'PlayersLive' e scegliere con l'opzione 'SlinkPlayer' (HlsdlEngine per hlsdl) il player tra quelli utlizzabili per questo caso: mpv (di default) oppure mplayer e xine. Verificare sempre con uno speed test comunque la banda utilizzabile dal computer.

Inoltre:

- Se un video non si carica con messaggi di 'non trovato' ecc. è probabile che quel video non sia disponibile sul sito della RAI nonostante risulti nell'elenco;

VLC (uno dei mediaplayer più usati) non riproduce i flussi ma è necessario per il restreaming con protocollo http.

- Per le dirette radio il player di default è 'mpv'. Sono stati riscontrati problemi con altri player come VLC  e Audacious.

- Su alcune distro (Slackware ad esempio) il comando 'ip' (necessario per il restreaming) è nella directory /sbin inaccessibile all'utente. Fare un link nella directory /usr/bin (ln -s /sbin/ip /usr/bin/).

- Nel caso di problemi di banda si può tentare con il player QMPlay2 che permette la modifica VBR per i flussi hls RAI agendo sulle opzioni di settings del player stesso. Però, con risoluzioni più basse, alcuni streaming potrebbero non partire perchè non disponibili sui server RAI.

- Se con ffmpeg si notano asincronie a/v e' preferibile usare hlsdl oppure youtube-dl per registrare. A volte puo' essere utile cambiare anche il formato di output (avi/mkv/mp4) rispetto ai default;

- Nel menu' di RAI Replay sono omesse alcune entrate (RaiNews 24, Rai Scuola, Rai Sport) per il semplice motivo che anche usando il browser risultano quasi prive di contenuti.

- se durante il restreaming con protocollo http appaiono più indirizzi è probabile che abbiate più interfaccia di rete attive (ad esempio eth0 e virbr0). Controllate con ifconfig da terminale. In tal caso nello script provate a decommentare la riga con LocalIp=$(ip addr...) e commentare quella con LocalIp=$(ip route...). Oppure usate il protocollo rtp.

- se durante il restreaming non appare l'indirizzo è probabile che state usando una distro Linux dove il comando 'ip' è accessibile solo da amministratore. In tal caso aprite il terminale e con un 'whereis ip' vedete in quale directory sta il comando 'ip' (in genere /sbin/ip). Poi da ammministratore fate un link: ln -s /sbin/ip /usr/bin/

- Il protocollo 'rtp' per il restreaming può non funzionare. Il problema potrebbe verificarsi con alcuni modem-router in comodato d'uso di alcuni provider. In tal caso usare gli altri protocolli a disposizione ('http' o 'udp') oppure rtsp (quest'ultimo avviando un rtsp server come rtsp-simple-server).

- Su alcune distro Linux potrebbe essere necessario installare Xterm. Sulla distro Solus è necessario compilarlo perchè non presente nei suoi repository.

- Con Mageia è consigliato installare 'ffmpeg' dal mirror 'Tainted' e non quello Core.

- Con ArchLinux e derivate (compresa EndeavourOS) Xterm potrebbe dare un fastidioso errore di font non trovati, installare con il tool pacman  il pacchetto 'xorg-mkfontscale'.

- il tool hlsdl potrebbe non trovare libcrypto.so.1.1 e non funzionare se intallato openssl3, come è stato segnalato dall'utente 'Night Train'. In tal caso, a seconda della distro Linux usata, bisogna cercare ed  installare l'apposita libreria (libssl.1.1). Se ancora il tool in download qui non funzionase, è necessario compilarlo direttamente dai sorgenti con il link fornito sopra.

 

- (solo FreeBSD e derivate) qualora ffmpeg abbia problemi può rendersi necessario compilarlo dai ports con l'opzione SDL e X264 abilitate. La compilazione fornirà anche il player 'ffplay' che nei pacchetti binari non è disponibile.