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

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.

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.

Software necessari

Prima di addentrarmi nelle tecniche dettagliate per operare in più circostanze possibili, credo sia meglio fornirvi alcune indicazioni sugli strumenti che vi serviranno. Non sempre serve installare “tutte” queste cose, tuttavia se pensate di usare le istruzioni di questo articolo più di una volta ogni tanto, installate tutto e sarete sempre tranquilli. Meglio arrivare preparati senza dover ricontrollare ogni volta se avete lo strumento adatto.

Ci sono essenzialmente quattro tipi di strumenti che possono tornare utili:

  • un estrattore di link
  • un riproduttore multimediale
  • alcuni registratori di flussi audio/video
  • un convertitore (opzionale, dipende da dove vogliamo riprodurre i video)

Per ciascun punto vi spiego ora di che cosa si tratta e vi consiglio cosa installare. Nella maggior parte dei casi cerco di indicarvi un software libero e open source, nonché multipiattaforma in modo che il procedimento sia uguale per tutti. Quando non è possibile tento di fornire delle possibili alternative e indico i sistemi operativi con le icone Fugue. In nessun caso comunque vi “costringo” a usare software commerciale, perché non c’è bisogno.

Note importanti

I software indicati sono dei consigli, dati dal fatto che io personalmente li uso o li considero validi. Siete liberi di usare altre applicazioni a vostra scelta. Inoltre, vi chiedo gentilmente di integrare il materiale qui presente con una vostra ricerca personale online se volete salvare video da certi siti e non ci riuscite.

Non usate i commenti al post (né il mio indirizzo email) per incollare un URL di un video e chiedermi “scaricamelo e inviamelo per email”, al massimo posso dare qualche consiglio ma non posso lavorare a tempo pieno come “registratore di video altrui”. 😉 Nella maggior parte dei casi, è già scritto tutto qui. 🙂

Estrattore di link

Il processo di download di video da un sito si può riassumere in pochi passaggi: si apre la pagina, si valuta che tipo di media è, si trova il link, si scarica. Tutto ciò può essere ovviamente fatto a mano, ma fortunatamente per molti casi — diciamo pure la quasi totalità — si può usare uno strumento che trovi il link per noi, così poi ci possiamo concentrare sul resto.

Il “come” lo vediamo poi nel dettaglio, per ora vi basti sapere che l’accessorio più comodo da avere nel proprio arsenale è un’estensione per il browser. Nello specifico di questo post, io uso Mozilla Firefox e nel seguito farò riferimento sempre a questo browser. Come estensione utilizzo Video DownloadHelper, che a mio avviso è la più comoda. Dato che potete installarli su tutti i sistemi operativi, vi consiglio di farlo. Non sono riuscito a trovare qualcosa di altrettanto versatile per altri browser.

Mozilla Firefox

Video DownloadHelper

Riproduttore multimediale

Ovviamente si suppone che dopo aver scaricato i video vogliate anche guardarli. Sebbene ci siano alcune scelte più popolari (ad esempio il contenitore MP4), ogni sito web può avere video nei formati e coi codec più disparati. Per evitare qualsiasi problema è buona cosa dotarsi di un programma che potremmo definire “universale”. VLC è imbattile in questo, consentendovi di leggere tutti i formati video e audio. Probabilmente lo avrete anche già installato.

VLC media player

Registratori di flussi

Quando si individua l’URL di un video, ci possono essere due casi: si tratta del link a un semplice file, il che significa che basta scaricarlo, oppure è un riferimento ad uno stream. Lo stream è un flusso di dati audio/video che deve essere registrato, in modo (concettualmente) simile a quanto si fa con la televisione, per capirci.

Per queste occasioni è utile poter salvare gli stream di tipo MMS e RTSP (con varianti RTSPE e altre). Per il primo caso, servirà un software a linea di comando chiamato Mplayer. Su Linux si installa dal gestore di pacchetti, mentre in Windows bisogna scaricare l’archivio e scompattarlo in una cartella a piacere (non di sistema, Desktop o Documenti vanno bene). Per Mac ci sono varie versioni, quella che vi consiglio è indicata sotto.

Mplayer

MplayerX

Anche per quanto riguarda RTMP useremo un software dedicato a linea di comando. Pure in questo caso vale quanto detto sopra per Linux, per Windows vi consiglio di usare esclusivamente la versione 2.3 linkata sotto (sempre da scompattare in una cartella non di sistema). Per installarlo su Mac dovrete utilizzare MacPorts, una raccolta di programmi per Linux mantenuti in versione per Mac. Sotto vi indico una guida per come fare (io non uso Mac quindi non posso aiutarvi in questo).

rtmpdump

rtmpdump 2.3

Guida per MacPorts

Oltre a questi tipi di flussi, esiste anche una nuova tecnologia particolarmente odiosa, non tanto per il fatto che sia stata sviluppata da Microsoft, quanto per il fatto che è abbastanza difficile da scaricare. Sto parlando del cosiddetto Smooth Streaming. Si tratta di un tipo di stream comunemente usato nei siti che utilizzano Silverlight, una tecnologia sostanzialmente morta prima di nascere ma che purtroppo viene usata su alcuni siti importanti, come quelli di Rai e Mediaset.

Su questo approfondirò in seguito. Per ora vi basti sapere che esiste un solo programma freeware per Windows che consente di scaricare questi flussi, ISMdownloader. Fortunatamente, essendo un software a riga di comando, è possibile farlo funzionare anche su Linux e Mac e a questo proposito ho scritto degli articoli dettagliati e semplici da seguire. Qui trovate dei riferimenti per installarlo e usarlo:

Scaricare video Smooth Streaming con Linux

Usare ISMDownloader su Windows

Scaricare video Smooth Streaming con Mac OS X

Convertitore

Come vi dicevo, VLC vi permette di riprodurre qualsiasi tipo di audio o video sul vostro computer. Tuttavia potreste voler guardare i vostri video su qualche dispositivo mobile, come ad esempio telefoni o tablet con Android oppure iOS, o ancora i classici lettori multimediali da salotto. Solitamente tutti questi dispositivi accettano di buon grado i video in formato MP4, ed è per questo che vi consiglio HandBrake. Certo, se desiderate un sacco di opzioni avanzate ci sono WinFF e ffmpegX, ma per conversioni semplici e senza decine di opzioni HandBrake va benissimo.

HandBrake

Con questo si conclude la carrellata degli strumenti consigliati. Di seguito vi spiego come procedere in pratica nell’individuare il video e poi salvarlo.

Individuare il tipo di media

La prima cosa fondamentale è capire con cosa si ha a che fare. Ci possono essere diverse possibilità, ad esempio possiamo trovare:

  • video in formato Flash (diffusissimi)
  • embed di semplici file (meno diffusi ma facili da gestire)
  • stream MMS
  • stream RTMP (questi ultimi anche “inseriti” dentro ai file in formato Flash)
  • video in formato Silverlight (che magari alle volte richiamano stream MMS, ma solitamente hanno dei video Smooth Streaming)

Non escludo che ci possano essere altre cose, come l’odioso RTSP, ma per esperienza posso dire che nella maggior parte dei casi basta saper operare con quanto ho indicato sopra.

Video in Flash

I video in formato Flash sono facili da distinguere: sono estremamente diffusi e ci si accorge subito che usano tale tecnologia usando il tasto destro del mouse. Per esempio, provate a cliccare col destro su questo mio video su Youtube: comparirà un menu, la cui ultima voce dice qualcosa di simile a Informazioni su Adobe Flash Player quindi il video viene fornito usando Flash.

A questo punto ci possiamo trovare di fronte a tre situazioni assai comuni: il player è di un sito famoso (ad esempio Youtube, Dailymotion, Vimeo, …), oppure contiene un link ad un semplice file video o infine un link ad uno stream in formato RTMP.

Sito famoso o semplice file

Indirizzo diretto ad un file video trovato da Video DownloadHelper

Aprite la pagina desiderata e premete play. Se quando il video si avvia l’icona di Video DownloadHelper comincia a lampeggiare, e cliccando la freccina a fianco vedete il collegamento al video che vi interessa (come in figura), allora ricadete in questo caso. Ed è semplicissimo!

Vi basterà cliccare il link affinché Firefox vi chieda dove volete salvare il file, e nel caso di siti come Youtube solitamente potrete anche scegliere tra diverse qualità. Per provare, potete fare una prova di download di un video da Youtube oppure il video che ho usato in questo esempio.

Per i siti “famosi” ci sono diversi altri software, come ad esempio movgrab, youtube-dl, JDownloader (il cui plugin per Mediaset è parzialmente basato su codice scritto da me) e get-flash-videos. Ho anche scritto un articolo su come registrare i video da BBC iPlayer.

Stream in formato RTMP

