Guardare e scaricare i video di Repubblica TV senza Flash Player

Se c’è una cosa che mi fa venire i nervi sono i siti web che discriminano artificiosamente gli utenti Linux. Per qualche motivo, sembra che il fatto di usare un sistema operativo più veloce, più sicuro e più stabile ci debba rendere vittime di dispetti bizzarri.

Poco tempo fa avevo parlato di MyMovies Live, ma recentemente mi sono imbattuto per caso sul portare Repubblica TV. Quello che ho visto è a dir poco incredibile: se proviamo a vedere un filmato, il portale ci risponde con un messaggio di errore.

errore_flash_Repubblica
Il discutibile messaggio di Repubblica TV

A prima vista potrebbe sembrare un avvertimento che ci ricorda di avere una versione vecchia di Flash Player, per qualche motivo. Peccato che questo messaggio compaia anche con la versione 21.0.0.213… che è l’ultima su tutte le piattaforme.

Guardando un attimo la struttura della pagina ho visto che, in realtà, ogni video di Repubblica TV è soltanto un semplicissimo file MP4. Oltre al danno, anche la beffa: infatti non servirebbe nessun plug-in per vedere i filmati.

Ho trovato questa cosa abbastanza snervante, per di più considerando il fatto che è possibile risolverla con pochissime righe di codice.

Infatti, è la prima volta che ho scritto uno script per un sito web digitando solamente 4 righe di Javascript, che sono andate al primo colpo senza nemmeno testarle. Questo mi rende davvero sbigottito e mi chiedo come mai Repubblica non possa fare una modifica così ovvia al portale per renderlo fruibile a tutti, senza dover usare un plug-in obsoleto e poco sicuro come Flash Player.

Ad ogni modo, col mio script si ottiene questo risultato:

crozza_video_repubblica
Video riprodotto direttamente in MP4 su Repubblica TV

Analogamente a quanto fatto per Rai, Mediaset, La7, RSI e BBC, ho pubblicato online lo script. In questo modo potete attivare la visione dei video anche nel vostro browser. 🙂 Vi ricordo che per installare gli script bisogna avere un’estensione per il browser:

Ah, il vostro browser deve essere in grado di riprodurre i video HTML5 in formato MP4.

Infine, vi basta cliccare il bottone per andare sulla pagina dedicata e completare l’installazione premendo Installa questo script:

Download — Video Repubblica in HTML5

Per salvare un video, basta cliccare col tasto destro sopra di esso e scegliere la voce apposita. 😀 Buona visione!

Convertire una presentazione in immagini, includendo le animazioni intermedie

Ieri ho iniziato il lavoro di montaggio video del mio intervento sull’estrazione di dati dalle pagine web. Come gli anni scorsi, anche quest’anno ho parlato utilizzando una presentazione Impress per accompagnare il discorso.

Dato che il video di me che gesticolo è di secondaria importanza, l’intento è mettere in risalto le slide. Per questo ho pensato di convertire tutte le slide in immagini per poi usarle in fase di montaggio. Le slide verranno mostrate a schermo pieno al posto del video, specialmente nei passaggi più importanti, mentre si sentirà la traccia audio per la mia voce.

In linea di principio, avrei potuto creare un PDF della presentazione e convertire quello in tante immagini, una per pagina. Tuttavia, in diverse slide ci sono alcuni punti che compaiono uno alla volta e questo viene perso durante la conversione in PDF.

Animazione del testo all'interno della stessa pagina
Animazione del testo all’interno della stessa pagina

Per questo motivo, ho deciso di seguire un approccio diverso:

  1. mostrare la prima slide
  2. catturare la schermata
  3. andare alla prossima slide
  4. ripetere il procedimento

Tutto questo in modo completamente automatico, ad eccezione dell’atto di terminare la procedura dopo l’ultima slide. Per ottenere il risultato desiderato, ho creato un brevissimo script in Python che utilizza il modulo pyautogui per automatizzare la pressione dei tasti, come suggerito qui. Un’altra funzionalità utile di questo modulo è la facoltà di catturare screenshot, così abbiamo tutto il necessario! 🙂

Prerequisiti

Il modulo pyautogui è sostanzialmente multipiattaforma, in quanto fa tutto il “duro lavoro” di adattamento per eseguire le stesse operazioni sui vari sistemi operativi, le quali normalmente richiederebbero modi diversi di essere compiute.

Tuttavia, è necessario installare anche alcuni componenti aggiuntivi per Linux che verranno utilizzati dal modulo per portare a termine ciò che ci serve. Pertanto, installiamo il modulo nel nostro profilo utente e i pacchetti necessari nel sistema con i comandi:

sudo apt-get install python-xlib python-tk python-pil
pip install --user pyautogui
sudo apt-get install scrot

Il primo pacchetto serve per la simulazione dei tasti e in generale il funzionamento base del modulo. Il secondo pacchetto sarebbe opzionale, ma per noi è necessario perché vogliamo anche che vengano catturati gli screenshot.

