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.

Introduction

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!

Conclusion

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.

Coffee

Script per Rai Replay 8.0: breve lista dei cambiamenti

Oggi ho rilasciato la versione 8.0 del mio script che permette di guardare i video della Rai (e scaricarli) anche con Linux. Ci sono stati diversi cambiamenti, molto “sotto al cofano”, ma in breve si possono riassumere nelle seguenti novità:

  • La gestione di Rai Replay è stata completamente ripensata. Ora c’è una componente lato server (su video.lazza.dk) che lavora costantemente per scovare gli URL dei video e mantenerne una cache. Questo si traduce in una maggiore velocità e si evitano i blocchi sui video per tablet.
  • Se siete all’estero potete vedere lo stesso l’indirizzo del video, perché il mio server usa IP italiani quando necessario. Tuttavia potreste non essere in grado di salvarli (compare un messaggio di avvertimento).
  • Ora il player usa HTML5 ogni qualvolta ciò sia possibile, quindi in genere basta un browser aggiornato senza plug-in esterni.
  • I video sui sottodomini tipo raistoria.rai.it non hanno più la linea di comando di rtmpdump, bensì un link diretto al video in MP4, grazie alla segnalazione di un mio lettore.

Come sempre, reinstallate lo script (linkato nella prima frase di questo post) oppure attendete l’aggiornamento automatico. Buona visione.

Scaricare i contenuti audio e video presenti nelle pagine web — Guida completa

Una piccola premessa: ho impiegato mesi per lavorare a questo articolo, rivedendo in continuazione le idee di cui parlare e valutando come dare i consigli nel modo migliore possibile. Questo post racchiude quindi numerose informazioni e potrebbe richiedere più di una lettura per assimilarle tutte. Anche per questo motivo, se riscontrate errori o imprecisioni che mi sono sfuggiti vi prego di segnalarmeli.

Ormai 6 anni fa avevo scritto un articolo che continua ad essere tra i più visitati del blog, dedicato a salvare i video incorporati nei siti web in cui ci imbattiamo navigando in rete. Non era una guida dedicata ad atti deplorevoli di pirateria cinematografica (non insegna a scaricare film da reti P2P) bensì era rivolta proprio ai video che sono “dentro” le pagine. Un esempio banale di sito con video può essere Youtube, ma in realtà ce ne sono moltissimi che per un motivo o per l’altro offrono dei filmati (ad esempio siti di news, recensioni di hardware, eccetera) ed essi sono inseriti nei formati e nei modi più disparati.

Al tempo avevo dedicato quasi tutta la guida all’uso di Unplug, un’estensione per Firefox che era tra le migliori per questo tipo di compito. In seguito è stata sorpassata da altri strumenti, per poi migliorare di nuovo nell’ultimo periodo. Lo scopo di questo mio nuovo articolo vuole essere più ad ampio raggio: vorrei cercare di spiegare quale approccio usare quando ci si trova di fronte a un sito con video: a partire da come riconoscere la tecnologia utilizzata, fino al salvataggio vero e proprio del contenuto multimediale. Accennerò anche qualcosa riguardo alla conversione.

Devo precisare subito che per quanto cercherò di essere chiaro e spiegare le cose in modo semplice, inevitabilmente alcuni dei concetti qui spiegati potrebbero non essere banali. In alcune circostanze sarà necessario “esplorare” del codice HTML, XML o Javascript (non è comunque necessario conoscere questi linguaggi). Inoltre dovrebbe essere chiara la differenza tra un file e uno stream. Oltre a questo va aggiunto che nell’articolo mi concentrerò sui video, ma i concetti sono tali e quali anche per delle eventuali tracce audio ascoltabili online.

Continua a leggere…

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

Script per Rai Replay: rilasciata la versione 6.0

Ieri ho sviluppato un importante aggiornamento allo script per guardare e scaricare i video da Rai.tv e Rai Replay, grazie anche alla segnalazione e al supporto di Domenico, un lettore che mi domandava come scaricare la prima parte del film su Olivetti.

Infatti la Rai ha pubblicato entrambe le parti, andate in onda il 28 e 29 ottobre, sul servizio Rai Replay, tuttavia la prima parte è stata resa disponibile solo tramite Silverlight (noi pinguini non possiamo nemmeno guardarla) e nella versione per cellulari e tablet. Nessun file MP4 per le Smart TV.

