Ridurre l’alto consumo di CPU di Spotify

A molti utenti è capitato di riscontrare un massiccio consumo di CPU da parte di Spotify, la migliore applicazione per ascoltare musica in modo legale, anche in situazioni apparentemente “tranquille”. Per esempio, ecco come si comportava sul mio portatile con una canzone in pausa:

Massiccio consumo di risorse di due processi di Spotify
Massiccio consumo di risorse di due processi di Spotify

Il problema, almeno nel mio caso, deriva da alcuni elementi dell’interfaccia grafica che richiedono una considerevole potenza di calcolo per essere disegnati. L’interfaccia di Spotify è basata su Webkit, un componente che troviamo anche all’interno di alcuni browser (come Chromium), tuttavia non è molto performante.

Ho trovato la soluzione al problema ispirandomi a un messaggio trovato sul forum ufficiale. Si tratta solo di disattivare due opzioni.🙂 Andate su Visualizza e togliete le spunte da Feed attività e Illustrazione grande brano in riproduzione. Ecco fatto!

Il risultato dopo la cura è il seguente:

Una situazione molto più tranquilla
Una situazione molto più tranquilla

Aggiornamento: poco dopo aver scritto questo post, ho notato che anche la pagina principale (intitolata Naviga) contribuisce ad appesantire la CPU. Pertanto vi consiglio di tenere aperta un’altra pagina, per esempio Album mentre ascoltate la musica.😉

How to download BBC iPlayer videos and radio programmes

Abstract (Italiano): Scrivo questo articolo in inglese perché (ovviamente) la registrazione dei video della BBC interessa maggiormente le persone che parlano inglese. Se lasciate un commento, gentilmente fatelo in inglese.

Abstract (English): I’m writing this post in English because (obviously) recording BBC videos is mostly of interest for those who speak English. Also, a small note for native speakers, especially British people: I’m Italian and I’m mostly used to write using American spelling. For this reason, the post may contain mistakes or American words which may seem unusual. I’m sorry for that. If you find errors (apart from AE spelling) let me know in the comments.


I already wrote about downloading videos from the BBC and Hulu websites (in Italian), however it was about two years ago. Websites change and so does software, hence the suggested method of using get_flash_videos does not work anymore.

I also wrote a generic article about downloading videos from websites (in Italian, too) that contains many different use cases and examples. One of my readers asked for clarification about recording iPlayer videos, so I tried again myself. I was able to apply some of the techniques of my post, together with a couple of clever tricks to find the maximum quality.

Since the process is a bit involved, I wrote a small software which automates all the steps and tells you how to start the recording immediately. This program is actually a so called user script, i.e. a piece of software that runs directly into your browser.

This article explains how to download and install the script. Then it shows you how to use it and what you need to do to record BBC iPlayer videos. Before we start, you need to be able to trick the BBC website into thinking you are living in the UK. If you are actually living there, skip the next section.

Pretending to be in the UK

The BBC iPlayer service is officially available only in the United Kingdom. The website will check your IP address and refuse access if you are trying to watch content from another country. To fix this problem, you need to use a technique to access the site through a server in the UK.

Usually the best tool for the job is a VPN service. VPNs are used to establish secure connections to private networks over the Internet, but may also be used to avoid geographical restrictions of websites.

There are many different VPN services. Most of them are paid (although cheap), while some are free. Among the best options, you can:

  • use VPNGate by choosing a node in the UK
  • use CyberGhost with free UK servers
  • use VPNOneClick
  • get a cheap lifetime deal for a professional VPN, such as:

CyberGhost is an interesting VPN service with a convenient free tier for Android devices, Windows and OS X. Unfortunately, the free option is not officially available for the operating system everyone should be using, i.e. Linux. I plan to investigate a bit more about this severe limitation.

Luckily, I also wrote a Python script for easily using VPNGate by specifying only the desired country which works perfectly on any Linux distribution, including Ubuntu, Mint, Fedora, OpenSuse and Mageia. You can check it out here.

You may also try VPN OneClick, which lists UK among the servers. Regardless of what VPN service you choose, once it is activated, you are ready to go on and start recording videos from iPlayer.

Script installation

To run the user script in your browser, you need to install an extension. This varies depending on your browser. The following are recommended:

After this step, you can click the following link to open the script page on Greasyfork. On the page that shows up, click on the Install this script button to complete the procedure.

Download — BBC iPlayer video download

You are now ready to start downloading.

Recording videos

The next time you open a video page on iPlayer, you’ll see that the script adds a box under it with some instructions and a command line. The following pictures shows an example with this video. You can see a reference to avconv, which was suggested previously, however now the recommended tool is ffmpeg.

Example of the output of the script
Example of the output of the script

The command line displayed in the gray box is a one-liner you can use together with ffmpeg. This is a software used to convert and record video files, which can be installed on any of the common Linux distributions such as Ubuntu. More informations are available on the official website. To start the download, carefully copy the entire content of the gray box (and nothing else) and paste it into a terminal window, then press Enter.

Downloading a video with ffmpeg
Downloading a video with ffmpeg

As you can see from both figures, the file is saved into a MP4 container and the name corresponds to the title of the video.

It should also be possible to download the software for Windows or Mac. On Windows you just need to create a new file called download.bat (with Notepad, or any other editor) in the same directory of ffmpeg.exe and copy-paste the command line into it. After that, you click the bat file and it should start downloading. However, using those operating systems is not recommended nor endorsed.

I cannot provide support to Windows or Mac users, since I don’t use those systems and they are proprietary software. If in doubt, please use Linux, or find an expert to help you with your OS. If you need help to follow this guide and you use Linux, of course leave a comment and we will try to figure it out together.

As an alternative to ffmpeg, you may want to try the recording features of VLC by just feeding it with the M3U8 URL that appears inside quotes. However, pay attention! You may accidentally enable video transcoding, potentially extending the time necessary to download and degrading the quality. For this reason I recommend you use ffmpeg.

Recording radio programmes

Starting from version 3.2, the script supports radio programmes such as those provided by BBC School Radio. The process is exactly the same as recording a video, including the command line provided for ffmpeg.

As an added bonus, the command line for audio files is tweaked so that you will directly get a file converted to MP3 for maximum compatibility!


The script I developed allows to automate all the necessary steps required to ensure the highest possible quality during the downloading. In particular, the script does the following:

  • find the configuration of the player for mobile phones
  • get the list of M3U8 URLs for different bitrates
  • look for the best available bitrate for desktop computers
  • tweak and simplify the M3U8 URL for the best quality
  • show the command line to the user

Performing the process manually is time consuming, error-prone and tedious if done multiple times. In this way it should be much easier for those who just want to record a couple of videos to watch them with a modern TV, on the train or keep them in a personal library.

Moreover, starting from version 3.0 the script shows you a download link to the original subtitles in TTML format (which is not very widespread). In addition, it performs an automatic conversion to the commonly used SRT format for your convenience.

Happy downloading!🙂

Did you like the article?