Catturare le schermate

A questo punto potete creare una nuova cartella screen con dentro uno script Python, chiamato ad esempio cattura.py. Il contenuto è questo:

#!/usr/bin/env python

import pyautogui
import time

# Attesa iniziale
time.sleep(10)

numero = 1

# Premere Ctrl+C alla fine della presentazione
while True:
    im = pyautogui.screenshot()
    im.save('screen_%03i.png' % numero)
    pyautogui.press('right')
    # Attesa transizione/animazione
    time.sleep(3)
    numero += 1

L’idea di base è semplice. Quando lo script parte, sta fermo per 10 secondi, così potete cambiare finestra e avviare la presentazione con LibreOffice (oppure Calligra Suite). Passato questo tempo, inizia la cattura delle schermate con il nome screen_001.png.

Tra una schermata e l’altra c’è una pausa di 3 secondi, in modo da far finire eventuali effetti di transizione (ad esempio le dissolvenze). Avviate lo script con il terminale, cambiando directory e lanciando il file Python appena creato:

cd /percorso/di/slide/cattura.py
python cattura.py

Poi avviate subito la presentazione e attendete senza toccare nulla. 😉 In poco tempo inizierete a vedere il computer che “va da solo” cambiando slide e attivando le animazioni fino all’ultima pagina.

Vi ricordo che, al posto di digitare tutto il percorso della directory che contiene lo script, potete fare drag’n’drop dell’icona della cartella slide dentro al terminale, dopo aver digitato il comando cd seguito da uno spazio. 😉

Quando la presentazione arriva alla fine, tenete conto che lo script continuerà a premere freccia destra ogni 3 secondi, catturando screenshot. Perciò riaprite il terminale ridotto ad icona e premete i tasti Ctrl+C per terminare il ciclo infinito.

Troverete le schermate (in formato PNG) nella cartella precedentemente creata.

Schermate ottenute con il procedimento descritto
Schermate ottenute con il procedimento descritto

Ritocchi finali

È probabile che, alla fine delle schermate ottenute, ci sia qualche file in più che mostra il vostro desktop dopo aver finito la presentazione ma prima di aver terminato lo script. In questo caso, è sufficiente cancellare le immagini di troppo. 😉

Nel mio caso, ho notato che la funzione di presentazione di LibreOffice lasciava un leggero margine nero in basso e a destra:

Margine nero lasciato da LibreOffice
Margine nero lasciato da LibreOffice

Il margine, misurato con GIMP, risultava di 1 pixel in basso e 2 pixel a destra. Per correggere questo problema ho usato ImageMagick. Il comando, che modifica direttamente le immagini originali, è questo:

mogrify -crop -2-1 screen_*.png

Attenzione che ciò crea delle copie di backup nascoste nella stessa cartella, ad esempio il file screen_001.png verrà copiato con il nome di screen_001.png~ e solo in seguito modificato. Se usate una cartella solo per le slide e poi la eliminate tutta, anche le copie nascoste saranno ripulite. In caso contrario, fate attenzione a non lasciare tracce inutili. 🙂

Ordinare script ed eseguibili su Linux con una comoda directory

I sistemi operativi Linux sono eccellenti e versatili. Hanno una lista talmente lunga di pregi e vantaggi che qualcuno ci ha addirittura fatto un sito web. Elencarli tutti risulterebbe impossibile, tuttavia uno dei miei preferiti è la capacità di personalizzazione.

Che si tratti di aggiungere temi, indicatori sulla barra di stato, software o anche piccoli comandi (script) per effettuare compiti ripetitivi, c’è solo l’imbarazzo della scelta. Il terminale fornisce una interfaccia a riga di comando che può tornare utile a principianti ed esperti. Ve ne avevo parlato in passato: alcuni comandi sono molto semplici e si imparano in fretta.

I programmi e gli script

La maggioranza dei programmi su Linux è disponibile in comodi pacchetti, scaricabili direttamente dal gestore pacchetti (o “centro software”, oppure altri nomi simili). Tuttavia esistono degli strumenti che vengono distribuiti come eseguibili da estrarre in una cartella e lanciare subito.

Alcuni sono software un po’ di nicchia, come ad esempio K2pdfopt. Si tratta di un eccellente programma open source in grado di reimpaginare completamente un PDF anche scannerizzato e ottimizzarlo per un lettore ebook o uno smartphone. Altri sono programmi molto più conosciuti e “grossi” come l’IDE Eclipse.

Esistono poi innumerevoli script sparsi in giro per il web. Queste vere e proprio gemme si trovano solitamente su siti e blog specializzati e possono essere sotto forma di script già pronti oppure di un elenco di comandi Linux. Nel secondo caso basta metterli in un file con estensione sh e renderli eseguibili per poterli richiamare ogni volta.