Come avrete già letto qui sul blog, il mio script usava proprio la versione Smart TV per servirvi un file MP4 ad alta qualità. Questo comportava anche il fatto che i video non disponibili per la televisione intelligente risultassero non cliccabili, oltre che non scaricabili.

Da oggi, con la versione 6.0 potete vedere e scaricare anche la versione per tablet. 😀 Questo è necessario solo quando non è disponibile un file MP4, infatti lo script seleziona automaticamente il video migliore e vi fornisce il link per scaricarlo, oppure la linea di comando necessaria.

Infatti se siete costretti a servirvi della versione per tablet, potete usare Gnome Mplayer oppure VLC media player per visualizzare lo stream in formato M3U8 e il software FFmpeg per effettuare il download. Il mio script si occupa di estrarre automaticamente la qualità più alta per voi e genera da solo la linea di comando adeguata.

Output della nuova versione dello script, che consente di scaricare anche i video disponibili solo per dispositivi mobili
Output della nuova versione dello script, che consente di scaricare anche i video disponibili solo per dispositivi mobili

Se avete già lo script l’aggiornamento dovrebbe essere automatico. Se volete aggiornare manualmente oppure se volete installarlo da zero, trovate tutti i dettagli nel mio post apposito, assieme alle istruzioni dettagliate per usare la nuova funzionalità. 😉

Importanti aggiornamenti per la visione e il download dei video da Rai.tv

Mi sono già lamentato numerose volte di quanto il sito Rai.tv sia un disastro di incoerenze multiple, in cui più o meno ogni video viene inserito con metodi leggermente diversi e trovare i link per scaricarli è un procedimento abbastanza arzigogolato. Due esempi di “inutile complicazione” che il mio script non riusciva a gestire sono i seguenti, dovuti al fatto che il sito Rai “dichiara” il tipo di video nella pagina, in modo totalmente a caso, a volte.

  • I video di «Chi l’ha visto», tipo questo — nel codice manca il riferimento al video in formato MP4, ma viene indicato doppiamente lo stesso URL al video, inclusa la variabile videourl_wmv, ed estensioneVideo e MediaItem.type sono impostate ad indicare il formato WMV… peccato che il video sia un file MP4
  • Questa puntata de «I migliori Anni» — è letteramente la fiera dell’incoerenza: MediaItem.type fa riferimento al formato WMV, estensioneVideo indica CSM ma il file è di tipo MP4

Ora, a parte il fatto che anche un ragazzino di 13 anni saprebbe sviluppare il sito in modo più coerente e sensato, capite bene che questa tragedia di informazioni contraddittorie creava serie difficoltà al mio script che cercava di capire che tipo di video c’era sotto e come gestirlo.

Oggi ho rianalizzato la questione e ho inserito ulteriori controlli per aggirare questi problemi. In particolare, se il sito fornisce un esplicito URL al file MP4 posso andare tranquillo, altrimenti in caso di “sospetto WMV” lo script prima controlla che questo sia coerente con il Content-type, dopodiché se è affermativo si occupa di verificare se è un vero file o uno stream MMS. Il controllo di coerenza dovrebbe impedire di cadere nella trappola delle false informazioni, e da quanto ho potuto testare è del tutto robusto.

Già che c’ero, ho aggiornato lo script per gestire altri casi di video (ormai alla Rai non sanno più cosa inventarsi), come ad esempio questa puntata del «Maurizio Costanzo Talk». Ho trovato questo video guardando gli esempi dal piccolo web-service di Paolo Pancaldi, che fa più o meno le stesse cose del mio script (tranne Rai Replay e la riproduzione con player nativo) ma in “stile lato server”, perciò un grazie a Paolo per avermelo fatto scoprire.

Se avete già lo script e volete aggiornare manualmente oppure se volete installarlo da zero, trovate tutti i dettagli nel mio post apposito.

Scaricare i video del portale RSI.ch

Dopo il successone degli script per guardare e scaricare i video sui siti di Rai.tv, Video Mediaset e La7.tv, spesso ricevo richieste su come salvare video da vari altri siti web. Un lettore mi ha domandato se fosse possibile avere uno script per i video on demand di RSI, la rete della Svizzera Italiana.

Ho anche altre richieste in sospeso (per siti estremamente ostici peraltro) ma in questo caso è stato abbastanza semplice. Ci ho messo poco dato che il sito ha una struttura semplice e regolare.

