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. Devi aprire il prompt dei comandi dentro quella cartella: tieni premuto SHIFT e su un punto vuoto della cartella premi il tasto destro del mouse e fai “apri finestra di comando qui” poi applichi la riga di comando


      Almeno credo sia cosi

  1. Axel, ho provato con la puntata 34 e (cambiando user-agent e disattivando Flash) il link al flusso M3U8 appare normalmente nelle richieste HTTP su Firebug:

    http://wowzaondemand.top-ix.org/videomg/_definst_/mp4:Dynit/DEATH_NOTE/DEATH_NOTE_EP34m.mp4/playlist.m3u8
    

    Tanzi90, hai scaricato il codice sorgente per Linux. 😛 Mi pare di capire che ti trovi nella brutta situazione in cui purtroppo sei costretto a usare Windows. In quel caso dovrai scaricare i binari compilati per Windows, che sono linkati nella pagina di download (oltretutto, mi pare che la medesima pagina sia linkata nel mio post).

    Pierrette, non so come tu abbia tirato fuori quel link, ma va in 404. Di preciso cosa ti aspetti di scaricare da lì? In compenso, se togli tutta la parte dopo l’estensione .asx trovi un URL valido a un file XML. 😉

    1. Guarda anche a me succede ho appena controllato ma mi dura per poco tipo una decina di secondi e parte tutto bene. Io uso MPC e penso che sia un problema di VVVVID (spero)

  2. Qualcuno è mai riuscito a scaricare una puntata di un qualche anime da Crunchyroll? Io non posso perché dovrei installare flash player e proprio non voglio. Come funziona? Stesso procedimento come con VVVivid?

  3. Mi date un piccolo aiuto??? Io riesco a scaricare i video, ma ho un problema con questo video:

    http://vvvvid-vh.akamaihd.net/i/Dynit/PrisonSchool/PrisonSchool_Ep03m.mp4/index_0_av.m3u8

    Non so perchè ma all’incirca a 4:50 c’è un cambio di scena ed il video si blocca per un attimo e riparte tutto mezzo rovinato (qui c’è uno screencaps http://oi57.tinypic.com/2myx8gh.jpg)… succedere pure un’altra volta più avanti nell’episodio.

    Io ho Windows ed in genere uso vlc (2.1.3), ho provato ad usare avconv (è la prima volta che l’uso e non so se ho fatto tutto giusto)… ma il risultato è identico. Anche a voi il video fa questo scherzo??? Voi riuscite a vederlo bene???

  4. Maxbridge, di preciso che tecnica hai tentato finora? L’URL del file audio si trova in modo abbastanza rapido.

    Aster14, no, è diverso. Dovrai installare Flash player e far partire il video per poter solo accedere alla configurazione in XML. Dentro si trova un flusso RTMPE, quindi forse conviene semplicemente sniffare con rtmpsrv quando parte il video.

    Gianno, può capitare qualche glitch se il flusso non è perfetto. Porta pazienza, tanto dura pochi secondi. 🙂

  5. ah, ecco… ci fa anche ad altri, esattamente come a me. Allora dovrò mettermi l’anima in pace, è che mi dispiace un casino avere quel problema proprio in mezzo all’episodio…

  6. ultimamente quando scarico il master di un video di dplay.com con vlc verso la fine l’audio va fuori sinc come rimediare?

    scaricato Avconv e avviato così:

    Devi aprire il prompt dei comandi dentro quella cartella: tieni premuto SHIFT e su un punto vuoto della cartella premi il tasto destro del mouse e fai “apri finestra di comando qui” poi applichi la riga di comando

    come creo poi la riga di comando o come la integro?

    avconv -i "[...].m3u8" -acodec copy -vcodec copy -qscale 0 output.mp4
    
  7. avconv -i "[...].m3u8" -acodec copy -vcodec copy -qscale 0 output.mp4
    

    nella parentesi quadra cosa inserisco per fargli riconoscere il video che mi interessa?
    mi spieghi più dettagliatamente come si crea un file .bat

  8. Salve,
    ho la necessità di salvare su disco le lezioni di un corso di formazione a cui sono iscritto per poterle vedere in offline. Ho provato a seguire le istruzioni del post, ma non so dove sbaglio. Da quello che ho capito il sito usa Flowpleyer. Ho scaricato le estensioni tipo AntVideo Downloader ma non funzionano. Ho provato a leggere il codice della pagina e ho individuato un indirizzo per un file .swf ma non riesco a salvarlo. Ho anche indivduato un riferimento a un mp4, ma non riesco a capire come salvarlo.
    Non so se mi sono spiegato, ma se servono ulteriori info cercherò di fornirle.
    Grazie in anticipo per l’aiuto.

  9. Ghini, inserisci l’URL del flusso M3U8 che hai intenzione di registrare.

    Paolo, stiamo parlando di un corso ad accesso libero a cui ognuno si può registrare o un corso a pagamento con durata limitata? Perché ovviamente qui si parla solo di registrare contenuti liberamente accessibili sul web (inclusi i contenuti dove è richiesto un account a condizione che sia gratuito).

    1. Il corso è a pagamento e prevede l’utilizzo illimitato nel tempo dei video. Alcuni sono salvabili semplicemente cliccando con il tasto destro e facendo salva altri no.

  10. la riga diventa

    avconv -i "http://c.brightcove.com/services/mobile/streaming/index/master.m3u8?videoId=4160764342001" -acodec copy -vcodec copy -qscale 0 output.mp4
    

    ma esce il messaggio di errore

    "avconv" non è riconosciuto come comando interno o esterno,
    un programma eseguibile o un file batch.
    

    come rimediare?

  11. ho scaricato Windows Nightly and Release Builds: 64-bit Windows builds di questi ultimi cosa devo scaricare tutti i file o solo alcuni e dove trovo l’eseguibile di avconv

  12. ciao. avevo postato lo scorso anno in quanto non riuscivo a rilevare il flusso video dei canali di sportube.tv. ebbene ci risiamo.
    le ho provate tutte con vari user agent ma firebug non rileva nulla.
    hai suggerimenti ?
    grazie!


    scusami ma il mio problema è che non riesco a rilevare l’url del flusso che se ben ricordo era con estensione m3u8

  13. Ghini, l’eseguibile di avconv (che chiaramente si chiama avconv.exe) si trova nell’archivio della build che hai scaricato. Come specificato nel post devi mettere il .bat nella stessa directory dell’eseguibile (o viceversa). Se hai dubbi guarda le istruzioni relative a rtmpdump, il concetto è esattamente uguale solo che cambia il nome del programma usato e la riga da scrivere nel file .bat.

    Direi che le informazioni contenute nel post sono sufficienti a seguire il procedimento. Inoltre credo che l’area dei commenti si stia trasformando inavvertitamente in una chat in cui si parla di Windows, quindi non mi pare assolutamente il caso. 😉

    Fabio, ho cercato il software che hai menzionato. Oltre ad essere un programma esistente solo per Windows (e già questo…), mi pare di capire che si limiti a mostrarti dei file multimediali che sono già nella cache multimediale del tuo browser (correggimi se sbaglio). In altre parole sono file che il tuo browser aveva già salvato, tutti casi che Video DownloadHelper può individuare ancora prima che il download finisca, così puoi anche decidere di usare un download manager esterno per velocizzare il salvataggio.

    Diciamo che la mia guida si focalizza di più sui metodi necessari per individuare gli URL dei video/flussi e salvarli, non quelli per recuperare dei file che il browser si è già arrangiato a salvare per conto suo.

    Mario, in che senso “Firebug non rileva nulla”? Spiegami più precisamente i passi che compi. Ho provato con diversi video in homepage e sono tutti file MP4.

  14. scusami, non mi sono spiegato correttamente: mi riferisco agli eventi live. ora non ce ne sono. mi pare che il prossimo sia domani alle 18:00.
    lo scorso anno firebug rilevava il flusso per i mobili nel formato m3u8 mentre quest’anno non becco nulla. ovviamente ho provato con una decina di user agent diversi.
    se riesci a verificare, senza fretta e senza impegno.
    grazie!

  15. grazie mille per l’aiuto
    scarico però solo con l’URL del master un file di 1,5 Gb
    se volessi scaricare alle altre risoluzioni che URL metto quello che ottengo da gedit?
    se facio quel passaggio mi dice

    
    [mpegts @ 00000000003cf520] Estimating duration from bitrate, this may be inaccu
    rate
    Input #0, hls,applehttp, from 'http://c.brightcove.com/services/mobile/streaming
    /index/rendition.m3u8?assetId=4351954004001':
      Duration: 00:41:04.00, start: 9.945333, bitrate: N/A
      Program 0
        Metadata:
          variant_bitrate : 0
        Stream #0.0: Video: h264 (Constrained Baseline), yuv420p, 768x432 [PAR 1:1 D
    AR 16:9], 25 fps, 90k tbn, 50 tbc
        Stream #0.1: Audio: aac, 48000 Hz, stereo, fltp, 154 kb/s
    At least one output file must be specified
    "videoId" non è riconosciuto come comando interno o esterno,
     un programma eseguibile o un file batch.
    
  16. se volessi scaricare alle altre risoluzioni che URL metto quello che ottengo da gedit?

    Sì, dato che il sito fornisce flussi a diverse risoluzioni puoi scegliere tu quella che preferisci. La risoluzione viene indicata nella riga sopra a quella dell’URL.

    Riguardo a "videoId" non è riconosciuto come comando interno o esterno, sembrerebbe che tu non abbia racchiuso correttamente l’URL tra virgolette.

  17. scusami ancora
    il video che voglio scaricare è questo: http://it.dplay.com/il-boss-delle-torte-la-sfida-sudamerica/stagione-1-episodio-1/
    il master m3u8:

    http://c.brightcove.com/services/mobile/streaming/index/master.m3u8?videoId=4345967226001
    

    la riga di comando avconv:

    avconv -i http://c.brightcove.com/services/mobile/streaming/index/master.m3u8?videoId=4345967226001 -acodec copy -vcodec copy -qscale 0 output.mp4
    

    con cui ottengo file di 1,5 Gb
    se voglio la risoluzione ad esempio 768×432: inserisco

    avconv -i http://c.brightcove.com/services/mobile/streaming/index/rendition.m3u8?assetId=4346052063001&videoId=4345967226001 -acodec copy -vcodec copy -qscale 0 output.mp4
    

    ma ottengo l’errore videoId non riconosciuto anche mettendo le virgolette; quale è la giusta riga da inseire?

    1. La riga di comando che hai indicato va benissimo (a condizione di mettere le virgolette). Qualora Windows richiedesse altre modifiche, tipo l’escape del carattere ampersand, starà a te adattare di conseguenza. Per i bizzarri problemi di Windows, io non sono la persona giusta a cui chiedere. 😉

  18. ritorno alla carica: sono riuscito ad acchiappare il flusso (almeno penso). mi da questa stringa ma non scarica nulla.
    puoi verificare con i tuoi strumenti e soprattutto le tue conoscenze ?

    http://sportube-live.hls.adaptive.level3.net/hls-live/scube-sportube01/_definst_/live.m3u8
    
  19. Mario, quasi… ti manca il token. 😀 A quanto pare gli stream si trovano qua:

    http://rest2.sportube.tv/api/default/tv.jsonp # attuali
    http://rest2.sportube.tv/api/default/live_events.jsonp # futuri :D
    

    Ogni volta che apri quell’URL chiaramente ti crea un token diverso… Comunque mi sembra che funzioni.

    Screenshot riproduzione video

  20. Salve! Vorrei complimentarmi per l’ottima guida, poiché tramite essa ho con successo scaricato un video da vvvvid, cosa che prima mi sembrava impossibile!!
    Vorrei chiedere se per questo e altri siti saranno fatti programmi automatici come quelli della rai, poiché penso siano il massimo se si vogliono scaricare molti video.

  21. quindi devo dedurre che da quest’anno hanno aggiunto un token.
    Nel senso che lo scorso anno mi bastava utilizzare l’url che appare sullo screen del video fermandomi a …live.m38u
    So che non vuoi sentire parlare di Windows, però lo scorso anno utilizzando pot player e semplicemente inserendo quell’url si apriva il flusso e così potevo registrare ciò che non riuscivo a vedere live a causa della contemporaneità.
    Con il token dovrei comunque essere presente ad ogni inizio di eventi live . . .

  22. Ciao andrea… sono di nuovo qui a chiederti aiuto.
    Ho scaricato avconv e ho estratto la cartella, preparato il file .bat ma ogni volta che lo avvio mi esce un messaggio di errore che mi dice che mi manca il file “libgcc_s_sjlj-1.dll”, solo che nell’archivio non è presente tale file.
    Sai dirmi come mai mi viene questo errore?

  23. Alberto, non da me perché non ho alcun interesse su quei siti. Dato che ogni sito supportato richiede numerose ore di tempo per fare lo script e tenerlo aggiornato, mi limito ai siti più interessanti per me. 🙂 Per non parlare dei numerosi messaggi via email e commenti che ricevo se qualcosa non funziona su uno script. 😉

    Tuttavia è chiaro che io non sia l’unico al mondo a fare script. Per esempio, erano da poco nati gli script di Daniele Giudice per VVVVID e Dplay che erano ispirati dai miei. Al momento non sono disponibili perché, in seguito alla pubblicazione, Daniele ha ricevuto dei messaggi… be’ diciamo ben poco piacevoli da alcune persone. Sto lavorando in prima persona per riportare i suoi software a disposizione di tutti come lo sono i miei.

    Non aspettarti però una scadenza precisa per questo, vedremo se e quando sarà possibile.

    Mario,

    be’ in realtà no. 😛 Come ti dicevo, c’è un URL che indica gli eventi “futuri” quindi puoi consultare quello per vedere i dettagli dei flussi. A programma iniziato si sposteranno sull’URL di quelli “attuali”, perciò ti basterebbe uno scriptino microscopico tipo:

    EVENTS="http://rest2.sportube.tv/api/default/tv.jsonp"
    SEARCH="pordenone"
    DURATION="01:45:00.000" # 1 ora e 45 minuti
    
    URL="$(wget -q -O - "$EVENTS" | tr '[' '\n' | grep -i "$SEARCH" | tr ',' '\n' | grep hls | cut -d '"' -f 2)"
    avconv -i "$URL" -t $DURATION -codec copy -qscale 0 registrazione.mp4
    

    Magari lo salvi chiamandolo registra.sh e poi lanci:

    at 16:00 + 1 min -f registra.sh
    

    Meglio farlo partire un minuto dopo così sei sicuro che il flusso sia finito nell’URL relativo agli eventi in corso. Ovviamente devi mettere dentro a SEARCH un termine che individui in modo univoco la descrizione dell’evento. Invece di at puoi anche usare gnome-schedule come spiegato qui.

    Inutile dirti che è il momento di passare a Linux. 😉

    woody88, tu finora quale parte della guida hai provato? Di quel sito abbiamo parlato anche nei commenti. 🙂

    Z, vedi la giusta risposta di Ghini.

  24. Nel codice sorgente della pagina del video, copia il Javascript offuscato che si occupa di inserire il player, cioè quello che parte col classico:

    eval(function(p,a,c,k,e,d){ [...]
    

    Passalo dentro a JSBeautifier e prendi i relativi URL:

    jwplayer("vplayer").setup({
        sources: [{
            file: "http://www.flashx.tv/luq4ri3yhhixexzw6u23hjmqtx7pjibkomvbjah7fufjxgnbnpz6hkrnxk4q.smil"
        }, {
            file: "http://f05-play.flashx.tv/luq4ri3yhhixexzw6u23hjmqtx7pjibkomvbjah7eamjvgnbnpzwflfzsxxa/mobile.mp4"
        }],
    

    Così hai l’MP4 in modo facilissimo, però è a una risoluzione da cellulari. Per registrare il flusso RTMP a qualità più alta, invece, il modo più semplice è usare rtmpsrv come spiegato in questo articolo. 🙂

  25. Aster14, pardon, la tua ultima risposta mi era sfuggita. Comunque anche tu, avendo un file SMIL, potresti provare con rtmpsrv che faciliterebbe non poco la cosa. 🙂

    Nicola, giusto qualche commento più su parlavo del lavoro di Daniele Giudice, che è ispirato al mio. Ti consiglio di darci un’occhiata. 😉

    1. Principalmente la parte dell’articolo che parla dei flussi M3U8. 🙂 Poi di quel sito se ne è parlato anche nei commenti precedenti, ci sono molti altri che hanno usato le mie istruzioni per registrare su VVVVID e si trovano spunti interessanti.

    1. Se hai già fatto alcune procedure, potresti dire a che punto sei arrivato? Così non ripartiamo da zero. 🙂 Hai letto anche i commenti precedenti dei lettori che hanno discusso riguardo proprio alla registrazione dei video su VVVVID?

  26. Ciao Lazza! Grazie mille per la guida! Ti scrivo per un problema che è comparso recentemente. In pratica non riesco a scaricare le nuove uscite da vvvvid, prendiamo ad esempio questo episodio:

    http://www.vvvvid.it/#!show/370/shimoneta/371/485692/techno-break

    riesco a recuperare il manifest:

    http://vvvvid-vh.akamaihd.net/z/Dynit/Shimoneta/Shimoneta_Ep11_f0UXvnX5Wu6cl9ynm.mp4/manifest.f4m?g=PCLGFABNUPFK&hdcore=3.6.0&plugin=aasp-3.6.0.50.41
    

    ma quando vado poi a modificarlo per renderlo scaricabile trasformandolo in questo link, che fino all’episodio 10 funzionava (praticamente sostituendo solo il nome del file .mp4):

    http://vvvvid-vh.akamaihd.net/i/Shimoneta/Shimoneta_Ep11_f0UXvnX5Wu6cl9ynm.mp4/index_0_av.m3u8
    

    non riesco più a farlo vedere ne a VLC e ne a JDownloader. Ho cercato ovunque ma non riesco a venirne a capo. Hai qualche consiglio? Spero di essermi spiegato bene e grazie in anticipo per l’aiuto!

    1. Li vedi passare nel pannello Network (o Rete… non mi ricordo mai se su Firefox è tradotto). 🙂 Però devi avere il pannello già aperto quando le richieste HTTP cominciano, perciò il modo più pratico è aprirlo e poi ricaricare la pagina.

  27. Ciao Lazza vorrei sapere come mai non riesco a scaricare questa puntata
    il link che ho usato per il download:

    http://vvvvid-vh.akamaihd.net/i/Dynit/Owarimonogatari/Owarimonogatari_Ep03_aE23DEas0m,,.mp4.csmil/index_0_av.m3u8
    

    ma non funziona eppure con gli altri episodi ha funzionato benissimo ieri usando la stessa struttura

  28. Salve Andrea, vorrei chiederti questo. Quando guardo un video su Youtube, questo viene normalmente scaricato nel mio pc; infatti, chiudendo la connessione internet, ma lasciando aperta la pagina del video, posso riprodurlo tutte le volte che voglio, fino a quando non clicco per cambiare la pagina o chiudo il browser; a quel punto, si renderebbe ovviamente necessaria una nuova connessione ad internet. Perciò ti chiedo: non si potrebbe semplicemente salvare il file del video già scaricato con Chrome (o Explorer, o altri browser), in modo da poter sempre riaprirlo dal mio pc senza dovermi connettere di nuovo a Youtube, ed eventualmente poi convertirlo in un file mp3 con un programmino apposta, senza dover ricorrere a programmi che scaricano e convertono direttamente dal sito di Youtube, ma che non sono quasi mai in grado di farlo nel caso di video protetti? Grazie Andrea.

  29. Rahmz, a me quel link parte con VLC. 🙂

    Franco,

    Quando guardo un video su Youtube, questo viene normalmente scaricato nel mio pc

    Certamente, il cosiddetto “streaming” è un normalissimo download, con la differenza che si può iniziare a guardare dei pezzi di video prima che il processo sia completato. Infatti i siti che riportano una nota del tipo “si può guardare in streaming ma non salvare” sono contraddittori e insensati dal punto di vista tecnico. 😉

    non si potrebbe semplicemente salvare il file del video già scaricato

    Dipende se il video è un solo file oppure uno stream composto da centinaia di frammenti… nel secondo caso non è una cosa molto pratica. 😉 Nel primo, basta usare cose tipo DownloadHelper come suggerisco nel post o farlo a mano come suggerisci tu.

    senza dover ricorrere a programmi […] che non sono quasi mai in grado di farlo nel caso di video protetti

    Non sono sicuro di aver capito la domanda per poterti rispondere… 😀 Che intendi con “video protetti”? Protezione con DRM, protezione sulle richieste HTTP, altro? Hai un link di esempio?

  30. Ciao Lazza,
    sarò prolisso.

    Per cominciare colgo l’occasione per rinnovare i miei complimenti e i miei ringraziamenti alla tua gentilezza e disponibilità nel condividere le tue conoscenze, te li avevo già fatti per il tuo utilissimo script RAI: una delle tue milestone qui sul blog 😉

    Visto che avevi chiesto una collaborazione nell’integrazione dell’articolo anche da parte di noi lettori, spero di essere d’aiuto e di soddisfare le esigenze di qualcuno su questo piccolo ostacolo che cerco di aggirare, a tempo perso, ormai da almeno una decina di giorni. Ma non volevo disturbare a chiedere e a trovare la soluzione da soli c’è più gusto!!-))

    Premetto che ho letto bene tutto l’articolo e tutti i commenti prima di ripiegare sul metodo che sto per esporre per registrare flussi HDS/f4m.

    Scoperto da poco il sito di streaming VVVVID.it di cui anche qui si è abbondantemente parlato, ho voluto cimentarmi per prova nelle tecniche, un pochino manuali, che avevi spiegato nell’articolo. Tutto bene. Finchè non mi sono imbatutto per caso in una delle puntate di questa serie (a quanto sembrerebbe piuttosto trash e di cattivo gusto IMHO, con tutto rispetto per chi ama il genere; ma ai nostri fini non è questo che conta).

    Ad es.: http://www.vvvvid.it/#!show/399/shameless/396/486298/stagione-1-episodio-02

    Il punto qua invece è che abbiamo un flusso che richiede una autenticazione “a tempo limitato” attraverso un token ed un cookie che, dopo pochi istanti, scadono rendendo inaccessibile il manifest.

    Così come, per qualche altro motivo che invece non mi è chiaro, del tutto irraggiungibile è il file m3u8 (sia attraverso uno user agent switcher, che attraverso gli strumenti sviluppatore di chrome, che addirittura fisicamente da un browser di un device mobile: su tablet e smartphone, almeno per quanto riguarda questa serie e tutti gli altri contenuti che seguono lo stesso iter di streaming, funzionano quindi solo le app dedicate di iOS e Android).

    Ah, l’autenticazione mi pare di capire che è solo per un problema di login e di credenziali utente che a VVVVID interessa avere, non per una questione di DRM (altrimenti, ovviamente, non avrei postato; comunque se mi sbaglio sai già che fare). Come ci hai prima accennato nell’articolo e poi insegnato a pagina 11 dei commenti, rispondendo a Sergio, qui dobbiamo ahinoi usare AdobeHDS.php. Ma vedremo che non è poi neanche tanto male.

    Dopo aver configurato e testato PHP, dopo aver configurato e testato AdobeHDS.php, per accertarci che tutto funzioni a dovere — magari con qualche video non protetto di prova — nella registrazione di un flusso f4m con il comando base che ci hai indicato proprio poco sotto la risposta a Sergio, dobbiamo ora installare sul nostro browser Mozilla (Firefox o derivate) una simpaticissima estensione chiamata HDS link detector.

    HDS link detector una volta installato e attivato (l’icona dev’essere rossa), nel momento in cui avvieremo il nostro video sul browser, si occuperà quasi istantaneamente di compilare per noi lo script, il comando adatto insomma, a registrare il nostro streaming.

    Sarò più chiaro: abbiamo detto che lo “m3u8” non è raggiungibile/utilizzabile e quindi lo scartiamo in partenza; il manifest f4m invece ce l’abbiamo peccato che rimanga valido soltanto per pochi attimi. Quindi sarebbe veramente una missione impossibile andare a spulciare manualmente l’indirizzo URL del f4m nella console sviluppatore dei browser o anche attraverso “Firebug” e copiarlo per tempo nella finestra del nostro terminale (prompt cmd, xterm e compagnia bella).

    Saremmo troppo lenti anche utilizzando altre estensioni che selezionino per noi solo gli elementi multimediali della pagina, ad es. GAM (Grab Any Media), e predisponendo il resto della stringa terminale in anticipo riservando uno spazietto vuoto solo per l’URL, arriveremmo sul filo del rasoio della scadenza del token, ma comunque troppo tardi: la risposta di AdobeHDS sarà a grandi linee che è riuscito a calcolare la qualità video che abbiamo richiesto e il numero di frammenti da scaricare, contraddittoriamente ci dirà che il manifest era irraggiungibile, poi silenzio…in poche parole non ha fatto in tempo a partire!! Provare per credere!!

    Dobbiamo essere molto veloci… HDS link detector ci serve per questo.

    Ecco cosa faremo:

    1. apriamo il terminale
    2. rechiamoci al path in cui c’è il nostro AdobeHDS.php per es. in windows
      code:

      cd "C:/Users/MyUserName/Downloads/Scripts-master"
      

      (se seguite la risposta a Sergio di Andrea è probabile che sia dentro la cartella Scripts-masters infatti)

    3. apriamo il browser
    4. disponiamo le due finestre, quella del terminale e quella di Firefox, una di fianco all’altra
    5. apriamo la pagina col nostro video e aspettiamo che parta. Teniamoci pronti!
    6. ecco! Ora in basso a destra nel browser è comparso il pop-up rosso di HDS link detector. Clicchiamoci sopra una volta col tasto sx per copiare negli appunti il nostro script.
    7. in fretta in fretta! Spostiamo il cursore in un punto qualsiasi della finestra terminale e facciamo tasto destro
    8. ora se siete dei video giocatori esperti fate incolla e poi invio; oppure aiutatevi con le freccette della tastiera per raggiungere “incolla/paste” e poi premete invio 2 volte; se avete Linux non fate tasto destro ma fate direttamente tasto-rotellina e poi invio… Lazza vi aveva avvisato che linux è meglio !! 😉 )
    9. fatto. Se tutto è andato per il verso giusto e voi siete stati abbastanza veloci AdobeHDS.php è riuscito a “sincronizzarsi” col periodo di validità del token e con il cookie che convalida la vostra sessione. Ora aspettate la fine del download e vi ritroverete un video in formato FLV all’interno della stessa cartella che contiene AdobeHDS.php, forse il video avrà un nome bizzarro ma da questo punto di vista ci dobbiamo accontentare e rinominarlo in seguito.
    10. Buona Visione!! :-))

    P.S.: Lazza, ho visto che a ragione ti sei lamentato con uno dei lettori perché si era registrato con una e-mail falsa. Io per correttezza ti anticipo che la mail che ho usato per registrarmi è mia, ma semplicemente è una mail “di scorta” che ho fatto molto tempo fa senza mai usare, tenuta per evenienze come questa.

    P.P.S.: edita il post in brevità o scorrevolezza, se preferisci.

    P.P.P.S.: googlando in giro cercando di trovare una soluzione al problema inizialmente avevo pensato di reperire manualmente nelle richieste di rete il token e il cookie, ma non ho ancora capito come fare (in ogni caso non credo avrebbe funzionato perchè sarebbero scaduti prima di poter essere utili). Poi come vedi ho trovato una soluzione alternativa ma mi è rimasto l’amaro in bocca…Tu per caso sai come fare?

    Se ti va bene mandami pure un e-mail spiegandomelo quando puoi, o se per esigenze di privacy ti va meglio rispondermi anche in merito ai post scriptum sui commenti del blog, beh per me no problem 😉 ) Ah, già che ci siamo ti chiedo se tu saresti stato in grado di raggiungere l’m3u8 magari sniffando il traffico di una app mobile o in altro modo, sono qui per imparare.

    ciao e grazie

  31. Andrea, per video protetti intendo quelli che Youtube non consente di scaricare, impedendo ai programmi appropriati (usando Chrome, ad esempio quelli on-line Video Grabby , ClipConvert , http://www.youtube-mp3.org/it , ecc.) di fare il download. Ecco un paio di esempi di risposte automatiche: “Si è presentato un errore causato da Youtube, non possiamo convertire questo video! Questo errore è spesso causato da problemi legati al copyrigth o alla lunghezza del video. Noi possiamo convertire video al massimo di 20 min” (ma per me non si è trattato assolutamente di video di questa durata); oppure: “This video is not available”; ecc. Ciao.

Lascia un commento

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