Aggiornato al 30 novembre 2012.
Installare Python e VLC, scaricare lo script e lanciare con il nome del canale come parametro. Ad esempio per vedere RaiUno:
python rai.py RaiUno
Lo script è il frutto di un lavoro collettivo. In particolare di Giulia, Wilder, Luker, skin79, Luke88, Pietro, mitm, Andrea, lufuscu e molti altri. Tutti sono incoraggiati a creare applicazioni e script più completi, possibilmente rilasciandone i sorgenti.
Invito tutti gli sviluppatori a spostarsi su Launchpad, lì c’è una mailing list e un repository per i sorgenti.
———————————————–
Quello che segue è solo per ricordare i tempi d’oro in cui bastava cambiare lo User Agent ;)
Ieri volevo vedere in diretta la puntata di PresaDiretta su RaiTre sul sito Rai.tv. Mi ha chiesto di installare Moonlight, cioè Silverlight per Linux. Ma naturalmente non funzionava, non so perché. Allora ho provato a mettere Silverlight su un Mac, ma nemmeno questo ha funzionato. La mia ira contro il servizio pubblico televisivo mi ha dato le energie necessarie a decifrare il codice delle loro pagine. Senza scendere nei dettagli, ecco come potete vedere le dirette Rai con il vostro media player preferito, ad es il VLC.
Mi raccomando selezionate attentamente i programmi che vale la pena di vedere, la stupidità può dare assuefazione. Per quanto mi riguarda: Report e PresaDiretta.
Aggiornamento 25 Feb
Hanno messo dei controlli sulla stringa di identificazione del browser (o del player) che si collega allo stream. Mi chiedo se per un servizio pubblico sia eticamente accettabile ricorrere a simili trucchetti, a voi l’ardua sentenza… Fra l’altro ti mostrano una sigletta che augura la “Buona Visione”, sembrerebbe quasi una provocazione. Dobbiamo camuffare il nostro player con un identificativo “da browser”:
Per il VLC: Andare su “Strumenti” => “Preferenze” e in basso dove c’è “Mostra le impostazioni” cliccare su “Tutto”. Quindi tra la selva di opzioni andare su “Ingresso/Codificatori” => “Moduli di accesso” => “HTTP(S)”. C’è un campo “User Agent HTTP”, settiamolo a:
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.6) Gecko/2009020911 Ubuntu/8.10 (intrepid) Firefox/3.0.6
Aggiornamento 12 Gennaio 2010
Allora, alcuni stream non funzionano più. I nostri furbetti della RAI hanno escogitato un nuovo trucco per costringerci a usare il Silverlight. In pratica bisogna usare un header HTTP non-standard (lo dico per i più tecnici). Ho una soluzione rapida per Linux e Mac. Su Linux, aprite il terminale e scrivete:
wget --header="viaurl: www.rai.tv" [qui la URL dello stream] -O - | vlc --http-user-agent="Linux" -
Sul Mac potete usare questo che usa il curl al posto del wget (che non è presente sul mac). Aprite il terminale e scrivete:
curl -H "viaurl: www.rai.tv" [qui la URL dello stream] | /Applications/VLC.app/Contents/MacOS/VLC --http-user-agent="Linux" -
Mi dispiace per gli utenti Windows, per ora non ho niente di user-friendly da offrire. Che ne dite di passare a Ubuntu?
Aggiornamento 14 Febbraio 2010
Lo hanno già scritto in molti nei commenti, non è più possibile accedere agli stream da VLC con i comandi qui sopra. Di più non è più possibile vedere le dirette Rai su Linux, anche su rai.tv con MoonLight. Anticipo subito che stavolta non ho intenzione di fornire soluzioni (che comunque per ora non ho) perché ciò richiederebbe la decompilazione di codice offuscato e la sua reimplementazione. Credo che questa operazione sia legale in Italia ma non credo sia una buona idea esporsi. Invito tutti, soprattutto gli utenti Linux, a comunicare alla RAI questo disservizio.
Info tecniche
Stavolta non si sono limitati a stupidi controlli su parametri HTTP ma hanno sviluppato un sistema di autenticazione. La creazione del token avviene nel codice Dot Net nella libreria Rai.Client.Services.Security.dll
che viene scaricata in /tmp/mono*/ . La libreria è offuscata usando SmartAssembly. E’ interessante notare che la console di MoonLight su Linux dà errore proprio nel caricamento di questa dll, quindi è probabile che Mono non riesca a caricare la DLL proprio a causa delle tecniche di offuscamento usate. Dunque la RAI ha sacrificato gli utenti Linux proprio per contrastare la visione degli stream al di fuori del browser. Basta aprire la DLL con un editor esadecimale per vedere la url della CGI che viene chiamata per ottenere la data corrente lato server. Probabilmente la DLL usa quella data (e altro?) per generare il token “ttAuth” che poi viene passato nella richiesta POST verso le URL degli stream.
Soluzione per Linux
Habemus scriptinus! Io non ci sarei mai arrivato da solo. Ma Giulia, Wilder, Pietro e il mio amico segreto hanno contributo a questo piccolo capolavoro. Per la verità Giulia ha avuto i 2 colpi di genio fondamentali: Base64 e la maschera con i byte in crescendo da applicare all’id + la data. Massima ammirazione! Ecco lo script da lanciare con la URL dello stream come parametro. Ad es:
rai.sh http://mediapolis.rai.it/relinker/relinkerServlet.htm?cont=983
L’ideale è scaricare lo script in ~/bin, cioè nella directory bin della propria home.