Il sito usa Flash e contiene principalmente flussi M3U8, ma è possibile estrarre anche i link diretti ai video in formato MP4. Nel dubbio, per accontentare tutti lo script include tutte le qualità fornite dal sito RSI. Come potete vedere nella figura, è tutto indicato subito sotto al video.

rsi_link_mp4
Esempio dello script in azione

Come sempre, è uno user script per Greasemonkey, che dovrete installare se usate Firefox. Altrimenti installate l’estensione Tampermonkey su Chrome/Chromium o Violent monkey su Opera. Dovrebbe supportare tutti i video presenti nelle varie sezioni del sito, incluso Play RSI.

Per scaricare i file è estremamente semplice: basta fare click destro sopra al link desiderato e fare “Salva con nome” o dicitura simile (cambia a seconda del browser). Per i video lunghi conviene comunque usare un download manager (come Axel o uGet).

Per la pagina di download dello script cliccate qui sotto.

Download — RSI direct link

Ancora una volta, buona visione!

Vi è piaciuto l’articolo?

Scrivere software e guide come questa richiede tempo. Se avete trovato queste informazioni utili e vi è piaciuto il post, potete offrirmi un caffè cliccando sul bottone. 🙂 Se lo fate, per favore lasciate una nota indicando che è per questo articolo.

Caffè

Scaricare i video del portale La7.it

Nel giro di poco tempo i miei script per guardare e scaricare i video sui siti di Rai.tv e Video Mediaset hanno riscosso un grande successo, permettendo anche agli utenti Linux di poter fruire di tali contenuti video. Tuttavia ho ricevuto numerose richieste, sempre più insistenti, su come poter scaricare i video dal sito di La7, vale a dire La7.tv, che poi è diventato La7.it.

Inizialmente non ci ho dato molta priorità, per una serie di motivi: il primo è che quel sito usa Flash Player, quindi i video si possono guardare anche con Linux. Il secondo è che non guardo mai La7 e quindi non avevo molto interesse, e il terzo è la mancanza di tempo. Quando mi sono spostato a Copenhagen, paradossalmente, mi sono messo a riguardare il “problema” per distrarmi un po’ e vedere se ottenevo qualcosa.

È venuto fuori che la faccenda è molto più semplice rispetto ai siti di Rai e Mediaset, perché il sito usa Flash ed è disponibile un semplice video MP4. Non ci sono quindi versioni multiple dei file (ad eccezione di varie risoluzioni), bensì un semplice collegamento ad un video. Come potete vedere nella figura, ho trovato un modo molto semplice ed elegante di visualizzare a video il link diretto del file, così lo potete salvare.

Link al file direttamente sotto al video
Link al file direttamente sotto al video

Come già visto per Rai e Mediaset, anche in questo caso si tratta di uno user script per Greasemonkey, e quindi funziona per certo su Firefox ma anche su Chrome/Chromium se installate l’estensione Tampermonkey o su Opera utilizzando Violent monkey. Dovrebbe funzionare anche su Safari usando NinjaKit.

Il file è sempre un MP4, è la risoluzione non è troppo bassa, dovrebbe essere 720×576. Cliccando col destro sul link potete salvare il video o copiarlo per poi usare un download manager, come preferite. Il pulsante qui sotto vi porta alla pagina di download dello script.

Download — La7.tv direct link

E con questo dovrei aver fatto contenti tutti. 😉 Buona visione!

Vi è piaciuto l’articolo?

Scrivere software e guide come questa richiede tempo. Se avete trovato queste informazioni utili e vi è piaciuto il post, potete offrirmi un caffè cliccando sul bottone. 🙂 Se lo fate, per favore lasciate una nota indicando che è per questo articolo.

Caffè

Guardare e scaricare video da Hulu o da BBC iPlayer anche dall’Italia

Aggiornamento 20/02/2015: le seguenti istruzioni scritte nel 2012 funzionavano anche per BBC iPlayer, cioè il sito principale di video on-demand della più importante emittente britannica. Col passare del tempo quanto scritto qui non è più valido, ma potete leggere il mio nuovo articolo su come scaricare i video da BBC iPlayer. Per quanto riguarda Hulu, al momento sembra che non ci siano aggiornamenti.

