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 relativi Podcast) e di RAI Replay senza l'uso del browser, evitando sia la pubblicità iniziale sia la registrazione per l'accesso a Rai Replay e OnDemand. RaINixV3 (versione 3.3.6.1 del  14 giugno 2024) è in download cliccando qui  oppure andando nell’apposita sezione 'DOWNLOAD' di questo sito. Con l'opzione del menu principale 'Rai Play Vods' si scarica in automatico anche l'altro script 'RaiNixVod' (versione 2.1.1.1 del 14 giugno 2024) 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.

COME USARE RAINIXV3

Dipende da xterm, curl, wget, dialog, ffmpeg, jq, vlc, youtube-dl e yt-dlp (questi facoltativi). Il tool jq 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. Possibile 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 scelto il canale/programma si opta per la riproduzione, per registrare o fare il restreaming. Per adesso il canale RAI 4K che appare eventualmente 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' per 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. 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 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.  Lo script usa  FFMPEG di default ma può essere usato anche il tool 'selsta/hlsdl' su Linux, invertendo l'ordine nello script. Il tool è in download qui: hlsdl.zip per Linux come  binario eseguibile già pronto in un file .zip (leggere il README per le istruzioni). In alternativa anche youtube-dl e yt-dlp. 
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 scegliendo  '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.  Se VLC ha difficoltà a riprodurre registrazioni in formato AVI settare LiveRecFmt="mkv".  Con Windows Media Player su Windows settare su 'mkv' o 'avi'.

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 NoTerm=0 si ripristina eventualmente la finestra Xterm anche durante la visione dei video;
d) con Wsl=1 (solo per Windows) si modifica il comportamento dello script in altri ambienti (modificare solo se ci sono problemi nell’uso);
e) con AudioCodec="libmp3lame" si cambia l’output del formato audio delle registrazioni in mp3, utile per problemi di compatibilità;
f) 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;

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

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

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

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

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

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

o)  con HlsdlEngine= si modifica il player usato da hlsdlhttps://github.com/zaps166/QMPlay2/releases/

p)  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 con la versione PRO (non HOME) è 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.3.0 del 04/05/2024) 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 140/06/2024) 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.  Lo  script è stato testato con dispositivi Apple sia con il chip Intel che Arm.

C)  FreeBSD e derivate (GhostBSD ecc...): lo script risulta perfettamente compatibile. Se lo script non parte, va lanciato con 'bash rainixv3.sh'.

PROBLEMI NOTI (ISSUES)

RaiNixV3 è stato testato nei seguenti ambienti Linux (Fedora 31 workstation e seguenti, Ubuntu 18.04 LTS e seguenti, Solus 4.2, Ubuntu Budgie 20.04, Mageia 5 e seguenti, OpenMandriva Lx 4.2, Slackware 15, Manjaro/ArchLinux rolling release, EndeavoruOS/ArchLinux, MX  Linux/Debian Buster e seguenti, OpenSuse (Leap 15.5), FreeBSD (dalla 10 in poi) e GhostBSD. Inoltre funziona come già detto su Windows 10 e11 in ambiente WSL oppure usando l'apposita versione  per Windows (da XP a 11). La versione in download per MacOS (versioni 10.11 e seguenti) è stata testata sia su dispositivi Apple con chip Intel che ARM.  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', 'streamlink' e 'ffmpeg'. Basta agire nelle opzioni presenti nello script all'inizio. 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;

- Ultimamente la diretta RAI1 è affetta da un'iniziale asincronia audio/video che però dura solo qualche secondo poi s'assesta.

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

- Con OpenSuse, nota distro un pò ostica con il multimediale, usare come player QMPlay2 (scaricare da qui l'AppImage). Oppure mpv da flatpak e poi  fare un link così: ln -s /var/lib/flatpak/exports/bin/io.mpv.Mpv /usr/bin/mpv

- il tool hlsdl  potrebbe non trovare libcrypto.so.1.1 e non funzionare se installato 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). In genere non ci sono conflitti tra le 2 versioni.

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