Se Video DownloadHelper non dà segni di vita o gli unici file che elenca non sono attinenti, è probabile che il video con cui avete a che fare ricada nella categoria degli stream RTMP. In questo paragrafo userò come esempio questa pagina web e vi mostrerò come individuare l’URL dello stream.

Innanzitutto, è opportuno leggere un pezzo del codice sorgente della pagina. Questa tecnica è un pochino più avanzata e si può usare anche in casi diversi dai flussi RTMP, per capire come comportarsi, quindi è molto utile da conoscere.

Il codice sorgente è una serie di informazioni e metadati che descrivono il contenuto della pagina. Solitamente è scritto usando il linguaggio HTML e altri linguaggi come ad esempio Javascript. Per visualizzare il codice della pagina che vi interessa, apritela e poi premete Ctrl+U, si aprirà una finestra con il codice. Potete fare delle ricerche usando Ctrl+F e scrivendo la parola che vi interessa. Parole che vale la pena cercare sono:

  • embed
  • video
  • player
  • object
  • flashvars
  • rtmp
  • mp4

Eccetera, usate un po’ la fantasia e guardatevi intorno. 😛 Nella pagina di esempio, una ricerca della parola embed permette rapidamente di trovare questo pezzo di codice Javascript che sembra fare al caso nostro:

var flashvars = {
single: "true",
embedPlayer: "",
source: "/common/bitneg/events/VisualizationVirtualWorkshop2013/General-Visualization-Quick-Start.smil",
introImage: "/common/video-images/broadcast/generalvisualization_quickstart_intro.png",
exitImage: "",
configXML: "",
Reset_at_End: "False",
Width: "1024",
Height: "768",
Length: "19:40",
Direct_Link: "http://www.wolfram.com/broadcast/video.php?channel=317&video=1452",
Embed_code: "",
Content_Type: "Training",
caption: ""
};

Non esiste una “regola universale” in questi casi, ma a colpo d’occhio sembra proprio che quell’indirizzo nella variabile source sia interessante. Proviamo a seguire l’indirizzo completo:

http://www.wolfram.com/common/bitneg/events/VisualizationVirtualWorkshop2013/General-Visualization-Quick-Start.smil

Clicchiamo col destro e salviamo il file col nome. Aprendolo come se fosse un normale file di testo, troviamo all’interno il seguente contenuto:

<smil>
<head>
<meta base="rtmp://streamingmedia.wolfram.com/ondemand" />
</head>
<body>
<switch>
<video src="broadcast/events/VisualizationVirtualWorkshop2013/generalvisualization_quickstart_500" system-bitrate="500000"/>
<video src="broadcast/events/VisualizationVirtualWorkshop2013/generalvisualization_quickstart_1100" system-bitrate="1100000"/>
</switch>
</body>
</smil>

Perfetto, abbiamo trovato uno stream RTMP, anzi due!

Ricapitolando, partendo dal codice della pagina è venuto fuori che le informazioni sul video sono contenute in un file esterno (in questo caso in formato SMIL). Una volta ispezionato il file, troviamo due possibili qualità per il video, di cui noi prendiamo quella più alta. L’indirizzo del video è spezzato in due, ma possiamo facilmente ricomporlo ottenendo:

rtmp://streamingmedia.wolfram.com/ondemand/broadcast/events/VisualizationVirtualWorkshop2013/generalvisualization_quickstart_1100

Aprendolo con VLC si vede, quindi l’URL è giusto. Più avanti nell’articolo spiego come salvare gli URL ottenuti. Ovviamente ogni sito è diverso, ma questo lo trovo un ottimo esempio perché spiega l’idea di base: guardando nel codice e cercando un po’ si può trovare direttamente un URL, oppure un file di informazioni sul video che contiene poi l’URL.

Embed di semplici file, stream MMS oppure stream RTMP

Alcuni siti web utilizzano un metodo di incorporamento che ultimamente non è più molto “di moda” ma che funziona: inserire direttamente nella pagina il filmato desiderato, che può essere un file o uno stream, senza usare Flash. I video vengono riprodotti con vari plugin, ad esempio Windows Media Player o QuickTime (o i relativi equivalenti su piattaforma Linux).

Questa scelta consente di scaricare i video in modo relativamente semplice. Se sono semplici file video, in genere ci pensa Video DownloadHelper. In caso contrario, ci basta aprire il codice della pagina e leggere direttamente il pezzo di codice del video, contenuto in un tag embed oppure object, mentre le pagine più recenti usano il tag video.

Per questo esempio, userò questa pagina e gli strumenti di sviluppo integrati in Firefox. Basta premere F12 (o Ctrl/Cmd+I a seconda del sistema operativo) per aprire il pannello con le varie schede. La prima sezione ci consente di esplorare il codice della pagina in modo interattivo. Torna utile perché alcuni siti modificano il proprio codice dopo aver caricato la pagina, e quindi a volte premere Ctrl+U non aiuta.

Con gli strumenti di sviluppo possiamo esplorare il codice come in figura:

firefox_devtools
Esplorazione del codice con gli strumenti di sviluppo del browser

La cosa più pratica da fare è usare la freccina in alto a sinistra sulla barra. Dopo aver premuto l’icona della freccia, cliccate sulla parte di pagina che vi interessa (cioè il video o qualcosa nelle immediate vicinanze). A questo punto cominciate ad esplorare i nodi. È quello che ho fatto io nella figura.

In questo caso tra i parametri vediamo il nome del file videofilename.wmv che ci permette di ottenere l’indirizzo completo:

http://www.mediacollege.com/video/format/windows-media/streaming/videofilename.wmv

Con un metodo analogo si possono scoprire gli indirizzi di eventuali flussi MMS o RTMP inseriti nelle pagine con lo stesso meccanismo.

Video in formato Silverlight

Alcuni siti web (per fortuna pochi) usano i video inseriti in formato Smooth Streaming con tecnologia Silverlight. Smooth Streaming è un meccanismo di flusso “adattivo” inventato da Microsoft, che consente al sito internet di trasmettere a diverse qualità a seconda della connessione di chi lo visita.

Questo rende il download un po’ più complicato. Fortunatamente, per i due siti web italiani principali che fanno un uso smodato del plugin Silverlight, potete usare i miei script che lo bypassano:

Per altri siti, la cosa che bisogna fare è individuare il cosiddetto file Manifest. Un esempio di questo tipo di video si può trovare qui e visualizzando il codice della pagina si riesce a individuare la posizione:

<MediaSource>To_The_Limit_720.ism%5CManifest</MediaSource>

Da questa si ricava l’indirizzo completo (quel %5C è una semplice barra rovesciata codificata con percent-encoding):

http://playready.directtaps.net/smoothstreaming/TTLSS720VC1/To_The_Limit_720.ism/Manifest

Su alcune pagine non è così facile individuare il Manifest, per fortuna comunque Silverlight non ha mai preso moltissimo piede e ora non viene più sviluppato.

Analisi della richieste HTTP

Su siti web un po’ “difficili” può essere utile visualizzare i dati che vengono trasmessi nella comunicazione tra il browser e il sito web che ci interessa. Questi dati si chiamano richieste HTTP, e gli strumenti di sviluppo ci permettono di visualizzarle nella scheda Rete.

Tramite l’ispezione delle richieste è possibile visualizzare esattamente quali file vengono richiamati dal browser o dai plugin, quali ad esempio Flash Player. Per attuare questa tecnica, andate sulla pagina che vi interessa, aprite gli strumenti di sviluppo, passate alla scheda Rete e poi ricaricate la pagina. Questo è importante per vedere tutto quanto.

Un esempio di richieste visualizzate su questo video del sito di La7:

firefox_net
Visualizzazione delle richieste HTTP

Tra le numerose richieste potreste individuare link di file video, frammenti di clip oppure file di configurazione che potrebbero permettervi di risalire all’URL necessario al download. Nella figura, ho evidenziato l’URL di un file M3U8 che mi dà alcune informazioni su dove si trova il video.

Tali informazioni mi sono state utili, assieme ad altre analisi, per sviluppare il mio script per scaricare i video da La7. Questo tipo di approccio è da considerarsi più avanzato: chi lo applica deve farsi strada tra le informazioni disponibili e con intuito e pazienza cercare di risalire al video. Insomma, richiede di fare un po’ di pratica ma dà spesso buoni risultati.

In particolare, andremo a cercare/filtrare (con la casellina apposita):

  • .mp4, .wmv o estensioni simili per video interi
  • .m3u8 per flussi di questo tipo
  • xml o json per file di configurazione che contengono dati utili sul video

Se vi trovate di fronte a un flusso F4M in un player Flash (con pezzettini di video F4F, a volte), è inutile intestardirsi a tentare di registrarlo così. Quasi sempre si può aggirare l’ostacolo col metodo più pratico del cambio dello user-agent. Vedete soprattutto la sezione in fondo al post.

Scaricare i video dagli URL individuati

Una volta individuato l’URL di un video, è necessario provvedere al download.