Writing software and tutorials like this takes time. If you found the provided information useful, and you liked the post, you may buy me a coffee by clicking on the button.🙂 If you do so, please leave a message on the donation page telling me it’s for this script.


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:

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/*/

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:


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:


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

[Desktop Entry]
Name=jPdf Tweak

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

La vergognosa denuncia contro Barbara D’Urso

Personalmente non sono mai stato un fan di Barbara D’Urso o dei programmi che conduce. Non credo di aver mai guardato uno spezzone più lungo di 5-10 minuti. Spesso li trovavo programmi di cattivo gusto, frivoli o, più di frequente, semplicemente noiosi.

Fosse per me potrebbero anche non trasmetterli. Tuttavia, sono rimasto notevolmente colpito quando ho appreso la notizia di un’iniziativa pubblicata sul profilo di Enzo Iacopino, il presidente dell’Ordine dei Giornalisti.

Ebbene sì, in Italia esiste un Ordine dei Giornalisti.

Dicevo, sul profilo Facebook è apparso uno stato senza mezzi termini. Il messaggio inizia urlando (il maiuscolo, lo sappiamo bene, significa urlare) e tuona contro le soubrette:

BASTA SOUBRETTE, ORA LE DENUNCIAMO. Senza distinzioni di genere (il sinonimo al maschile non lo conosco) o di reti sulle quali si esibiscono. L’informazione è materia delicata. Basta con l’occhio umido e la recitata partecipazione alle tragedie. Basta con il dolore come ingrediente dello spettacolo per fare audience.

Insomma, esordisce con una interessante (e anche condivisibile) critica ai contenuti di alcune trasmissioni. Fin qui tutto bene.

La lamentela poi prosegue con altre considerazioni. Il problema arriva però alla fine.


Stampanti Brother e l’errore “Impossibile rilevare”: un semplice trucco per allungare la vita delle cartucce

Possiedo con soddisfazione una stampante Brother DCP-J140W a getto d’inchiostro. In passato ne avevo parlato spiegando anche come installarla con Linux.

La cosa più interessante di questa stampante è il costo delle cartucce: le compatibili dalla Germania si pagano circa 80 centesimi di euro a cartuccia, tra l’altro in formato ad alta capacità. Un “difetto” di questo brand, però, è che appena la stampante rileva una cartuccia esaurita, tutto si blocca.

Compare infatti il messaggio “Impossibile rilevare”, di solito seguito da una sigla o da una rappresentazione grafica, se la stampante ha un display a colori. La sigla può essere BK, C, M, o Y a seconda del colore: nero, ciano, magenta o giallo.

Perché la stampante si blocca quando esaurisce un colore?

Cercando informazioni online, ho trovato un articolo molto interessante dal titolo Printing with the Black Ink Cartridge Only, nel quale si sfatano alcuni miti in merito a questo argomento. Molti ritengono infatti che i produttori forzino questo comportamento meramente per far acquistare altre cartucce, ma in realtà non è così.

Esistono alcune motivazioni tecniche alquanto valide per impedire la stampa con cartucce vuote. Non mi dilungherò molto, ma voglio elencare i motivi principali di seguito. Per tutti i dettagli, leggete l’articolo linkato.

  1. Innanzitutto, l’inchiostro può seccarsi nel punto di uscita della testina, se rimane lì per un tempo prolungato. Ciò causa stampe di bassa qualità e potrebbe risultare in blocchi irreparabili. Questo viene evitato con un periodico ciclo di pulizia delle testine… che richiede l’uso di un po’ di inchiostro.
  2. In secondo luogo, se una cartuccia è assente, la stampante cercherà di “succhiare” inchiostro, ma otterrà solo aria. Alcune stampanti riscaldano l’inchiostro fino al punto di ebollizione o lo pompano attraverso dei piccoli fori: se l’inchiostro è assente, questo può causare danni alle testine.
  3. Il terzo motivo è che l’assenza del nero può degradare notevolmente la nitidezza degli altri colori, che richiedono un certo quantitativo di inchiostro nero per risultare più brillanti. L’articolo mostra anche un’immagine di esempio.

Quando le cartucce in realtà non sono vuote

Posto che stampare con cartucce completamente esaurite può essere dannoso, rimane tuttavia un altro problema. Infatti le stampanti Brother a volte segnalano l’assenza di inchiostro con cartucce tutt’altro che vuote!

A me è successo recentemente, desiderando stampare qualche articolo per lavorare alla tesi. La stampante lamentava l’assenza di inchiostro nero, ciano e magenta: insomma ben 3 su 4. Pur essendo consapevole di aver pagato le cartucce pochissimo, sono rimasto piuttosto deluso quando le ho esaminate. Guardate la foto.

Livello di inchiostro effettivo di ciano e magenta
Livello di inchiostro effettivo di ciano e magenta

Non ho fotografato il nero, ma vi garantisco che la situazione era analoga. Le cartucce compatibili hanno il vantaggio di essere trasparenti, mostrando che in effetti c’è ancora circa il 20% di inchiostro disponibile. Altro che vuote.

L’articolo di cui ho parlato prima—relativo ai motivi per cui le stampanti si bloccano—contiene suggerimenti per ovviare alla situazione con alcune marche. Tuttavia, in merito alla Brother è piuttosto pessimista, arrivando a negare l’esistenza di soluzioni:

Cartridges that fall under this description will simply not let you continue if they believe a cartridge is missing or is out of ink. there is no work around or solution currently available other than replacing the cartridge.

Una volta consapevole dei motivi tecnici “di sicurezza”, sapevo comunque di non avere delle cartucce vuote, e volevo stampare. Prima di darmi per vinto, ho voluto cercare su Internet ancora un po’. È andata a finire che la soluzione me l’ha suggerita direttamente il sito di Brother USA.

Cosa dice il sito di Brother

I vari portali nazionali di Brother contengono un vasto catalogo di pagine molto simili, con i manuali d’istruzioni dei prodotti e le pagine di FAQ (domande frequenti). Quelle relative all’errore “Impossibile rilevare” o “Cannot detect” sono più o meno tutte uguali, limitandosi a dire di provare a togliere la cartuccia e reinserirla, altrimenti buttarla.

Questo non è molto utile. Fortunatamente, la pagina relativa al modello MFC-J6920DW è decisamente più dettagliata e spiega come viene rilevato il livello d’inchiostro. Riassumo qui le informazioni principali, solo per il pezzo che ci interessa. Ho rifatto le figure perché quelle originali sono di bassa qualità.

L’articolo inizia spiegando che l’errore può comparire in caso di cartuccia esaurita, oppure nel caso si tenti di usare una cartuccia del modello sbagliato. Raccomanda inoltre di leggere attentamente il messaggio.

Estrazione della cartuccia
Estrazione della cartuccia

Si passa poi alle istruzioni per estrarre le cartucce. Dopo aver aperto lo sportello è necessario premere la levetta relativa al colore desiderato, facendola scattare. La cartuccia viene spinta fuori e si può rimuovere.

Segue tutta una filippica che spiega come assicurarsi che le cartucce siano originali. A noi questo non interessa, passiamo oltre. Il punto 5 della spiegazione ci dice finalmente come fa la stampante a rilevare il livello di inchiostro. Viene mostrato tutto con due foto, che ho ricostruito qui sotto:

Ricostruzione dello schema fornito da Brother
Ricostruzione dello schema fornito da Brother

In sostanza l’inchiostro, scendendo di livello, fa muovere in alto un indicatore nero che esce dalla finestra del sensore. L’articolo si chiude spiegando che è necessario procurarsi una cartuccia che non sia esaurita. Infine illustra come riporre le cartucce all’interno della stampante.

Resettare il livello di inchiostro

Avendo imparato il funzionamento del sensore, si può procedere a “persuadere” la stampante ad accettare le cartucce. Il metodo è molto semplice: coprire la finestra del sensore!

Io ho proceduto a “scoperchiare” l’area interessata spostando con le dita la plastica nera che scorre lateralmente sulla cartuccia. Ho quindi operato con la prima cosa che mi è capitata sotto mano, in particolare un pennarello UniPosca argentato.

Finestra del sensore coperta
Finestra del sensore coperta

Ho nominato il pennarello solo come esempio, potete usare quello che vi va, che sia un pezzo di nastro isolante, una mano di tempera, una placcatura in oro…😛 Gli indelebili ad acqua però non sembrano andare bene.

Scherzi a parte, l’importante è che sia coperto da tutti e due i lati!

Una volta effettuata l’operazione, reinserite le cartucce nella stampante. Il display mostrerà un messaggio chiedendo se sono state sostituite delle cartucce. Rispondete “sì” a ognuna. Se tutto è andato per il verso giusto, verrà stampata una pagina di prova e potrete continuare a stampare quello che vi serve.

Livello del nero dopo la "riparazione"
Livello del nero dopo la “riparazione”

Come potete vedere dalla foto, le cartucce verranno viste come completamente piene. Rimarrà a voi l’onere di cambiarle quando saranno effettivamente in procinto di esaurirsi.

Lo potrete vedere dai colori sbiaditi della stampa e a quel punto sarà proprio il caso di mettere delle cartucce nuove. Ricordate quello che ho scritto sulle ragioni tecniche di questa necessità. Meglio non rischiare di rovinare la stampante.😉

Pensate di aver cancellato dei file? I malintenzionati li recuperano, ecco come

Un paio di settimane fa ho finito di pubblicare sul sito del GrappaLUG i video del Linux Day 2014. Abbiamo avuto ben 8 talk e il lavoro di montaggio ha richiesto un po’ di tempo.

Sono stato impegnato sia per l’introduzione all’evento, sia in un intervento tutto mio dal titolo Non prestate quella chiavetta. Il talk aveva lo scopo di far prendere consapevolezza alle persone sulla cancellazione dei file, che troppo spesso è solo un’illusione. Molti infatti non sono consapevoli dei limiti di un gesto come “svuotare il cestino” e dei rischi che si corrono in termini di privacy.

Se volete saperne di più su questo argomento, e sui mezzi che hanno eventuali malintenzionati per scoprire quello che pensavate fosse cancellato, potete rivedere il mio intervento. Ecco la descrizione e il video del talk:

A volte crediamo di aver cancellato documenti e file privati dai nostri dispositivi, ma in realtà non è così. Spesso un malintenzionato può recuperare i nostri dati personali e ledere la nostra privacy.

Purtroppo avevo un po’ di raffreddore, ma tutto sommato credo che il risultato sia stato positivo. Il pubblico in sala era presente e interessato, nonostante fosse l’ultimo talk della giornata.😉 Se volete, potete scaricare le slide sul sito del GrappaLUG, cliccando qui.

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 (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!😉

VPN in Italia, USA, UK e molto altro gratis con VPNGate

Alcuni siti web, specialmente quelli dove vengono trasmessi dei video (si pensi ad esempio a Rai Replay o alla BBC) impongono delle restrizioni per la visione. Succede quindi che per visualizzare o scaricare i video forniti da questi siti sia necessario essere residenti in un paese “autorizzato”.

O perlomeno far credere che sia così.😛

Senza dilungarmi troppo in questioni tecniche (c’è la pagina su Wikipedia per quello), esistono dei servizi che forniscono una VPN: questa tecnologia consente di collegarsi alla rete attraverso un server di uscita che può essere collocato ovunque (quindi anche in un altro stato). Ad esempio, una persona che si trova in Italia può visitare un sito americano ed essere “rilevato” come un navigatore che si collega dagli Stati Uniti.

Abiti all’estero e vuoi scaricare i filmati da Rai Replay? Ti serve una VPN (non per tutti i video, in questo caso… ma alcuni sì). Abiti in Italia e desideri utilizzare Hulu (sito web americano di streaming legale)? Ti serve una VPN.

Ovviamente questi sono solo alcuni esempi, i residenti di certi paesi “difficili” (Cina, Siria, eccetera) usano le VPN per aggirare la censura governativa o proteggersi dall’intercettazione indiscriminata. Comunque, diciamo che è una tecnologia che torna utile in moltissime occasioni.

Sappiamo bene che esistono numerosi servizi di VPN in abbonamento, ormai ne fanno anche a prezzi bassissimi. Ci sono poi anche VPN con offerte in cui si paga una volta solta e poi durano per sempre. Nonostante questo, oggi ho scoperto un servizio tremendamente interessante.

Il servizio VPNGate

L’infrastruttura in oggetto si chiama VPNGate. Si tratta di una rete di server sparsi per il mondo, che forniscono accesso VPN gratuito e sono gestiti interamente da volontari!

Come molti altri, supportano OpenVPN quindi possiamo avere accesso anche su Linux in modo molto semplice. Inoltre la cosa interessante è che loro stessi “suggeriscono” di creare del software con la propria API, direttamente in home page:

Do you want to parse the below HTML table? Instead you can use CSV List to make your own VPN Gate client app.

Lo script vpngate.py

Non ho saputo resistere e mi sono lanciato subito.🙂 Ho creato uno script in Python che si occupa di tutte le operazioni necessarie:

  • ottiene la lista dei server da VPNGate
  • filtra le voci tenendo solo quelle del paese scelto dall’utente
  • estrae il server con score più alto (solitamente coincide con il più veloce)
  • attiva il file di configurazione necessario
  • fa partire il comando openvpn automaticamente

L’idea di base è quella di scegliere il paese, e lasciare fare tutto il resto al computer.🙂

Download e utilizzo

Ho pubblicato lo script su Github, assieme a un file README in inglese con qualche dettaglio in più.

Per scaricare il file vpngate.py potete cliccare sul bottone nella pagina di Github, oppure direttamente da terminale:

wget https://gist.github.com/Lazza/bbc15561b65c16db8ca8/raw/vpngate.py
chmod +x vpngate.py

Nota: dovete avere installato il modulo Requests di Python, nonché il client di OpenVPN. Su Ubuntu si possono installare i pacchetti necessari con il seguente comando:

sudo apt-get install python-requests openvpn

L’utilizzo è molto semplice, vi basta lanciare lo script indicando il paese tramite il nome oppure il codice di due lettere:

./vpngate.py US

Se volete scrivere il nome per esteso, potete anche digitarlo in modo parziale. Le maiuscole non hanno importanza. Perciò Russian Federation, Russia e russia funzioneranno ugualmente.

Ovviamente dovete scrivere i nomi dei paesi in inglese. Nel dubbio, date un’occhiata al sito di VPNGate e verificate il nome riportato.

Il processo della VPN va terminato premendo Ctrl+C, come si farebbe lanciando a mano OpenVPN. Nel giro di pochi secondo lo script dovrebbe “segnalare” a OpenVPN di fermarsi e stampare un messaggio di conferma a video.

Per finire, eccovi una breve demo di vpngate.py in azione:


Che vogliate accedere a un sito con restrizioni geografiche, proteggervi durante l’uso di una rete wi-fi pubblica o altro, VPNGate fornisce una lista veramente ampia di paesi tra cui poter scegliere. Nel momento in cui sto scrivendo, la lista di server permette di scegliere tra i seguenti paesi:

Giappone, Corea del Sud, Russia, Regno Unito, Stati Uniti d’America, Belgio, Indonesia, Venezuela, Germania, Austria, Thailandia, Australia, Svezia, Repubblica Dominicana, Vietnam, Cina, Malesia, Taiwan, Canada, Ucraina, Estonia, Marocco, Oman, Nigeria, Egitto, Bermuda, Francia, Bulgaria, Svizzera, Iran.

In questo preciso momento non visualizzo server italiani, tuttavia ogni tanto—aggiornando la lista sul sito—compaiono paesi che prima non c’erano. Inoltre dai log del servizio si evince che c’è chi ha utilizzato server italiani.

Per questi motivi, ritengo di poter dire con ragionevole sicurezza che abbiano anche qualche punto di uscita in Italia, magari non attivo 24 ore su 24. In alternativa, potete usare una VPN commerciale che fornisca anche l’Italia tra i paesi disponibili.

Tenete conto che vpngate.py usa la lista di server fornita in formato CSV dall’API, la quale contiene server da parecchi paesi ma non tutti. Per alcuni potrebbe essere necessario scaricare il file di configurazione per OpenVPN dal sito e lanciarlo manualmente.😉

Libero Mail… “libera” l’accesso IMAP

Recentemente è avvenuta una svolta storica da parte di Libero, un servizio molto usato in Italia che fornisce anche una casella email gratuita. Infatti da qualche tempo è stato reso utilizzabile il servizio IMAP (e anche quello POP) da qualsiasi connettività anche per le caselle gratuite.

Prima di questa modifica, l’utilizzo di IMAP era una prerogativa esclusiva degli utenti Plus e degli abbonati Infostrada. La pagina di supporto riguardante la configurazione dei client riflette l’aggiornamento:

Le caselle email attivate gratuitamente con la registrazione a Libero sono consultabili tramite programmi di Posta (client) in modalità IMAP4/POP3 con qualsiasi connettività.

Accesso ad una casella gratuita Libero Mail tramite IMAP, usando Thunderbird come client
Accesso ad una casella gratuita Libero Mail tramite IMAP, usando Thunderbird come client

La notizia giunge in controtendenza rispetto al comportamento che l’azienda ha avuto fino a questo momento. Dal 2011, uno degli articoli più letti del mio blog riguardava l’accesso a Libero Mail tramite IMAP aggirando le limitazioni con una casella Gmail intermedia. Inoltre, è notizia di pochi mesi fa che Libero ha ristretto i filtri e consente l’inoltro della propria posta solo verso altre caselle Libero Mail. Anche in tal caso, ho scritto un articolo su come aggirare le limitazioni sull’inoltro.

Insomma, dati i cattivi precedenti, si può dire senz’altro che si tratta di una buona notizia. Questo in particolare anche per chi desidera migrare verso una casella email più moderna, spaziosa e funzionale come Gmail.

Tramite IMAP, infatti, è facilissimo usare un client come Thunderbird per trasferire tutti i propri messaggi da Libero a Gmail (o altre caselle dotate di accesso IMAP). Si tratta solo di trascinare col mouse le email selezionate verso la casella di destinazione desiderata.🙂

Risolvere i problemi di riproduzione dei file MKV

Recentemente abbiamo acquistato un televisore LED della LG. Per provare la funzionalità di riproduzione USB, ho messo sulla chiavetta alcuni video di trasmissioni televisive.

Ho usato sia dei programmi RAI, che si possono scaricare seguendo le mie istruzioni, sia alcuni episodi dei Cesaroni, scaricati da Video Mediaset con il procedimento di cui vi ho parlato in quest’altro articolo.

Nel primo caso, si trattava di file MP4, e ho verificato che funzionano perfettamente. Posso riprodurre i filmati, usare l’avanzamento veloce (anche fino a 16x), riavvolgere, saltare a un punto preciso, eccetera. Il problema invece è sorto con la fiction salvata da Video Mediaset.

Come ben sapete, quando salvate filmati Silverlight utilizzando ismdownloader, il programma produce in uscita un video in formato Matroska, con estensione MKV. Il televisore lo riproduce, tuttavia i problemi iniziano quando si tenta di usare l’avanzamento veloce.

Nel tentare di superare la velocità 2x, un triste messaggio appare in mezzo allo schermo:

Messaggio di errore del televisore tentando di usare l'avanzamento veloce su un filmato MKV
Messaggio di errore del televisore tentando di usare l’avanzamento veloce su un filmato MKV

Ancor peggio, quando si vuole riavvolgere il filmato, si riceve la stessa risposta:

Funzione al momento non disponibile

Questo è scomodissimo, perché se per qualche motivo non abbiamo capito una frase e la vogliamo sentire nuovamente, non possiamo. Se per sbaglio premiamo stop dopo aver visto mezz’ora di filmato, non siamo in grado di riprendere la riproduzione se non dopo 15 minuti di avanzamento a velocità 2x.

Un problema assai simile succede anche con alcuni software di riproduzione: mentre VLC e Totem riescono a farci vedere il video e ci permettono di saltare in qualsiasi punto (operazione chiamata seek), Mplayer non lo permette.

Ho cercato di trovare una soluzione al problema. Ovviamente, fare la ricodifica dei video è fuori discussione. Non solo per la perdita di qualità, ma anche per il tempo necessario. Alla fine ho trovato una risposta in questo forum, dove viene suggerito l’utilizzo del programma MKVToolNix, in particolare dello strumento mkvmerge.

Questo software consente la ricostruzione del contenitore MKV (operazione definita muxing) senza ricodificare i flussi audio e video. Questo permette di compiere l’operazione in pochi secondi per un intero video (circa 20-30, dipende dalla velocità del computer).

Con un apposito parametro, si può risolvere il problema dell’avanzamento veloce e del seek!

Innanzitutto, provvedete a installare il software necessario. Dovreste trovare il pacchetto di mkvtoolnix nel gestore pacchetti della vostra distribuzione (ad esempio, su Ubuntu potete cercarlo nell’Ubuntu Software Center).

A questo punto, vi basta invocare il programma con il parametro risolutivo, in questo modo:

mkvmerge -o file_corretto.mkv --clusters-in-meta-seek file_originale.mkv

Ovviamente adattate il comando con il nome del filmato di partenza e il nome finale che desiderate.😉 Nel giro di poco, il software produrrà il video corretto a partire da quello originale, creando una piccola sezione alla fine del file che consente la corretta riproduzione.

Lo stesso video, riprodotto a 8x dopo il procedimento di "riparazione"
Lo stesso video, riprodotto a 8x dopo il procedimento di “riparazione”

Se volete uno script che converta tutti i filmati di una cartella, potete usare quello che ho creato per me:


echo "MKV fix for fast-forward and seek"
echo ""

for i in "$@"; do
    echo "Fixing $i"
    mkvmerge -o "${i}_fix.mkv" --clusters-in-meta-seek "$i"
    mv -f "${i}_fix.mkv" "$i"

echo ""
echo "Done!"

Attenzione: questo script sovrascrive i video originali dopo la “riparazione”!

Salvatelo in un file mkv_fix.sh, dategli i permessi di esecuzione, e poi richiamatelo sui file che volete, per esempio così:

mkv_fix.sh *.mkv

Infine, c’è anche la possibilità di usare il parametro di cui vi ho parlato tramite l’interfaccia grafica del programma. Ovviamente tale metodo è più lento e scomodo, perciò non lo spiego, ma potete leggere come si fa in questo topic.😛