Hulu è un sito web molto famoso negli USA con il quale si possono vedere numerosi video di film e serie televisive di network come NBC, Fox e altri. Se volete alcuni esempi: The Simpsons, Law & order, Grey’s Anatomy, Fringe, Bones, ovviamente tutti in inglese e quasi tutti gratuitamente.

Il sito effettua delle restrizioni sugli accessi, ma di recente si è diffuso un metodo pratico per evitare questo tipo di problema. Inoltre oggi ho personalmente sperimentato come usare la stessa soluzione, originariamente pensata per un browser, anche per il download dei video.

Innanzitutto vediamo come vedere i video di Hulu senza essere negli Stati Uniti. Avrete bisogno di Firefox oppure Chrome e vi basterà installare l’estensione Media Hint. Si tratta di un piccolo componente aggiuntivo che usa un proxy per “illudere” Hulu (e alcuni altri siti, come Pandora) che ci troviamo negli USA, anche se non è vero.

Una piccola nota: dato che questa estensione crea alcuni problemi con Firefox Sync, vi consiglio di attivarla e disattivarla a seconda delle necessità, considerando anche il fatto che non occorre neppure riavviare il browser.ho

A questo punto vi spiego come scaricare i video da Hulu. Dopo aver fatto diversi tentativi (ci ho perso ore a verificare che Tor dava più problemi che altro, ad esempio) ho pensato che la cosa migliore è quella di riutilizzare il proxy di Media Hint e farne uso con un programma — rigorosamente open source — per scaricare da Hulu.

Il software in questione è get-flash-videos. Anche se funziona pure su Windows e Mac OS X, le istruzioni che vi do sono per Linux. Adattatele voi per le vostre esigenze e il vostro sistema operativo. Intanto ecco come installare i pacchetti necessari su Ubuntu e derivate:

sudo apt-get install get-flash-videos rtmpdump libdigest-hmac-perl libpacparser1

Il primo pacchetto è quello del programma vero e proprio, l’ultimo pacchetto serve invece per analizzare il proxy di MediaHint, gli altri servono per fare da supporto al plugin per Hulu, che si installa così:

get_flash_videos --add-plugin http://gitorious.org/get-flash-videos-plugins/gfv-plugins/blobs/raw/release/Hulu.pm

Questo termina il processo di installazione. Chi si trova negli USA non deve fare altro e può iniziare a usare il programma, per tutti gli altri bisogna prima impostare il proxy, e dopo richiamare il software, per esempio così:

wget -q -N -O /tmp/default.pac "http://mediahint.com/default.pac"
PRO="`pactester -p /tmp/default.pac -u http://hulu.com | cut -d ' ' -f 2`"
export ALL_PROXY="http://${PRO}"
export all_proxy="$ALL_PROXY"
export HTTP_PROXY="$ALL_PROXY"
export http_proxy="$ALL_PROXY"
get_flash_videos http://www.hulu.com/watch/486999

I primi comandi prendono l’indirizzo del proxy di Media Hint, poi i successivi lo impostano e l’ultimo avvia il download del video.

Se desiderate fare “un passo in più” vi potete salvare uno script con i comandi, se volete potete copiare quello che mi sono fatto io.

Maggiori informazioni sull’uso del software le potete trovare nella documentazione ufficiale. Buon download!

Aggiornamento 13/06/2013: ho cambiato le istruzioni, ora con un vero parser di file PAC non dovrebbero più esserci problemi legati al fatto che MediaHint cambia spesso i proxy!

Ancora un aggiornamento per lo script che consente di guardare e scaricare i video da Video Mediaset

Di solito per le modifiche minori ai miei script non scrivo dei post appositi, ma in questo caso è opportuno che vi avvisi. L’ultima modifica che ho apportato al mio script per guardare e scaricare le puntate di Video Mediaset riguarda tutti gli utenti di Chrome e Chromium.

In prima battuta non mi ero infatti accorto che questo browser ha un bug (che per loro è una feature, ma lascerei perdere i commenti) che impedisce a Tampermonkey (e di conseguenza al mio script) di cambiare lo user-agent.

Ciò aveva la conseguenza che non si poteva individuare il link alla versione MP4 del video, che oltre ad essere di buona qualità e facile da scaricare, è anche quella che utilizza lo script per inserire il player. Ora il problema viene aggirato e tutto funziona. 🙂

Se avete già installato lo script, come al solito, dovrebbe venire aggiornato in automatico. Buona visione!