Nel caso di link ad un normale file, potete scaricare il video copiando l’URL nella barra di navigazione del browser e poi premendo Invio. A quel punto parte la richiesta di download o la riproduzione del video, in tal caso fate File » Salva con nome. Ci sono anche vari programmi chiamati download manager che permettono di avviare in modo semplice lo scaricamento di un file, dato l’URL.

Per gli stream di tipo MMS (o eventualmente RTSP), potete predisporre una linea di comando di questo tipo:

mplayer -dumpstream -dumpfile output.wmv [URL]

Dove [URL] è l’indirizzo dello stream MMS. Se usate uno stream RTSP potrebbe essere più conveniente usare MP4 come estensione al posto di WMV, comunque dipende dal tipo di codifica del flusso originale.

Con Linux e Mac, vi basta usare la riga di comando nel terminale. Su Mac dovrete indicare il percorso completo al binario, per esempio /Applications/MPlayerX.app/Contents/ Resources/binaries/x86_64/mplayer [...], adattate la riga di comando al vostro caso specifico.

Su Windows, dovrete copiare la riga di comando in un file chiamato download.bat e salvare questo file nella stessa cartella dove avrete precedentemente scaricato il file mplayer.exe. A questo punto vi basta fare doppio click sul file download.bat appena creato.

Download di un flusso MMS con Mplayer
Download di un flusso MMS con Mplayer

Per gli stream RTMP, il procedimento è del tutto analogo, solo che si usa rtmpdump. Riprendendo l’esempio di prima, possiamo formare la linea di comando così:

rtmpdump -R -o output.mp4 -r rtmp://streamingmedia.wolfram.com/ondemand/broadcast/events/VisualizationVirtualWorkshop2013/generalvisualization_quickstart_1100

L’opzione -R serve a non far “correre” troppo il programma, perché su alcuni siti questo crea problemi nella registrazione. Se provate senza, sarà più rapido ma potrebbe fallire in alcuni casi.

Anche in questo caso, se usate Windows dovete creare il file batch (come con Mplayer) ma stavolta salvarlo nella stessa cartella di rtmpdump.exe. Ne avevo parlato anche in questo mio articolo.

Infine, per i video in Smooth Streaming, vi rimando alle guide linkate all’inizio del post.

Cambio dello user-agent

La tecnica descritta in questo paragrafo è stata aggiunta all’articolo in data 24/05/2014.

Con l’enorme diffusione di dispositivi quali smartphone e tablet, negli ultimi anni la maggior parte dei siti che contengono video come contenuto principale ha visto una trasformazione. Accanto alla normale versione per computer, questi portali hanno creato una versione ottimizzata per sistemi Android e iOS.

Può succedere quindi che su una pagina che usa protezioni complicate o flussi strani, il download diventi semplice quando si accede alla versione per dispositivi mobili, in quanto non sono presenti né Flash né Silverlight.

I siti web utilizzano una stringa particolare per riconoscere il browser dell’utente, chiamata user-agent string. Per esempio, quella del mio browser è:

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/34.0.1847.116 Chrome/34.0.1847.116 Safari/537.36

Chiaramente è il nostro browser a inviare questa informazione, quindi la possiamo modificare a nostro piacimento. Come esempio di uso di questa tecnica potete provare a salvare questo video. Chiaramente, come dicevo esistono strumenti per salvare video da Youtube in modo automatico, ma è solo un esempio per illustrarvi la tecnica. 😉

Scaricate l’estensione User Agent Switcher per Firefox e installatela. A questo punto, dovete andare nelle preferenze dell’estensione e aggiungere una stringa per un dispositivo mobile, per esempio quella di un iPad:

Mozilla/5.0(iPad; U; CPU iPhone OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B314 Safari/531.21.10**

Alcuni siti rimandano alla loro app se provate a usare una stringa di un dispositivo Apple. In tal caso, potete anche usare una stringa di un dispositivo Android, come ad esempio:

Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76B) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.133 Mobile Safari/535.19

Lasciate vuoti gli altri campi (App Code Name, App Name, eccetera). Fatto ciò, potete attivare l’utilizzo di questa user-agent string sempre dal menu dell’estensione.

A questo punto disattivate Flash player dalle preferenze di Firefox. È molto importante che il sito pensi che il vostro PC non abbia la possibilità di riprodurre contenuti in Flash.

Aprite la pagina del video e dovreste vedere la versione mobile del sito. Se  compare un pulsante Play per far partire il video, premetelo anche se sembra non funzionare.

A questo punto potete usare una delle altre tecniche descritte in questo articolo (in particolare l’uso degli strumenti di sviluppo) per trovare il link al video. Nella maggior parte dei casi si trovano file in formato MP4 direttamente scaricabili (in un elemento <video> con src che indica il file). In alcuni siti invece ci sono dei link a degli stream riconoscibili dall’estensione M3U8.

Download dei flussi M3U8

Questi flussi generalmente sono registrabili con la funzione di registrazione di VLC. In alternativa, se non funzionano con VLC, potete procedere con un tool a linea di comando in modo identico a quanto visto con rtmpdump oppure mplayer.

Metodo classico

Il download dei flussi M3U8 è possibile grazie a un programma che si chiama ffmpeg. Lo potete scaricare dal sito ufficiale. Ecco un esempio:

ffmpeg -i "[...].m3u8" -acodec copy -vcodec copy output.mp4

Alcuni flussi M3U8 hanno l’audio malformato e ffmpeg potrebbe interrompersi con un errore che vi avvisa, senza però registrare nulla:

[mp4 @ 0x9a6820] Malformed AAC bitstream detected: use the audio bitstream filter 'aac_adtstoasc' to fix it ('-bsf:a aac_adtstoasc' option with ffmpeg)

Traduzione:

Bitstream AAC [che sarebbe l’audio] malformato, usare il filtro bitstream per l’audio aac_adtstoasc per ripararlo (l’opzione -bsf:a aac_adtstoasc con ffmpeg)

Quindi il programma vi sta già dicendo cosa cambiare. 🙂 In questo caso, dovete aggiungere l’opzione specificata e ottenere una riga di comando di questo tipo:

ffmpeg -i "[...].m3u8" -acodec copy -vcodec copy -bsf:a aac_adtstoasc output.mp4

Le versioni più recenti del programma lo fanno in automatico.

Metodo “pigro”

Per chi non ha voglia di digitare ogni volta la riga di comando completa per ffmpeg, c’è un altro sistema molto pratico per registrare questi flussi. Se avete installato correttamente youtube-dl e ffmpeg (servono entrambi) si può passare l’URL direttamente a youtube-dl:

youtube-dl "[...].m3u8" -o output.mp4

Il parametro col nome del file risultante è opzionale, ma a volte serve per evitare errori con i nomi di file troppo lunghi.

Conclusione

Salvare i video presenti sulle pagina web è in genere un’operazione rapida quando si tratta di siti “famosi”, in quanto esistono numerosi programmi già pronti che rendono il lavoro molto facile.

La situazione è diversa in altre circostanze, alcuni siti internet rendono l’operazione meno “immediata” e richiedono di analizzare la pagina che abbiamo di fronte. Lo scopo di questo articolo è quello di cercare di spiegare come sviluppare la forma mentis che permette di sapere come agire in generale.

Spero di aver dato una panoramica quanto più ampia possibile. Pur sapendo che alcune parti dell’articolo richiedono la conoscenza di alcuni concetti informatici, se ritenete che in alcuni passaggi la spiegazione sia scritta in modo poco chiaro fatemelo sapere nei commenti. 😉


Vi è piaciuto l’articolo?

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