Per esempio, potreste essere interessati a un metodo per pulire le tracce di Wine. Cercando sul web trovate questo mio articolo e lanciate i 5 comandi. Per evitare di cercarli di nuovo e copiarli ogni volta, potete creare un semplice file chiamato cleanwine.sh con il seguente contenuto:

#!/bin/bash
rm -rf ~/.config/menus/applications-merged/wine-*
rm -rf ~/.local/share/applications/wine*
find ~/.local/share/icons/ -name "*wine*" | xargs rm -rf
rm -rf ~/.local/share/desktop-directories/wine-*
rm -rf ~/.wine*

In sintesi, dovete includere i comandi desiderati preceduti da una riga chiamata shebang, che specifica quale shell deve essere eseguita. Il file non ha ancora il permesso di essere eseguito. Ciò si può risolvere da terminale, dando:

chmod +x cleanwine.sh

Oppure cliccando col destro e accedendo alle proprietà del file, alla scheda permessi.

Questo lo potete fare con molti altri comandi che trovate in rete, per evitare di ricordare a memoria sequenze lunghissime e impossibili da ripetere senza errori. Esistono naturalmente anche esempi più complicati, come i comandi che richiedono parametri (se agiscono su file o altro). Il mio era solo un esempio, ci vorrebbe un altro articolo per trattare approfonditamente tutto ciò.

Lo stesso discorso vale per molti script in Python formati da un singolo file, come ad esempio il mio script per usare il servizio gratuito di VPNGate.

Lanciare i propri script o programmi

Quello che abbiamo visto finora è bello e interessante, sorge però un problema. Voi potete avere scaricato k2pdfopt o altri eseguibili, oppure potete aver scritto (o salvato dal web) qualche script come cleanwine.sh. Però il vostro sistema non sa che esistono. Intendo dire che, provando a lanciare un comando da terminale, otterrete un errore:

$ k2pdfopt
k2pdfopt: comando non trovato

Finché è uno solo, va bene anche richiamare il percorso completo, supponendo di aver dato i permessi di esecuzione:

/home/andrea/Scaricati/k2pdfopt # oppure ~/Scaricati/k2pdfopt

Questo però non è pulito. Immaginate di avere anche 4-5 script o eseguibili: intasereste qualche cartella adibita ad altro (per esempio Scaricati) e poi dovreste ricordare l’intero percorso ogni volta. Impraticabile.

La soluzione è creare una o più directory in cui mettere gli script e poi “informare” il vostro sistema della sua esistenza.

Organizzare tutto con una directory

Con questa guida intendo spiegarvi l’organizzazione che utilizzo io. Ovviamente potete variarla e adattarla alle vostre esigenze. Sul mio portatile, ho creato nella home una cartella chiamata bin, che contiene anche altre sottocartelle:

$ ls -1d ~/bin/*/
/home/andrea/bin/eclipse/
/home/andrea/bin/sage/
/home/andrea/bin/script/

In sintesi, ho una directory dove ho estratto l’ultima versione di Eclipse, una dove tengo installato Sage e una cartella dove tengo due dozzine di script di vario genere. Ho anche qualche altro software che non ho incluso nell’output, per evitare confusione.

L’idea di base è semplice: includere la maggior parte degli script (in Bash e in Python) dentro a script, alcuni eseguibili come k2pdfopt direttamente in bin e i programmi grossi nelle proprie directory. Qualunque eseguibile o script messo dentro a una di queste cartelle deve poter essere richiamato dal terminale scrivendone il nome.

Una volta organizzata la struttura di cartelle e inseriti i vari script o programmi, è il momento di rendere tutto ciò “visibile” dal terminale.

Aggiustare il PATH

La shell della vostra distribuzione Linux è in grado di riconoscere i comandi che digitate perché sa dove andarli a cercare. Per esempio, se digitate who e premete Invio, il sistema cercherà tutte le cartelle nel PATH fino a trovare un programma che si chiami esattamente così. Il programma (probabilmente /usr/bin/who) viene quindi eseguito.

Qui entra il gioco la personalizzazione: possiamo aggiungere le nostre directory e richiamare gli script e gli eseguibili scaricati. Per farlo, vi basta aprire il file .bashrc nella vostra cartella home.

Due cose a cui fare attenzione:

  • Sto supponendo che la vostra versione di Linux usi Bash come shell predefinita, se non siete sicuri al 99% è così. Gli utenti esperti possono modificare la propria shell e usarne una alternativa.
  • Il file da modificare è nascosto (inizia con un punto), perciò dovrete attivare la visualizzazione dei file nascosti per poterlo individuare. Su alcuni gestori di file, come quello di Ubuntu, si può fare anche premendo Ctrl+H mentre siete nella cartella home.
  • Queste modifiche valgono solo per il vostro utente. Gli altri utenti del sistema non noteranno differenze.

È necessario aggiungere alcune righe in fondo. Magari mettete anche un paio di righe bianche per separare il contenuto precedente da quello aggiunto da voi. In particolare sono una per directory:

# Percorsi aggiunti al PATH
export PATH=$PATH:~/bin
export PATH=$PATH:~/bin/script
export PATH=$PATH:~/bin/sage

Non ho aggiunto Eclipse perché non mi interessa richiamarlo da terminale, ma solo tenerlo in una cartella “in ordine”. Come potete vedere, stiamo ridefinendo il PATH aggiungendovi un separatore (due punti) e la directory desiderata. Ne mettiamo una alla volta per comodità.

Ricordate di modificare il mio esempio, non copiatelo così com’è. Un paio di osservazioni:

  • Se non usate Sage o se avete predisposto altre cartelle, adattate le righe di conseguenza.
  • La tilde serve a rappresentare il percorso della vostra cartella home.

Ora dovreste chiudere il terminale e riaprirlo. Qualsiasi script o eseguibile messo nella cartella bin o in un’altra di quelle che avete elencato potrà essere richiamato con il relativo nome.

Alcuni consigli

Aggiungendo altri programmi potrebbe capitarvi di creare altre sottodirectory, e queste non sono incluse nel PATH. Potete modificarlo ogni volta, oppure mettere un collegamento simbolico all’esegubile principale nella cartella bin: questo in genere funziona bene con i programmi in Java.

Un esempio è jPdf Tweak, un altro software per modificare i PDF. L’ho scaricato in questo percorso:

~/bin/jpdftweak-linux-x64-1.1

Poi però l’ho collegato nella directory principale, per evitare di dover modificare la mia configurazione:

cd ~/bin/
ln -s jpdftweak-linux-x64-1.1/jpdftweak.jar .

Ciò potrebbe non funzionare per alcuni software, provate caso per caso. Ecco come appare attualmente la mia directory per gli script e gli eseguibili:

Esempio di contenuto della directory predisposta
Esempio di contenuto della directory predisposta

Per quanto riguarda i programmi che hanno interfaccia grafica, può essere utile creare un’icona per il menu. Il lanciatore va inserito in:

~/.local/share/applications

Deve inoltre avere una estensione .desktop. Eccovi un esempio del contenuto del mio file jpdftweak.desktop:

[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Name=jPdf Tweak
Icon=/home/andrea/bin/jpdftweak-linux-x64-1.1/icons/icon256.png
Path=/home/andrea/bin/jpdftweak-linux-x64-1.1/
Exec=jpdftweak.jar

Ovviamente i campi vanno adattati al caso specifico.

Spero di aver fornito una spiegazione esauriente per creare una propria directory dove immagazzinare gli script e i file binari. Chiaramente queste istruzioni rispecchiano le mie personali preferenze, altri potrebbero usare metodi differenti.

Se avete dei suggerimenti a questo proposito o volete condividere la vostra organizzazione in questo ambito, lasciate un commento. 🙂

Script per Video Mediaset 5.2: design aggiornato e lo schermo intero per davvero

Oggi ho rilasciato la versione 5.2 per il mio script che permette di scaricare i filmati da Video Mediaset. Anche se la precedente 4.6 ha “resistito” al cambio di grafica, continuando a funzionare, ho preferito adattare lo script al nuovo design del sito e semplificare un po’ le cose.

Avrebbe dovuto essere la 5.0. Tuttavia, in seguito sono venute fuori complicazioni con Firefox, poi ho scoperto anche che hanno cambiato le carte in tavola per quanto riguarda le estensioni e di conseguenza anche Greasemonkey. Pertanto avevo dovuto “ripristinare” la 4.6, inventandomi la versione 5.1.0.4.6 (copia-incolla della 4.6).

Cos’è cambiato di preciso? In realtà non molto… Prima, su Greasemonkey l’autore di uno script poteva inserire oggetti e pezzi di codice all’interno della pagina. Io per esempio inserisco la barra verde contenente i link al video. Ora non più, bisogna usare le funzioni apposite fornite da Firefox, come ad esempio exportFunction.

Conclusione? Si fa la stessa cosa, non cambia niente. Solo che bisogna farlo in modo complicato, e così facendo bisogna istruire gli altri browser (per esempio Chromium) su cosa sia exportFunction, che è una prerogativa esplicita di Firefox. Da qui la perdita di tempo, visto che per pura coincidenza una nuova funzionalità che volevo aggiungere aveva bisogno di fare ciò.

Benvenuti all’Ufficio complicazione affari semplici. 😛

Comunque… a parte lo sfogo tecnico sul fatto che gli sviluppatori Firefox pensino che noi non abbiamo niente di meglio da fare che aggiornare i nostri script per niente, alla fine la nuova versione è pronta.

Vediamo i cambiamenti principali. Innanzitutto, ho rimosso tutta la parte di gestione del player. Video Mediaset ora usa HTML5 ogni qualvolta sia possibile, ripiegando su Flash Player in caso contrario. Niente più offensive discriminazioni per noi utenti Linux. 😀

Ho potuto quindi concentrarmi sul migliorare il riproduttore fornito da Mediaset. Dato che la modalità “schermo intero” che hanno messo è abbastanza buffa (e finta), ci ho messo un po’ del mio e ho fatto delle modifiche. Cito testualmente dall’articolo sullo script:

A partire dalla versione 5.2 dello script, ho inserito una funzionalità che migliora notevolmente la modalità “schermo intero” e il player fornito da Video Mediaset. In particolare:

  • usa il vero full screen, invece di un ingrandimento del filmato ai bordi della pagina
  • funziona con il riproduttore HTML5, sia su Firefox che su Chrome/Chromium
  • nasconde il cursore del mouse che diventa visibile solo muovendolo verso il basso, dove ci sono i controlli del player
  • elimina la pubblicità che precede il filmato

Nelle seguenti immagini potete vedere la differenza tra la modalità a schermo intero di Video Mediaset e quella col mio script attivato:

Devo dire comunque che Mediaset ha fatto un buon lavoro con il portale, la nuova grafica è molto pulita e si focalizza sui contenuti più che sulle decorazioni inutili. Ottimo anche il passaggio ad HTML5. 🙂

Come sempre, potete attendere che lo script si aggiorni automaticamente, oppure accorciare i tempi e installarlo manualmente. Buona visione! 😉

Inoltrare le email da Libero Mail a qualsiasi altro indirizzo

Da quando ho pubblicato (nel 2011) il mio articolo su come usare la casella email di Libero tramite IMAP, usando Gmail come ponte, tale post ha ricevuto più di 98900 visite. Supponendo che in 1 caso su 100 il mio post sia stato utile, significa aver aiutato quasi 1000 persone a evitare l’uso della terribile interfaccia web di Libero Mail, o ancor meglio aver permesso la migrazione definitiva verso un servizio di qualità come Gmail.

La mia guida si basava sull’uso dei filtri per l’inoltro della posta verso Gmail. Non sono rimasto perciò molto sorpreso quando una persona mi ha comunicato che recentemente non era possibile seguire la mia guida, in quanto Libero ha cambiato le carte in tavola permettendo l’inoltro della propria posta solo verso altre caselle Libero.

La figura mostra cosa succede quando si prova a creare un filtro di inoltro verso una casella email non fornita da Libero:

Avviso: i tuoi dati sono nelle nostre mani!
Avviso: i tuoi dati sono nelle nostre mani!

Di fatto è stata attuata una vera e propria politica di vendor lock-in, vale a dire il fenomeno per cui un fornitore di servizi incatena i propri utenti, impedendo ai medesimi di “scappare” coi propri dati verso altri servizi.

Se mi è consentito usare un eufemismo, non è che questa cosa sia esattamente da considerarsi gradita e simpatica… Specialmente quando un ignaro utente si rende conto di non poter passare a un altro fornitore email avendo la tranquillità che i messaggi mandati all’indirizzo vecchio saranno inoltrati. 😉

Per questo motivo ho analizzato il sito di Libero Mail e ho trovato un metodo abbastanza pratico per disattivare il blocco. Si tratta di uno user script per il browser, vale a dire un minuscolo programma che viene avviato quando visitate il sito di Libero Mail.

Per usarlo, dovete installare l’estensione adatta per il vostro browser. Questa cambia a seconda del software che utilizzate per navigare:

Una volta installata l’estensione, potete provvedere a scaricare lo script aprendo la pagina di download, tramite il seguente pulsante:

Download — Libero Mail forward to ANY address

Ovviamente poi cliccate su Install this script.

Potete quindi recarvi sul sito web di Libero Mail e creare i filtri di inoltro che più vi aggradano, senza messaggi fastidiosi, inopportuni e offensivi che vi bloccano. 🙂

Una nota importantissima che voglio aggiungere: non è assolutamente escluso che in futuro Libero aumenti le limitazioni e queste pratiche “incatenanti”. Vi raccomando perciò di usare i filtri di inoltro per ricevere i messaggi sulla vostra casella di un provider più funzionale, e avvisare alla svelta chi vi scrive che possedete un nuovo indirizzo.

Migrate prima che sia troppo tardi. 😉

Ex script per scaricare da La7.tv diventa script per La7.it

Mi avete scritto in tanti per segnalarmi che lo script che avevo messo a punto per il vecchio sito La7.tv non era più utilizzabile per il nuovo portare La7.it. In effetti l’emittente non ha semplicemente modificato il proprio sito, l’ha totalmente rimpiazzato con uno nuovo.

Venerdì ho finito gli esami, perciò oggi ho potuto dare un’occhiata. Non ero molto fiducioso in quanto utilizzano player in Flash con tecnologia HTTP dynamic streaming, i video vengono frammentati in piccoli pezzetti e l’accesso al file che li descrive richiede pure una piccola chiave crittografica (tecnicamente un HMAC).

Stavo tentando di raccapezzarmi in tutta questa confusione quando mi sono reso conto che La7 mantiene anche una copia del video in formato MP4, ed è pure estremamente semplice da trovare. 😀 Per farvi un paragone, il mio vecchio script era formato da 59 righe di codice, di cui una quindicina puramente “estetiche”. La versione 2.0 è formata da 27 righe di codice, delle quali 16 dedicate all’aspetto del pulsante finale. 😀

Eccovi un paio di esempi dal nuovo sito di La7:

Una puntata "standard"
Una puntata “standard”
Puntata "piccola" in una pagina con formato diverso
Puntata “piccola” in una pagina con formato diverso

Per poter utilizzare la versione 2.0 dello script potete attendere l’aggiornamento automatico che dovreste ricevere a breve, oppure reinstallare manualmente lo script. Se volete installare lo script vi rimando alle istruzioni del mio precedente articolo che provvederò ad aggiornare a momenti.

Come sempre, buona visione! 😉

Avviso importante: nuovo server per il download da Video Mediaset

Come avrete notato non ho scritto molto quest’estate, inoltre ho tenuto in sospeso un paio di articoli addirittura dal tardo 2012. Questo è successo per una signora molto dispotica chiamata “tesi di laurea”, la quale tuttavia oggi è stata gentilmente salutata e non disturberà più. 😀 Nel frattempo ho provveduto anche ad aggiornare questo strumento (lo script) messo a disposizione sul blog, e se lo utilizzate è importante che leggiate di seguito.

I miei script per salvare i video dai siti di Rai, Mediaset e La7 hanno riscosso un successo notevole e vengono utilizzati quotidianamente da molte persone. Questo mi fa molto piacere, tuttavia recentemente ci sono stati alcuni problemi con lo script per video.mediaset.it.

I più tecnici tra di voi avranno infatti già notato che il mio script per Greasemonkey e Tampermonkey, installato dagli utenti, si interfaccia con un server intermedio per ottenere i link ai video. La situazione è illustrata meglio in figura e di seguito è spiegato passo-passo.

Schema di funzionamento dello script per il download da Video Mediaset
Schema di funzionamento dello script per il download da Video Mediaset

Procedimento:

  • l’utente scarica Greasemonkey o Tampermonkey e poi installa il mio script
  • lo script chiede al server pubblico (in verde) gli indirizzi dei file corrispondenti al video visualizzato dall’utente
  • il server pubblico interroga il server segreto (in rosso) richiedendogli di scovare i link
  • quest’ultimo trova i link sul sito di Mediaset e li rimanda indietro
  • il mio script mostra in un riquadro i video e l’utente li visualizza

Il server pubblico era (ed è) una pagina ospitata su uno dei tanti servizi di free hosting statunitensi. Si tratta del sito il cui indirizzo è incluso nel codice sorgente del mio script. Tale pagina ha lo scopo di interfacciarsi e mascherare il vero server (quello “segreto”) che si occupa di trovare i link per voi. Quest’ultimo è ubicato in Italia e si maschera sia da PC che da telefono cellulare. Non è opportuno che io fornisca ulteriori dettagli in merito. 😉

Gli scopi sono due:

  1. estrarre anche i link in formato MP4 per cellulari, cosa non possibile su Chrome senza interventi manuali e tediosi da parte dell’utente
  2. permettere anche a chi risiede all’estero di vedere le trasmissioni

Veniamo al problema: il tremendo successo dello script, unito ad alcuni problemi ricorrenti al precedente servizio di hosting, hanno fatto sì che per alcuni giorni i link non comparissero, in quanto il sito veniva disattivato perché sovraccarico. Questo inoltre è successo più di una volta ed è risultato per me nel ricevere numerosi commenti, tweet e messaggi via email chiedendo lumi, oppure suggerendo che lo script dovesse essere aggiornato.

Non sarebbe stato un problema anche se ero in tesi, ad eccezione del fatto che voi utenti avreste dovuto attendere qualche giorno. Tuttavia il fatto che non dipendesse da me rendeva impossibile risolvere la situazione rapidamente, a meno di non cambiare completamente le cose.

È quello che ho fatto.

Ho attuato lo spostamento del server pubblico (di fatto un “collo di bottiglia”) su un altro hosting, che uso già per il mio blog secondario. Ho usato, con un po’ di simpatia, l’indirizzo http://video.lazza.dk (non si vede granché perché non è un sito con contenuti, ha il solo lo scopo di servire il mio script). 😀

Oltre a questo, mi sono premurato di proteggere il sito dal “troppo successo”: ora il dominio viene gestito tramite CloudFlare, un servizio che fa da CDN e DNS. Senza entrare nei dettagli, diciamo che tiene a disposizione delle copie degli indirizzi dei video più cliccati, così spesso il server pubblico non viene neppure “toccato” e l’utente riceve subito una risposta. Inoltre protegge da attacchi informatici di vario genere.

Questo riduce il carico e aumenta drasticamente l’affidabilità del servizio. Per questo è importantissimo che controlliate di avere lo script aggiornato. Da stasera, coloro i quali saranno rimasti alla versione vecchia per qualche motivo, vedranno un video “di avvertimento” che li invita ad aggiornare.

Per aggiornare lo script recarsi nell’apposito articolo e seguire le istruzioni per installarlo. La versione aggiornata sostituirà quella precedente.

Ricordo che se utilizzate già una versione non troppo vecchia dello script l’aggiornamento dovrebbe essere automatico e sarà già avvenuto mentre state navigando. 😉 Mi spiace per aver richiesto la vostra attenzione per il tempo necessario a leggere questo post, tuttavia lo script viene acceduto in media da 250 visitatori unici ogni giorno, con picchi di 1000 richieste di video quotidiane, perciò è necessario prendere le misure necessarie affinché tutto funzioni bene. 🙂

Buona visione!

Uno script in Bash per visualizzare le dirette Rai con Linux

Nei meandri della rete a volte si nascondono delle vere e proprie gemme. Un lettore mi ha recentemente segnalato questa, indicata nel blog di Andrea Ferroni in un articolo anche un po’ vecchiotto, eppure bella e funzionante. Cito testualmente:

Installate, se non li avete già, i pacchetti mplayer e xmlstarlet. Scaricate questo script sul vostro computer, rendetelo eseguibile e rinominatelo da “rai.txt” a “rai”. A questo punto eseguitelo da console e vi comparirà l’elenco dei canali. La procedura, per chi ha Ubuntu, Debian o derivate, è:

sudo apt-get install mplayer xmlstarlet
wget -O rai http://fabrizio.zellini.org/magick/rai.txt
chmod +x rai

Per vedere RAI1, ad esempio, è sufficiente lanciarlo come ./rai 1, per RAI Sport ./rai sport.

Aggiungo anche che se non lo avete dovete installare pure curl, come mi è stato segnalato nei commenti. Lo script è stato realizzato da Fabrizio Zellini e nella sua semplicità è geniale: usa gli stream della Rai indicando gli header necessari a convincere il server che “va tutto bene” e quindi si visualizzano le dirette con Mplayer. Il risultato è una aggiunta perfetta al mio script che consente invece di vedere i video on demand del medesimo sito.

Una mia nota personale: se nel codice dello script cambiate il comando da mplayer a gnome-mplayer (posto che abbiate installato quest’ultimo) avrete la possibilità di usare una GUI un po’ più ricca e che consente di impostare il rapporto di aspetto e cose simili. 😉

È anche questo il bello del software libero: l’unione fa la forza!

Via Visualizzare gli stream delle trasmissioni RAI senza Silverlight « Informatiche {bubbakk}.

Nuova versione dello script per guardare e scaricare da Rai.tv e Rai Replay

Come sapete, da un po’ di tempo sviluppo un comodo script che consente di guardare e scaricare i video on demand dal portale Rai.tv, che include anche Rai Replay. Lo script ha sempre funzionato bene o male con tutti i video, tuttavia in qualche sporadico caso — per via della “variabilità” del layout delle varie pagine Rai — poteva fallire. Oggi ho provveduto ad aggiornare ed estendere il codice dello script per fare alcune migliorie, alcune delle quali importanti. Ecco la lista dei cambiamenti:

  • Migliore supporto ai video in formato MP4 — Prendete ad esempio questo servizio di RaiNews24, che prima non era correttamente riconosciuto.
  • Miglior posizionamento del riquadro verde — Ora il link dovrebbe essere sempre sotto al video anche su pagine dalla struttura “arzigogolata”, come questo video del TG1, fornendo un aspetto più consistente.
  • Supporto a Rai.it — Nel caso in cui i video su Rai.it siano inseriti in modo “tecnologicamente uguale” a Rai.tv (come per esempio le rubriche del TG2) ora il mio script li riconosce e individua il link (cercando per quanto possibile di rimandare l’utente a Rai.tv dove sicuramente funziona).
  • Supporto ai video in Flash sui domini Rai — Avete presente quelle numerose puntate sui sottodomini che finiscono per rai.it, per esempio questo? Ebbene, ora il mio script è in grado di aiutarvi anche per quelli. Non esiste un link diretto ai file, ma sotto al video troverete la linea di comando da dare in pasto a RTMPdump, un programma per salvare flussi con protocollo RTMP. Il file risultante alla fine del processo sarà in MP4.

Per le informazioni su come installare lo script — nonché come usarlo per salvare i video — vi rimando al mio precedente articolo. Per favore pazientate ancora un po’ e datemi tempo per aggiornarlo affinché contenga anche le istruzioni riguardo RTMPdump, che è la principale novità di questa versione 4.0 dello script. 😉 Come sempre, buona visione!

Scaricare video in formato Silverlight (Smooth Streaming) con Mac OS X

Prima di passare al tema vero e proprio dell’articolo, permettetemi di fare una dovuta premessa. Anche se il post lo sto scrivendo io, quanto è contenuto non sarebbe stato possibile senza il fondamentale contributo di Fabio Rachello, un amico e compagno di studi che — oltre a essere anche utente Mac — ha avuto la pazienza di sopportarmi per il tempo necessario a costruire e testare la procedura in questione. Grazie Fabio!

Passando allo Smooth Streaming, vi avevo già raccontato come la tecnologia Silverlight si sia diffusa sui siti delle principali TV (Rai e Mediaset) e non solo. Nello stesso post presentavo una spiegazione sull’uso di Wine, un software per Windows e un mio script al fine di poter salvare questi flussi con Linux. Dato che sto lavorando ad un post “più ampio”, con indicazioni generiche su come individuare e salvare i video dalle pagine web, mi sembrava un peccato avere raccolto istruzioni su tutto tranne che sul download di video in Smooth Streaming da Mac.

Per questo motivo, ho deciso di fare un piccolo off-topic e dedicare questo articolo a chi vorrebbe salvare video Smooth Streaming su Mac, in particolare vi fornisco un’ottima soluzione per utilizzare ISMdownloader su Mac OS X. Ciò va a chiudere il cerchio: il programma, pur essendo nato per Windows, lo possiamo adoperare su tutti i principali sistemi operativi. Questo senza dover chiamare in causa software come Jaksta, che oltre ad essere a pagamento, ha un supporto alquanto discutibile a questo tipo di stream.

Installazione e utilizzo

Installare Wine e configurarlo è un po’ meno semplice usando Mac OS X rispetto a Linux, e probabilmente gli utenti Apple sono meno abituati a questo software. Perciò io e Fabio abbiamo predisposto un “mega-pacchetto” che contiene al suo interno Wine, il finto disco C: configurato con l’ambiente .Net e ISMdownloader. A questo si aggiunge il mio piccolo script, che è sostanzialmente identico a quello per Linux e vi consente di usare ISMdownloader in modo “trasparente” e facile.

Per installare il tutto ci sono sostanzialmente tre cose da fare:

  1. Scaricare il file zip da questo indirizzo ed estrarre il file .app contenuto all’interno, mettendolo tassativamente nella cartella del vostro profilo utente (per esempio /Users/nomeutente) oppure una sottocartella.
    Importantissimo: non mettetelo nella cartella Applicazioni del sistema né in cartelle che contengano uno spazio nel nome. Altrimenti non funziona… Poi non dite che non siete stati avvisati. 😉 Il file .app in questione è solo il contenitore di Wine, non cercate di avviarlo cliccandoci sopra perché non succederà nulla.
  2. Salvare lo script, che si trova qui. Si tratta del file smooth.sh, cioè il mio wrapper per usare ISMdownloader. Vi consiglio di salvarlo nella cartella del vostro profilo utente (così è più semplice da richiamare) altrimenti ricordatevi il percorso in cui l’avete salvato.
  3. Dare i permessi di esecuzione, ovvero dire a Mac OS X «questo è un programma, non un file di testo qualunque». Lo potete fare usando il terminale (che per i meno pratici si trova in Applicazioni > Utility > Terminale.app). Ricordatevi che il terminale servirà anche dopo. Il comando da dare è il seguente (aggiustate le istruzioni col percorso corretto al file smooth.sh se l’avete salvato in una cartella diversa da quella che vi ho consigliato io):
    chmod +x smooth.sh

A questo punto è tutto pronto, vi basta procurarvi il link di un Manifest di un video in formato Smooth Streaming (per esempio scovando quelli di Video Mediaset) e lanciare lo script. Questo troverà automaticamente ISMdownloader.app nella vostra cartella utente e si occuperà di lanciare il programma. L’uso è molto semplice, la struttura del comando è la seguente:

./smooth.sh "http://url/del/manifest" "nome"

Anche per il nome del file vi consiglio di evitare gli spazi. Vi basta aspettare finché non leggete che ha finito, verrà poi aggiunta automaticamente l’estensione MKV (Matroska) ai video e potrete guardarli usando un player come VLC.

Lo script in azione con una clip de "i Cesaroni" da Video Mediaset
Lo script in azione con una clip de “i Cesaroni” da Video Mediaset

Ultime precisazioni

Ovviamente valgono le stesse limitazioni dette per quanto riguarda Linux. Il download non si può mettere in pausa e in qualche video ci sono piccole macchioline nere che compaiono ogni tanto, ma tutto sommato si vede bene nel complesso. A questo va aggiunto che il file dell’applicazione è un po’ “pesantino” ma tutto sommato non dovrebbe stupire, perché contiene tutto Wine e il software già configurato, che altrimenti avreste dovuto installare a parte.

Resta il fatto che in rete non si trova nessun’altra informazione sull’uso di ISMdownloader su Mac OS X e se non altro ora il download dei filmati in alta qualità da Video Mediaset (e non solo) non è più un sogno. Presto pubblicherò anche la guida “generica” per scovare gli URL dei video online e scaricarli, portate ancora un pochino di pazienza. 🙂