1.041 pensieri riguardo “Scaricare i contenuti audio e video presenti nelle pagine web — Guida completa

  1. Dan, grazie mille per l’ottimo contributo che hai fornito e anche per i complimenti. 🙂 Ho ritoccato un po’ la formattazione per renderlo più leggibile. Se ti può essere utile, è possibile usare Markdown nei commenti.

    Così come, per qualche altro motivo che invece non mi è chiaro, del tutto irraggiungibile è il file m3u8 […] funzionano quindi solo le app dedicate di iOS e Android

    Può essere che abbiano deciso di rendere accessibile questi filmati solo tramite app. È altresì possibile che le app usino esse stesse il flusso F4M.

    una simpaticissima estensione chiamata HDS link detector

    Bellina questa, non l’avevo mai usata. 😀 Ho inserito il link nel tuo commento, inoltre penso che dovrò provarla, prima o poi. Potrei anche inserire qualche riferimento ai flussi F4M all’interno dell’articolo, in effetti. Quando l’avevo scritto non erano molto diffusi, ma ora la situazione è un po’ diversa.

    Tu per caso sai come fare?

    Si potrebbe pensare di scriptare tcpdump per stampare a video il traffico e poi avere un piccolo script che estrae i parametri e avvia subito AdobeHDS.php, però bisogna valutare se il gioco vale la candela. Il tuo metodo mi sembra più pratico.

    ti chiedo se tu saresti stato in grado di raggiungere l’m3u8 magari sniffando il traffico di una app mobile

    Si può fare se l’app usa effettivamente un flusso M3U8. Per esempio, potresti installare Android-x86 dentro a una macchina virtuale e poi lanciare Wireshark sul sistema operativo ospitante. Questo però suppone che la app non usi HTTPS (di solito non lo fanno, almeno per contenuti liberamente accessibili.

    Se non è così, diventa più complicato perché dovresti fare un attacco MITM contro alla tua stessa macchina virtuale. :mrgreen: In alternativa alla virtualizzazione, puoi anche creare un hotspot Wi-Fi, usare un cellulare vero e sniffare il traffico di quel dispositivo.


    Franco, il fatto è che per fortuna (o sfortuna, dipende dal punto di vista) non ho mai avuto problemi a usare VideoDownloadHelper o youtube-dl per i filmati di Youtube. Se ti capitasse un altro video problematico semmai linkalo. 😉

    1. Che c’entra Netflix? Quello è un sito a pagamento dove noleggi dei contenuti per la durata del tuo abbonamento. Non ha video on demand liberamente accessibili.

  2. Seguendo la guida e alcuni consigli non ho mai avuto grossi problemi, ma voleva dare un piccolo contributo anche se forse era già stato detto siccome in molti scaricano i video da VVVVID o altri.
    Ho trovato una piccola variante in questo link di VVVVID:

    avconv -i "http://wowzaondemand.top-ix.org/videomg/_definst_/mp4:Dynit/GundamMovies/Gundam%200083_HD.mp4/playlist.m3u8" -acodec copy -vcodec copy out.mp4
    

    C’è una piccola correzione da fare, aggiungendo una % .

    avconv -i "http://wowzaondemand.top-ix.org/videomg/_definst_/mp4:Dynit/GundamMovies/Gundam%%200083_HD.mp4/playlist.m3u8" -acodec copy -vcodec copy out.mp4
    

    Se non si va cosi non viene letta la % da avconv
    Grazie di nuovo per la guida Lazza.

    1. Per essere precisi, l’URL corretto è il primo che hai indicato e infatti la riga di comando funziona perfettamente. Il problema con il % avviene su sistemi operativi discutibili (Windows) che fanno pasticci con quel carattere e quindi richiede un escape. 🙂 Giustamente chi usa Windows si dovrà premunire e risolversi il problema di conseguenza, in quanto è un sistema che non suggerisco né supporto.

      Il fatto di aver menzionato che alcuni strumenti sono multipiattaforma è stato fatto per completezza d’informazione, ma non vuole assolutamente essere un incentivo né un consiglio relativamente all’uso di piattaforme diverse da Linux. 😉 😛

      Da segnalare comunque che con la prima riga di comando (comunque giusta) alcune versioni di avconv possono manifestare un problema (e la relativa soluzione):

      Malformed AAC bitstream detected: use the audio bitstream filter 'aac_adtstoasc' to fix it ('-bsf:a aac_adtstoasc' option with ffmpeg)
      

      Quindi va aggiunto, prima di out.mp4 proprio il parametro -bsf:a aac_adtstoasc.

  3. Ciao a tutti, io purtroppo sono poco pratico e disgraziatamente utilizzo Windows…… volevo scaricare da vvvvid in modo semplice e ho trovato una soluzione: utilizzo l’estensione di chrome – internet download manager. Grazie a quest’ultima riesco a scaricare il file video in formato flv. Il problema però è il seguente: il video scaricato si vede benissimo, ma l’audio è pessimo! ( tra le parole ci sono fastidiosi secondi di silenzio).
    Qualcuno mi sa aiutare? in più vorrei sapere per quale motivo l’url trovato da questo programma non risulta riproducibile su vlc….

  4. vorrei sapere per quale motivo l’url trovato da questo programma non risulta riproducibile su vlc

    Bisognerebbe sapere qual è questo URL prima di poter fare delle ipotesi sulla causa. 😉

  5. allora descrivo meglio la situazione: volevo scaricare questo video:

    http://www.vvvvid.it/#!show/404/one-punch-man/407/486910/luomo-piu-forte

    Utilizzando il programma che ho citato nel commento ottengo questo url:

    http://vvvvid-vh.akamaihd.net/z/Dynit/OnePunchMan/OnePunchMan_Ep01_4KYKoYrqh7ZowBkDm.mp4/0_c6c8af80d908aac4_

    Vlc non riesce a riprodurlo, come mai? volevo scaricare la serie di OPM, ma in qualsiasi modo ci provi riscontro sempre un problema…. qualcuno sa aiutarmi? Grazie

    1. VLC non riproduce quel link perché non è un link a una file esistente, sembra piuttosto un pezzo dell’URL di uno dei tanti frammenti del flusso. Ti conviene registrare il flusso M3U8 con avconv, come è stato discusso più volte nei commenti:

      http://vvvvid-vh.akamaihd.net/i/Dynit/OnePunchMan/OnePunchMan_Ep01_4KYKoYrqh7ZowBkDm.mp4/index_0_av.m3u8
      
  6. Scrivo a più di un anno di distanza dalla pubblicazione dell’articolo e qualcosa deve essere cambiato 🙁
    Non riesco a scaricare questo video: http://video.corriere.it/come-aiutare-cane-timido-con-linguaggio-corpo/7e21f3ec-9288-11e5-b7a6-66411f67f00e
    Espongo i miei passaggi:
    Uso firefox 41.0.2
    Ho disattivato il plugin flash
    Ho installato user agent overrider e switchato su ios e controllato la provenienza del flusso video tramite firebug.
    Qui non trovo nessun link che ricordi vagamente un video.
    Idem switchando l’useragent su android
    Puoi aiutarmi?

  7. Intanto ti ringrazio di aver spiegato esattamente cosa hai provato, il che rende più semplice risponderti. 🙂

    Ho fatto anch’io le stesse cose sostanzialmente, solo che la faccenda ha funzionato solo dopo che:

    • ho accettato i cookie
    • ho disattivato il blocco pubblicità (nel mio caso uBlock Origin)

    A quel punto il video dovrebbe partire nella pagina per cellulari che stai visualizzando in Firefox ed è un file MP4.

  8. Grazie mille.. Il problema era proprio quello in quello che tu hai fatto e io no. Purtroppo mi è stato impossibile registrarlo con VLC (ma riuscivo a vedere il video generato dal flusso) ma usando Libav a riga di comando, è andato tutto liscio
    Di nuovo grazie, Lazza
    Franco

    1. Anche quando è possibile, io non uso mai la funzione di registrazione con VLC. Richiede N click, bisogna controllare di non attivare conversioni del formato, non ti dà un’idea chiara del progresso durante la registrazione. Insomma, un po’ scomodo, IMHO.

  9. Senti io che ho un login perchè sono abbonato a SkyGO… nei commenti + vecchi oppure in qualche modo sai se esiste un modo per ottenere il link dei contenuti in on demand ??

    devo scaricare questa:
    http://skygo.sky.it/ondemand/dettaglio/mario—una-serie-di-maccio-capatonda/38686.shtml?query=mario&i=11&l=43

    Guardando tutta la guida… e tutto il sorgente non riesco a capire cos’è che devo cercare…. so solo che il video necessità l’attivazione di sirverlight su firefox. Internet Download manager rileva 50 file .mp4 e non credo che sia una soluzione scaricarli tutti………..

    1. Non saprei. Ma anche se esistesse, qui parliamo solo di registrare contenuti liberamente accessibili, non materiale preso a noleggio. Vedi anche qui.

  10. Buongiorno, prima di tutto un grande grazie per la tua guida e il tuo tempo. Io vorrei scaricare i video della serie MTV NEWS dal loro sito. I video sono accessibili gratuitamente, ma solo da chi si trova in Italia. I video sono ottimi per esercitare la comprensione dell’italiano per i miei studenti e mi sarebbero molto utili….
    Per vederli (dall’estero)uso il programma gratuito cyberghost, ma mi sono bloccato quando ho cercato di scaricarli.
    Sono arrivato a questo link:
    http://media.mtvnservices.com/player/prime/mediaplayerprime.2.10.13.swf?uri=mgid:uma:video:mtv.it:605379&type=normal&ref=None&geo=IT&group=intl&network=None&device=Other&networkConnectionType=None&CONFIG_URL=http%3a%2f%2fmedia.mtvnservices.com%2fpmt-arc%2fe1%2fplayers%2fmgid%3auma%3avideo%3amtv.it%3a%2fcontext4%2fconfig.xml%3furi%3dmgid%3auma%3avideo%3amtv.it%3a605379%26type%3dnormal%26ref%3dNone%26geo%3dIT%26group%3dintl%26network%3dNone%26device%3dOther%26networkConnectionType%3dNone
    Dovrebbe essere un file swf, e dovrei in qualche modo vedere cosa c’é dentro per registrare il flusso, da quello che ho capito… .. ma come dovrei procedere.??
    Un grande grazie anche da parte dei miei studenti.
    E75YA

    1. Per vederli (dall’estero) uso il programma gratuito cyberghost

      È un buon primo passo, infatti ti serve proprio una VPN italiana.

      Sono arrivato a questo link:

      http://media.mtvnservices.com/player/prime/mediaplayerprime.2.10.13.swf?uri=mgid:uma:video:mtv.it:605379&type=normal&ref=None&geo=IT&group=intl&network=None&device=Other&networkConnectionType=None&CONFIG_URL=http%3a%2f%2fmedia.mtvnservices.com%2fpmt-arc%2fe1%2fplayers%2fmgid%3auma%3avideo%3amtv.it%3a%2fcontext4%2fconfig.xml%3furi%3dmgid%3auma%3avideo%3amtv.it%3a605379%26type%3dnormal%26ref%3dNone%26geo%3dIT%26group%3dintl%26network%3dNone%26device%3dOther%26networkConnectionType%3dNone

      Dovrebbe essere un file swf, e dovrei in qualche modo vedere cosa c’é dentro per registrare il flusso

      In realtà questa è una cosa da evitare: decompilare i file SWF è un lavoro lungo e tedioso, se possiamo, non facciamolo. 🙂 Il sito di MTV è un po’ complicato da gestire, ma possiamo provare. Però, piuttosto di guardare l’URL del file SWF, mi servirebbe il link della pagina che contiene il video, così vediamo.

  11. Analizzando il link con il video
    http://ondemand.mtv.it/serie-tv/mtv-news/s01/mtv-news-ragazzi-di-confine-s02e06-04
    con l’aiuto do firebug, portato la freccia sul video ho trovato questo:

    Ho cercato di aprire questo link con un altro programma (VLC)

    http://media.mtvnservices.com/mgid:uma:video:mtv.it:669603
    

    ma non è successo nulla, se però unisco il link con questo:

    ondemand/serie-tv/mtv-news&amp;playerPath=/serie-tv/mtv-news/s01/mtv-news-ragazzi-di-confine-s02e06-04&amp;objectID=mtvnPlayer8467042
    

    mi si apre la pagina con il file swf

    http://media.mtvnservices.com/player/prime/mediaplayerprime.2.10.13.swf?uri=mgid:uma:video:mtv.it:669603&amp;type=normal&amp;ref=None&amp;geo=IT&amp;group=intl&amp;network=None&amp;device=Other&amp;networkConnectionType=None&amp;CONFIG_URL=http%3a%2f%2fmedia.mtvnservices.com%2fpmt-arc%2fe1%2fplayers%2fmgid%3auma%3avideo%3amtv.it%3a%2fcontext4%2fconfig.xml%3furi%3dmgid%3auma%3avideo%3amtv.it%3a669603%26type%3dnormal%26ref%3dNone%26geo%3dIT%26group%3dintl%26network%3dNone%26device%3dOther%26networkConnectionType%3dNone
    

    mi sembra di girare intorno…….

  12. ho trovato questo

    Se hai tentato di incollare un pezzo di codice HTML nel commento, non puoi farlo, ma puoi farlo direttamente, ma devi usare Markdown anteponendo 4 spazi di fronte a ogni riga del codice:

        così
    

    mi sembra di girare intorno

    Eh già, secondo me stai prendendotela troppo con quel file SWF. 😛 Comunque sia, se controlli le richieste HTTP nel pannello Net di Firebug troverai questa:

    http://intl.esperanto.mtvi.com/www/xml/media/mediaGen.jhtml?uri=mgid%3Auma%3Avideo%3Amtv.it%3A669603&acceptMethods=fms,hdn1,hds
    

    Nel file XML ci sono degli URL a flussi RTMPE, tipo questo:

    rtmpe://cp24806.edgefcs.net/ondemand/mtviestor/_!/intlod/it/ontv/news/mtv_news/it_mtvnews_G115820_640x480_1600.mp4
    

    Puoi registrarlo con rtmpdump come scritto nel post:

    rtmpdump -r 'rtmpe://cp24806.edgefcs.net/ondemand/mtviestor/_!/intlod/it/ontv/news/mtv_news/it_mtvnews_G115820_640x480_1600.mp4' -o output.mp4
    

    Buon download. 🙂

  13. Ciao Andrea, volevo provare a registrare lo streaming di questa tv locale (http://www.teletutto.it/in_diretta/).
    Analizzando poi lo streaming da livestream.com ho trovato questo link .smil

    https://api.new.livestream.com/accounts/701633/events/4147166/broadcasts/106773238.secure.smil

    che analizzato mi da questo:

    <smil xmlns="http://www.w3.org/2001/SMIL20/Language">
            <head>
                    <meta name="title" content="701633_4147166_c519a652_1" />
                    <meta name="httpBase" content="https://livestream-f.akamaihd.net" />
            </head>
            <body>
                    <switch id="701633_4147166_c519a652_1">
                            <video src="701633_4147166_c519a652_1_198@328551" system-bitrate="198000"/>
                            <video src="701633_4147166_c519a652_1_678@328551" system-bitrate="678000"/>
                    </switch>
            </body>
    </smil>
    

    E qui mi fermo. Sul VLC non riesco a farlo andare.
    Sbaglio qualcosa pr caso? O non è possibile fare questa operazione con livestream.com?

    1. Ho cambiato l’URL che avevi linkato perché era scaduto, mentre quello che ho messo ora funziona in questo momento. Inoltre penso che tu avessi tentato di incollare i tag XML direttamente nel commento, cosa che non funziona perché viene interpretato come HTML e quindi rimosso.

      Ad ogni modo, hai fatto 30 e direi che ora puoi fare anche 31. 🙂 Hai sia il pezzo iniziale httpBase che due src. Infatti unendo insieme i due pezzi, come nell’esempio mostrato nel post, ottieni un flusso funzionante:

      https://livestream-f.akamaihd.net/701633_4147166_c519a652_1_678@328551
      
  14. Non è che non riesci a farlo andare, è che funziona così. Quell’URL fornisce 15 secondi di filmato e si aggiorna ogni volta che vai a chiederlo nuovamente in modo da essere sempre sincronizzato con la diretta. Puoi usare VLC in loop, ma ovviamente ci sarà un piccolo scattino per passare da un pezzo all’altro.

    vlc --loop https://livestream-f.akamaihd.net/701633_4147166_c519a652_1_678@328551
    
  15. ho scaricato alcuni video da dplay.com seguendo la procedura descritta ma quando uso libav poi ottendo un video che è fuori sincro con l’audio. Come posso fare in modo che venga meglio?

    1. Lo sfasamento è costante o cambia nel tempo? Nel primo caso, puoi impostare su avconv un ritardo (positivo o negativo) dell’audio per correggere il file che hai registrato. In questo post è spiegato per ffmpeg ma lo stesso discorso vale per avconv. 😉

  16. Ciao Andrea,
    quello che a me interessa di piu’ e’ guardare i canali TV stranieri in streaming. Tramite uno smart DNS (nel mio caso unlocator) ho superato il problema della geo-localizzazione, dal mio PC funziona tutto, ma vorrei vedere gli stessi canali da nexus player (S.O. Android TV) che ho attaccato alla tv.
    Ad esempio BBC iplayer, funziona su PC ma non distribuiscono l’App per il nexus.
    Android TV, tramite le app Cumulus TV e Live Channels permette di aggiungere dei canali in streaming (HLS/m3u8), dunque il problema sarebbe forse quello di reperire gli URL corrispondenti.
    Sono partito ad esempio con BBC news, tramite l’add-on HDS link-detector ho recuperato il file manifesto, ma poi mi sono bloccato. Se prendo un URL contenuto che punta ad un file f4m e provo a caricarlo in VLC non viene visualizzato niente. Ho letto la tua nota che dice piu’ o meno… “se trovate un file f4m prendete un’altra strada” ma mi chedevo se non essendo interessato a registrare il contenuto forse in qualche modo si poteva fare. Come avrai capito la confusione nella mia testa e’ tanta….

    Non e’ che potresti darmi qualche dritta, magari prendendo a riferimento il canale bbc news?
    Ho provato a googolare e sembra che la cosa interessi a molti, magari potrebbe essere uno spunto per un articolo dedicato…

    Grazie, Ciao
    Nicola

  17. Ad esempio BBC iplayer, funziona su PC ma non distribuiscono l’App per il nexus

    Questo perché stai usando un account Google Play italiano, quindi l’app è nascosta. La devi scaricare da un sito affidabile, e purtroppo molti non lo sono. Vedo che c’è l’APK su APKMirror che fortunatamente è un sito affidabile. 🙂 Poi la carichi sul dispositivo installandola manualmente.

    Ovviamente si assume che tu abbia impostato i DNS sul router oppure anche sul dispositivo Android, ma sul router è più pratico.

    Ho letto la tua nota che dice piu’ o meno… “se trovate un file f4m prendete un’altra strada”

    Infatti è così. L’ho scritto e lo ribadisco. 😉 Nel caso del sito di BBC News ti conviene usare la user-agent string di un dispositivo mobile e prenderti il flusso M3U8. Ah, per inciso, è questo:

    http://a.files.bbci.co.uk/media/live/manifesto/audio_video/simulcast/hls/uk/hls_mobile_wifi/ak/bbc_news24.m3u8
    

    (se apri il piccolo file di testo a cui punta questo URL trovi anche i link alle varie qualità, sennò lo dai in pasto al player e si arrangia lui a scegliere come gli pare)

    Problema risolto. 😛

    Infine, un appunto sulla scelta:

    Tramite uno smart DNS (nel mio caso unlocator) ho superato il problema della geo-localizzazione

    Da quel che ho potuto verificare nelle varie fonti online, Unlocator funziona molto bene. Ti segnalo comunque, per completezza, che ultimamente ci sono offerte alquanto opportune (e secondo me migliori rispetto a pagare ogni mese). Ancora per alcuni giorni puoi acquistare un account a vita di SimpleTelly Smart DNS a 49$ oppure c’è GetFlix a 39$ che offre sia Smart DNS che VPN in diversi paesi. Io personalmente mi sono preso un account (sempre a vita) su VPNSecure a 59$.

    In quest’ultimo caso la scelta di server è veramente ottima, però è appunto un servizio più orientato alle VPN che allo Smart DNS. Ne offrono uno ma è un po’ più “striminzito” degli altri due (comunque decente per i siti principali). L’aspetto interessante è che supportano tutto, nel senso che ti danno VPN, proxy e tunnel SSH con le stesse credenziali.

    Se questi servizi ti interessano ti conviene leggere in giro qualche recensione su altri siti web e poi valutare, anche perché io ne ho provato solo uno quindi non saprei dire come si piazzino gli altri. 🙂

  18. Ciao Andrea,
    innanzitutto grazie per le dritte su BBC e smartDNS, adesso provo a seguire i tuoi suggerimenti e vedo se riesco a ripetere la procedura per altri canali.,,,, spero di non disturbarti ancora.

    Per me lo smartDNS ha il vantaggio di non limitarmi la banda e di potere usare app italiane, inglesi e americane contemporaneamemte. Magari faccio una prova con SimpleTelly….

    Per il discorso dell’APK non credo sia solo un problema del google store italiano, credo non sia stata certificata la compatibilità con il mio device e dunque non me lo faccia scaricare, Per Android TV c’e’ la complicazione ulteriore delle applicazioni che devono funzionare senza tastiera e mouse ma solo con telecomando. Comunque provo a fare un sideload e vedo cosa succede.

    Sono veramente gasato dalla possibilità di vedere canali TV da tutto il mondo (dal divano di casa mia), mi sembra una forma di democratizzazione dell’informazione, quello per cui internet era nato.

    Ciao

    1. Ah ok, capisco. Io in effetti ho un normalissimo stick HDMI con Android e uso un telecomando con giroscopio (tipo il telecomando Wii, per capirci), perciò potrebbe essere diverso. Comunque chiaro, il DNS è più comodo per alcune applicazioni, ma riguardo alla banda non devi preoccuparti, un buon servizio VPN non ha problemi a reggere i canali in diretta. 🙂 Per il prezzo che hanno, quei servizi che offrono sia VPN che SmartDNS secondo me ti danno il meglio di entrambi i mondi.

      Sono veramente gasato dalla possibilità di vedere canali TV da tutto il mondo (dal divano di casa mia), mi sembra una forma di democratizzazione dell’informazione

      Ma infatti è un’ottima idea, non vedo perché uno dovrebbe essere limitato da discutibili restrizioni geografiche. 😉

  19. Ciao, sempre grazie per tutto quello che fai.
    Stranamente a quello che vimeo mi aveva abituato ovvero al semplice click su Video Download helper x il download, ho trovato questo filmato che invece non applica!
    Sapresti darmi qualche dritta in proposito? Grazie.
    https://vimeo.com/151646509

    1. Come consiglio nel post, per i siti famosi la cosa più pratica è affidarsi a programmi “standard” che li supportano bene. 🙂 Per esempio, quel video è salvabile utilizzando youtube-dl.

  20. Ciao, ho seguito i tuoi consigli in diverse occasioni (raireplay, la7, e altri siti) e mi sono stati molto utili. Ho provato anche con i siti un po’ più complicati, ho conosciuto firebug grazie a te praticamente. Io sono di origine spagnola e c’è un sito che quest’anno fa vedere dietro escrizione con la mail (gratuita) alcuni film messicani credo. Sono entrata ma non ho trovato il modo di salvarli con tutte le operazioni del caso compreso el cambio de agent. Dove ho sbagliato o cosa posso rimediare? Il sito è questo
    https://www.festivalscope.com/all/
    https://www.festivalscope.com/all/festival/distrital/2016

    Come dicevo basta iscriversi con la mail, e poi dopo aver selezionato i film a costo zero e dare al book si conferma e te li fa vedere gratis ma non riesco a salvarli, mi puoi aiudare?

    1. Quel sito web utilizza dei flussi M3U8 particolari, ad un primo sguardo sembrerebbero cifrati. Senza andare a diventare matti, credo che l’opzione migliore sia usare un registratore di schermo. Chiaramente non è la soluzione più veloce del mondo, e probabilmente non verrà una qualità perfetta, però l’unica alternativa è capire esattamente come sono cifrati i flussi e direi che sarebbe un lavoro lungo e impegnativo.

  21. ciao, ho sempre scaricato piuttosto in tranquillità da PopcornTV tramite FireBug+Vlc ma adesso non riesco più a trovare i link… non so se sono diventato scemo io o hanno cambiato qualcosa.

    Questo è il link: http://animemanga.popcorntv.it/guarda/assassination-classroom-episodio-05-seconda-stagione/8176

    In genere trovavo subito il classico link (http://rrr.sz.xlcdn.com/?account= ecc ecc) ma adesso non trovo più niente del genere… sono riuscito a trovare questi due con “mp4” scritto in mezzo:

    https://player.vimeo.com/external/154165933.hd.mp4?s=7cc0105a81043b428792efecf46a7905c41a4dfa&profile_id=113
    https://fpdl.vimeocdn.com/vimeo-prod-skyfire-std-us/01/833/6/154165933/475990976.mp4?token=56b4ac23_0x5175ef84a59e1b51a77746ae2a44cb56bd1ade75

    Non so se siano quelli giusti e non so neanche come “aggiustarli” ad m3u8. Ci potresti dare un occhio, per favore. Grazie.

    1. A quanto pare ora usano Vimeo per i video. 🙂 Comunque caspita, hai trovato il link al video bello pronto in MP4, meglio di così cosa puoi desiderare? 😀

  22. Pellegrino, pardon mi stava sfuggendo il tuo commento. L’articolo contiene tutte le informazioni necessarie per operare su quella pagina, specialmente la parte che riguarda il cambio dello user-agent, i flussi M3U8 e il pannello Net di Firebug.

    Tu finora cos’hai fatto e a che punto ti sei bloccato?

  23. Io ho usato sempre il metodo che alla fine si aggiunge .m3u8 per poi scaricare con vlc e per questo ero molto insicuro sul da farsi… non è che sono un genio in questa roba. Come se non bastasse, gli altri episodi di quella serie mi vengono a 1080 mentre questo mi viene a 720 quindi pensavo di sbagliare qualcosa.

    Secondo te come mai non riesco a scaricarlo a 1080 come per gli altri??? Ho provato a smanettare un po’ ma sembra come se non ci sia il video a 1080 (nonostante indicato)… possibile che non ce lo abbiano messo???

    Inoltre, giusto per cultura personale, se io volessi prendere il video con il vlc che dovrei fare??? Se prendo quei link che ho trovato e li butto dentro vlc così come sono, non mi funzionano… ho provato a fare qualche tentativo cambiando qualcosa ma niente. Grazie.

    PS: non c’ho capito se il messaggio è partito, forse ne saranno partite diverse copie… in caso, scusa.

    1. Andrea grazie ma potresti mettermi una guida su come scaricare gli highlight su Sportube perché non ci capisco bene sopra grazie Andrea

  24. Giannone,

    Come se non bastasse, gli altri episodi di quella serie mi vengono a 1080 mentre questo mi viene a 720 quindi pensavo di sbagliare qualcosa. Secondo te come mai non riesco a scaricarlo a 1080 come per gli altri?

    Capisco, ma qui hanno usato Vimeo, non un flusso M3U8 (è un bene, è più semplice). 🙂 Riguardo alla qualità, l’ipotesi più probabile è che non abbiano caricato la versione 720. Infatti personalmente quando cambio la qualità non noto altri file che si caricano o un’immagine migliore.

    Se prendo quei link che ho trovato e li butto dentro vlc così come sono, non mi funzionano

    Ma in realtà onestamente io vedo che tu hai trovato due link: il primo su player.vimeo.com (che funziona benissimo, prova anche solo a cliccarci sopra) e l’altro su fpdl.vimeocdn.com (che è scaduto perché ha un token a tempo). Quindi torno a ripetere quello che ti dicevo prima: tu hai trovato il link al video in modo corretto, puoi procedere a salvare il file MP4. 😀

    Tra l’altro, visto che quella pagina usa Vimeo, puoi addirittura darla in pasto a youtube-dl e si accorgerà di ciò, scaricandoti il video da solo. Ma ormai hai trovato l’URL giusto, la fatica l’hai già fatta. 😉

    Pellegrino, c’è poco da aggiungere rispetto a quanto già detto. Come accennato prima, ti basterà cambiare lo user-agent con quello di un dispositivo Android e ti ritroverai la pagina per cellulari. Premi Play e quindi inizierà il filmato, facendo apparire la richiesta al flusso M3U8 dentro alle richieste HTTP mostrate da Firebug.

    Per esempio, il flusso di quel video lì è:

    http://sportube-vh.akamaihd.net/i/hl_fog_ben_g20_cm_c_1516.mp4/index_0_av.m3u8?null=&hdntl=
    
  25. Hello Andrea, it seems Vimeo protected pages which embebe the video into a protected page and only it can be displayed inside, I can’t use VideoDownloadHelper, because only detects little fragments, I guess this is because its using Adobe F4F streaming video, and right now there is no way to download such videos, do you know the way to capture this little streamings and recover it to join it in a full video post processing? Thanks you so much for your support

    1. Il video è protetto (o è stato cancellato?) perciò non posso aprirlo né guardare com’è la situazione.

  26. avrei bisogno di un’aiuto.
    vorrei scaricare questo video on demand nel quale sono presente. come posso fare???
    ti invio il link

    http://www.radiovaticana.va/player/index_fb.asp?language=it&tic=VA_C5EZ3ILO
    

    grazie mille per l’aiuto

    1. Come avrai già appurato da solo, quel sito usa un player Silverlight per riprodurre un flusso in Smooth Streaming. Apri il pannello Net di Firebug e poi avvia il filmato. Tra le richieste HTTP vedrai i vari frammenti del video, con URL simili a questo:

      http://212.77.9.48/vod/ev3/VA_C5EZ3ILO/stream2.ism/QualityLevels(600000)/Fragments(video=1299804670000000)
      

      Ti basta rimpiazzare l’ultima parte per ottenere l’indirizzo del Manifest:

      http://212.77.9.48/vod/ev3/VA_C5EZ3ILO/stream2.ism/Manifest
      

      Provvedi quindi a registrare il flusso come spiegato nell’articolo. 🙂

  27. bella guida molto ben sviluppata, solo che stavo scervellandomi a capire come scaricare un video incorporato sul sito della rai e non riuscendoci ho trovato questo sito: http://pasty.link/ che in un nanosecondo mi ha non solo trovato il link diretto per scaricare il video ma mi fa scegliere anche la qualità 😀 😀

  28. Ciao,
    Ho sempre scaricato qualsiasi cosa da qualsiasi sito in questo anno, e se ci sono riuscito, è anche grazie a te.
    Tuttavia, dopo aver scaricato diverse volte da vvvvid non riesco più a catturare il flusso M3U8. Nello specifico:

    1. disattivo adblock;
    2. disattivo il plugin di flash player;
    3. cambio la user agent mettendone una di un ipad;
    4. Entro nel sito, dicendo che sono consapevole che sarebbe meglio scaricare l’app dallo store e accetto i cookies

    E fin qui tutto ok…
    Purtroppo però quando c’è da caricare il video, appare l’animazione di caricamento che forma un loop e di fatto il video non viene mai caricato e quindi non puo’ restituirmi nessun flusso M3U8. Ho provato a riattivare adblock mi dice che è impossibile caricare il manifest della pagina perché non ne ho i permessi. Ho provato inoltre con firebug a disabilitare l’icona del caricamento ma quest’ultimo non riesce a bloccarla.

    Ho notato però che appena rimetto lo user agent di default e rimetto flash player, vvvvid mi carica tipo 4 spot pubblicitari di fila, di conseguenza ne deduco che non riesce a caricare con successo le pubblicità. Ho provato allora a disattivare flash dopo il caricamento di suddette pubblicità ma mi restituisce access denied.

    Il bello è che questo video l’avevo già scaricato 2 mesi fa con la stessa identica procedura… Il link in questione è: http://www.vvvvid.it/#!show/404/one-punch-man/407/486910/luomo-piu-forte.

    Come posso risolvere?
    Grazie in anticipo per l’aiuto 😀

  29. Prima di tutto vorrei ringraziarti. La guida è veramente ben scritta.
    Ho provato a seguirla passo passo, ma devo confessarti che non è facile da comprendere. In alcuni passaggi non è di certo fatta per i poveri analfabeti di informatica tra le cui file a pieno titolo sento di far parte.
    Soprattutto quando descrivi come ricostruire l’URL del video……francamente mi sono perso e non più ritrovato. Ahahahahh
    Ma visto che non difetto di una certa testardaggine, mi sono guardato intorno alla ricerca di un software che facesse il lavoro sporco da rabdomante, se così si può dire.
    In effetti ne ho trovato uno che certamente conoscerai. È il browser Maxthon che ha nativamente incorporata la funzione di Resource Sniffer.
    Nel mio caso ho la necessità di copiare dei video streaming (Vimeo) di dimensione intorno al giga, ospitati in un sito parauniversitario a cui si può accedere solo previa iscrizione.
    Fino a poco tempo fa li tiravo giù egregiamente con il fantastico addon Video downloaderhelper, di cui hai fatto cenno nella tua guida. Ma ultimamente il sito in questione ha deciso di limitarne l’utilizzo. I video sono consultabili solo in streaming, ma ne viene impedito il download. Di fatto mi sono ritrovato nella stessa situazione di quanto descritto nei commenti al tuo articolo (in data 12 febbraio 2016) da VALERIA CASTELÄO.
    Tornando alla questione, dopo aver fatto partire lo streaming di un video, grazie a Resource Sniffer di Maxthon ho individuato l’URL in un attimo.
    Di seguito ne scrivo uno a titolo di esempio:
    https://fpdl.vimeocdn.com/vimeo-prod-skyfire-std-us/01/1574/6/157873471/492478785.mp4?token=56ee4ea9_0xc425f8134bd6ec94015898c6eab879a09c56edff
    ma quando provo ad effettuarne il download con Video downloaderhelper tutto si blocca.
    Ho provato a registrare lo streaming sia utilizzando un collegamento ad alta velocità (da 2 a 5 M b/s) che uno a velocità ridotta (500-600 k b/s), ma in entrambi i casi niente da fare.
    Ho anche provato ad utilizzare un downloader manager (Jdownloader 2), ma senza successo. Il download si blocca circa ad un terzo della grandezza complessiva e quando riparte si azzera quanto già scaricato. Credo che questo sia dovuto al token inserito nella URL, inoltre la stessa URL cambia da un giorno all’altro.
    Ho anche provato ad utilizzare come da te descritto i registratori di flusso a riga di comando mplayer ed rtmpdump, ma evidentemente sbaglio qualcosa perchè cliccando sul file bat non succede niente.
    Riguardo al cambio dello user-agent non ho ben chiara la procedura. Sotto l’addon user-agent switcher non sono riuscito ad andare nelle preferenze per aggiungere la stringa da te suggerita, sempre ammesso che questo possa risolvere.
    Se hai qualche suggerimento ti sarei molto grato……
    Utilizzo Win 8.1 come S.O.
    Mi scuso per il commento nella lunghezza forse fin troppo esagerato.

  30. Andrea, di Pasty Link ne abbiamo parlato decine di volte nei commenti. È un metodo che funziona, al pari di Video DownloadHelper e altri, con alcuni siti famosi (più la scomodità di dover aprire un sito a parte). Non credo che serva nominare in continuazione gli stessi siti già segnalati. 😛

    stavo scervellandomi a capire come scaricare un video incorporato sul sito della rai e non riuscendoci

    Nel mio post è linkato chiaramente il mio Script per scaricare da Rai TV e Rai Replay che ti fornisce direttamente il link al video senza dover fare copia-incolla, restituendo automaticamente la qualità più alta. Ah, e il mio script non ti mostra banner pubblicitari per lucrarci sopra. 😉


    Simo, ah be’ i siti cambiano. Che due mesi fa fosse in un modo non significa nulla. 😀

    mi restituisce access denied

    Sì, ma la cosa simpatica è che comunque ti rimanda verso l’indirizzo del Manifest in formato F4M (Adobe HDS). E la cosa ancora più simpatica è che usano Akamai come CDN:

    http://vvvvid-vh.akamaihd.net/z/Dynit/OnePunchMan/OnePunchMan_Ep01_it_QqofCjGCG12i8V6km.mp4/manifest.f4m
    

    Come avevamo menzionato altre volte nei commenti, il CDN di Akamai supporta sia Adobe HDS che i flussi M3U8 normali, e basta cambiare davvero poco (la /z/ e la parte finale). Prova:

    http://vvvvid-vh.akamaihd.net/i/Dynit/OnePunchMan/OnePunchMan_Ep01_it_QqofCjGCG12i8V6km.mp4/master.m3u8
    

    O direttamente:

    http://vvvvid-vh.akamaihd.net/i/Dynit/OnePunchMan/OnePunchMan_Ep01_it_QqofCjGCG12i8V6km.mp4/index_0_av.m3u8
    

    Paolo, non ho capito come mai tu abbia installato Maxthon quando puoi farlo con Firefox o con Chrome/Chromium. 😛 Comunque sia…

    dopo aver fatto partire lo streaming di un video, grazie a Resource Sniffer di Maxthon ho individuato l’URL in un attimo. […] Il download si blocca circa ad un terzo della grandezza complessiva e quando riparte si azzera quanto già scaricato. Credo che questo sia dovuto al token inserito nella URL, inoltre la stessa URL cambia da un giorno all’altro.

    Se ti salta il download dovresti provare con un download manager, tipo Axel o uGet.

  31. Salve, non riesco a scaricare un video da una pagina web. Il video incriminato è qui:
    http://animemanga.popcorntv.it/guarda/assassination-classroom-episodio-11-seconda-stagione/8472

    Sto cercando di smanettare un po’ ma non riesco a trovare il l’indirizzo da mettere sul VLC per scaricare. Per adesso ho trovato questi che finiscono in m3u8, ma non riesco a capire qual’è quello giusto da usare e come sistemarlo:

    https://player.vimeo.com/external/159372864.m3u8?s=3bd9010f896e8541267c4a1f8b7af9812dd80043
    
    https://skyfire.vimeocdn.com/1458507132-0xf65627d801a2fc647cd4c1d5d30a8facd91324b5/159372864/video/499166860,499166868,499166874,499166882/master.m3u8?absolute=1
    

    Non riesco proprio a venirne fuori, potresti darmi una mano. Grazie.

    1. Premetto che il primo URL che hai postato è un flusso M3U8 perfettamente funzionante (e quindi puoi registrarlo con ffmpeg/avconv). 🙂 Detto ciò, visto che ora usano Vimeo credo che ti convenga fare come ha fatto Giannone qualche commento più su e andarti a prelevare direttamente il video in MP4. O, come gli ho suggerito in una risposta, usare youtube-dl che tanto riconoscerà Vimeo e provvederà da solo. 😛

  32. Sarò scemo ma non ne vengo a capo. L’mp4 non c’è (o è nascosto veramente bene), mi sa che hanno cambiato qualcosa perchè prima da quel sito ci scaricavo direttamente con Video Downloadhelper.

    Per quanto riguarda il flusso m3u8, a me non funziona…non so perchè. Ffmpeg non lo avevo mai usato e non sono neanche riuscito a farlo partire, però con Avconv ci sono riuscito ma mi da subito “Protocol Not Found”. Come righe di comando ci ho inserito queste:

    avconv -i "https://player.vimeo.com/external/159372864.m3u8" -acodec copy -vcodec copy output.mp4
    
    avconv -i "https://player.vimeo.com/external/159372864.m3u8?s=3bd9010f896e8541267c4a1f8b7af9812dd80043" -acodec copy -vcodec copy output.mp4
    

    Non riesco a capire cosa sbaglio, a te partono tranquillamente???

  33. In effetti non c’è più un video MP4, probabilmente hanno lievemente cambiato il sito ancora. Nessuna paura, occupiamoci dell’M3U8. 🙂

    Ffmpeg non lo avevo mai usato e non sono neanche riuscito a farlo partire

    Be’, si usa in modo identico ad avconv, se hai scritto una riga di comando sensata per avconv la puoi fare anche per ffmpeg. In particolare, la tua seconda riga di comando è giusta. Se la lancio con ffmpeg ottengo un eloquente avviso:

    [mp4 @ 0x3edeb00] Malformed AAC bitstream detected: use the audio bitstream filter 'aac_adtstoasc' to fix it ('-bsf:a aac_adtstoasc' option with ffmpeg)
    av_interleaved_write_frame(): Operation not permitted
    

    Il programma stesso mi dice che per questo specifico flusso devo riparare l’audio AAC aggiungendo -bsf:a aac_adtstoasc. Quindi la linea di comando diventa:

    ffmpeg -i "https://player.vimeo.com/external/159372864.m3u8?s=3bd9010f896e8541267c4a1f8b7af9812dd80043" -acodec copy -vcodec copy -bsf:a aac_adtstoasc output.mp4
    
  34. Adesso ti faccio ridere, ho capito perchè non mi andava Ffmpeg… avevo scaricato la versione Linux invece di Windows XD. Adesso, con la riga di comando che mi hai messo, funziona (ho provato e partiva, anche se non ho finito di scaricare l’episodio)…. grazie mille per l’aiuto. Ma secondo te come mai con Vlc e Avconv non funziona???

    Tanto che ci sono, posso approfittare per chiederti un’altra cosa… altrimenti mi tocca venire a richiedertela tra 2 settimane XD. Sempre per seguire un anime, dovrò usare Crunchyroll ed è la prima volta che lo faccio… ho cominciato un po’ a smanettare per prepararmi ma, a differenza di quello che ti avevo chiesto prima, qui non sono riuscito nemmeno ad identificare l’indirizzo del flusso video.

    Qua ti metto un link ad un episodio a caso da quel sito:
    http://www.crunchyroll.com/naruto-shippuden/episode-453-itachis-story-light-and-darkness-the-pain-of-living-696215

    Non è che quando hai un po’ di tempo potresti darci un’occhiata, grazie.

  35. avevo scaricato la versione Linux invece di Windows

    Ecco vedi, il tuo inconscio ti ha fatto capire che devi portarti sulla retta via e iniziare a usare Linux. 😀

    qui non sono riuscito nemmeno ad identificare l’indirizzo del flusso video

    Se vuoi possiamo pure parlare di come farlo a mano, ma siccome Youtube-dl lo supporta nativamente, credo che sia più comodo se lo scarichi con quello. 😉

    youtube-dl --all-subs http://www.crunchyroll.com/naruto-shippuden/episode-453-itachis-story-light-and-darkness-the-pain-of-living-696215
    

    Voilà. 😛

  36. Guarda, se non ti dispiace (e se non ti creo troppo disturbo) a me piacerebbe approfondire anche come scaricare manualmente da Crunchyroll… è tutta esperienza XD. Io intanto provo a smanettare un po’ con Youtube-dl, anche se da quel poco che ho visto non ho idea neanche di come installarlo (già non ho capito che roba è quel Pyhton che ti chiede di installare… e non mi piace installare cose senza capire a che servono).

  37. Luca, ne abbiamo già parlato in questo commento (a dire la verità anche in altri) e nei 2-3 che seguono. Hai due opzioni:

    • registri l’RTMP come spiegato lì
    • registri l’M3U8 come spiegato poco più in basso

    Crozzato, be’ il discorso è sostanzialmente analogo agli altri siti con flussi RTMP. Trovi la configurazione tra le richieste HTTP (con Firebug) e dentro ci sono tutte le info che ti servono (inclusi l’indirizzo del flusso, il nome della playlist e i sottotitoli):

    Screenshot di Firebug

    Fai l’escape delle entities HTML, quindi &amp; diventa & e ottieni:

    rtmpdump -R -r 'rtmpe://cp150757.edgefcs.net/ondemand/?auth=daEc.c0c8aFdAbib.cZcucYcwdib.amdycQ-bw.t7b-dHa-nCFylqIDDvC&aifp=0009&slist=c2/s/ve2173867/video.mp4' -y 'mp4:c2/s/ve2173867/video.mp4' -o output.mp4
    

    Questa è la qualità bassa perché mi sono dimenticato di premere “480”… però il concetto è uguale.

    Poi ti scarichi i sottotitoli. Onestamente… chi te lo fa fare? 😀

    non ho capito che roba è quel Pyhton che ti chiede di installare

    È l’interprete per il linguaggio Python. Come fai a usare un programma Python se non hai l’interprete installato? Ma poi… non sei ancora passato a Linux? 🙂

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *