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
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, e vi è piaciuto il post, potete offrirmi un caffè cliccando sul bottone. 🙂 Se lo fate, per favore lasciate una nota indicando che è per questo articolo.

Caffè

1.036 pensieri su “Scaricare i contenuti audio e video presenti nelle pagine web — Guida completa

  1. Spiegami passo passo tutto ciò che hai fatto così vediamo se c’è qualcosa da modificare nel procedimento. 🙂

  2. Ciao, innanzitutto volevo ringraziarti per la guida davvero ben fatta, inoltre volevo chiederti un piccolo aiuto dal momento che avevo bisogno di scaricare un video da http://www.fastvideo.eu.
    Avviando il video e cliccando col tasto destro del mouse ho constatato che si trattava di un video in Flash, tuttavia l’icona di Download Helper non si “accendeva”, a quel punto premuto CTRL+U e si è aperta la finestra con il codice (in Javascript). Ed ecco il problema: non sono riuscito a capire quale pezzo di codice facesse a caso mio.
    Ancora complimenti per la guida e grazie per la tua disponibilità.

  3. Sulla homepage di quel sito non c’è nessun video… Potresti linkarne uno? Ovviamente che non sia roba pirata.

  4. Ok, allora, nel codice della pagina c’è un pezzo di Javascript offuscato, col solito packer trito e ritrito che usano tutti i siti che pensano di fare i “furbi” (non hanno molta fantasia), quindi è relativamente semplice. 🙂 Noti il codice interessante perché inizia in modo simile a questo:

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

    Una passatina veloce su JsBeautifier ti dovrebbe dare qualcosa di più gradevole:

    var tv_file_name = "21122012031.avi";
    if (top.location == location &amp;&amp; top.location.href.indexOf('embed') != -1) {
        document.location = 'http://www.fastvideo.eu/v98xhlfs7zkq'
    } else {
        jwplayer("fastvideo").setup({
            playlist: [{
                sources: [{
                    file: "rtmp://50.7.128.42:1935/vod?h=oajiximbnrs5j2hpahm2sggv7aved3i7swwz6pz3hm5uu3frllh3dfs5heca/mp4:22/1287799807_n.mp4"
                }, {
                    file: "http://50.7.128.42:8777/oajiximbnrs5j2hpahm2sggv7aved3i7swwz6pz3hm5uu3frllh25fs5heca/v.mp4"
                }]
    [...]
    

    Il secondo URL è bello comodo direi. 😀

  5. Non ho capito che c’entri Java in questo caso. 😛 Comunque sia il flusso è composto da assurdi frammenti con estensione .beat e mimetype video/x-beat (dichiarato, perché in realtà non esiste). Oltretutto nell’SWF fanno riferimento alla crittografia PKCS, quindi sarebbe da mettersi lì a vedere se veramente sono file cifrati con una chiave che poi ovviamente deve essere nell’SWF. Probabilmente lo fanno “così per fare” per confondere un po’ le idee a chi tenta un download.

    Insomma, vedi tu se ne vale la pena provare a decompilare l’SWF e mettersi a leggere il codice. Secondo me no. 🙂

  6. Ciao, grazie e complimenti per la guida che ci hai messo a disposizone.
    Da anni cerco di estrapolare video da vari siti usando varie plugin Firefox, alcuni software eccc ma ovviamente ora che si fa sempre più dura e con molti casi variegati andando sul tecnico come da te ben spiegati mi sto cimentando ora pian piano.
    Ad esempio come riesco a scaricare il video Flash della pagina sottostante..?
    I vari plugin Firefox rimangono “morti” e cercando nella pagina sorgente non riesco, puoi illustrarmi questo caso/esempio..? Grazie mille.

    http://www.cineblog.it/post/425540/step-up-all-in-il-cast-al-giffoni-2014-ryan-guzman-lorella-boccia-e-gue-pequeno

  7. puoi illustrarmi questo caso/esempio..?

    Sì, in questo caso è abbastanza semplice. 🙂 Innanzitutto, nel codice trovi facilmente lo script che carica il player:

    script type="text/javascript" src="http://bvideo.blogo.it/players/d23prjyH-JJ1N6kxA.js"
    

    È interessante perché ha un nome strano, quindi presumibilmente ne caricano uno diverso per ogni video. Questo ci fa capire che deve contenere la configurazione del singolo video. E in effetti, guardandoci dentro… 😛

    [...]
    image: "http://bvideo.blogo.it/thumbs/d23prjyH-320.jpg",
    logo: {"position": "top-right", "margin": "10", "hide": false, "file": "http://assets-jp.jwpsrv.com/watermarks/4kjoYjmZ.png"},
    playlist: "http://bvideo.blogo.it/jw6/d23prjyH.xml",
    [...]
    

    Il file XML ci permette di trovare in modo comodissimo il file con vari flussi e formati:

    <jwplayer:source file="http://bvideo.blogo.it/manifests/d23prjyH.smil"/>
    <jwplayer:source file="http://bvideo.blogo.it/manifests/d23prjyH.m3u8"/>
    <jwplayer:source file="http://videos-jp.jwpsrv.com/vwjCxf9L/videos/d23prjyH-3207059.mp4?77c801d752d5207784c49e7ed80fb953798fae0fcca03ecf79558595a775b50b42882ce1fab16e12e6ccea750b03b711e4c532f4f6f985a2f435c9c56ddb5fc30ea7eaf750bcf145240376412066c923fb3120596e"/>

    L’ultimo è persino in MP4. Cosa volere di più? 😀 Occhio che ovviamente tutta la parte della query string potrebbe essere diversa, probabilmente quel pezzo di lettere e cifre viene cambiato per ciascun utente. Quindi estraiti tu l’URL “giusto” seguendo tutti i passaggi. 😉

  8. Fantasticoooo..!!
    Ho provato anch’io a fare i passaggi, ovvero copia-incolla dell’xml, ho salvato poi il file .smil ed editato poi con BloccoNote indi copia-incolla del terzo e lunghissimo url source et voilà, Firefox mi apre 77MB di file mp4 di qualità.
    Grazie mille..!! Ciao

  9. Ciao Andrea
    perdona innanzitutto la mia ignoranza…ho cercato in vari modi il Codice sorgente di queste pagine, Tipo :

    http://aftersales.fiat.com/elum/vintage/Model.aspx?brand_code=84&id_language=1&id_model=6d893867-6ee9-4322-bc51-0bdd6010e345&market_code=IT&cat=lib&part_number=#1

    per estrpolare il manuale che credo dovrebbe essere in .pdf ma non riesco proprio a risalire al link
    diretto…..!!!!
    mi capita spesso di ritrovarmi questo tipo di pagine e non poter estrapolare il contenuto (tipo Brouschure)
    come ad esempio :

    http://www.doveconviene.it/viewer/105604/1/Napoli?utm_source=alert&utm_medium=email&idc=41
    queti ultimi incorporati in Adobe Flash Player o Silverlight….!!!

    Potresti gentilmente spiegare tutti i passaggi su come procedere ???

    Grazie in anticipo…
    Max17

  10. per estrpolare il manuale che credo dovrebbe essere in .pdf

    In realtà si trova facilmente che non è così, bensì sono immagini PNG singole:

    Imgur

    La prima è la 0 e sono tutte di questa forma:

    http://aftersales.fiat.com/eLumData/IT/84/901_AlfaRomeoGiuliaSuper/84_901_AlfaRomeoGiuliaSuper_000.00.000_IT_01_05.67_LV/84_901_AlfaRomeoGiuliaSuper_000.00.000_IT_01_05.67_LV_0.png
    

    È sufficiente un semplice ciclo per scaricarle tutte, tipo così:

    for i in $( seq 0 99 ); do
        wget http://aftersales.fiat.com/eLumData/IT/84/901_AlfaRomeoGiuliaSuper/84_901_AlfaRomeoGiuliaSuper_000.00.000_IT_01_05.67_LV/84_901_AlfaRomeoGiuliaSuper_000.00.000_IT_01_05.67_LV_${i}.png
    done
    

    Ho scelto 100 come numero a caso messo tanto per dare un limite superiore, in effetti in quel caso sono 82 le pagine. 😀

    mi capita spesso di ritrovarmi questo tipo di pagine e non poter estrapolare il contenuto (tipo Brouschure)

    I volantini di quei supermercati si possono scaricare dal sito ufficiale, riportato in basso nel volantino stesso. 😉 In effetti generalmente i negozi hanno interesse che i clienti possano scaricare i volantini e mettono un pulsante apposito sul proprio sito.

  11. Molto utile la guida. Cosa fare invece nel caso di siti come VVVVID che usano server Wowza con frammenti?

  12. Come ho già scritto altre volte, non supponete che io conosca tutti i siti del mondo. 😛 Se mi mettete l’URL del video che vi interessa risparmiamo tempo. 😉

    Ad ogni modo, interessante ‘sto VVVVID. Se consideri una puntata a caso, cambiando lo user-agent come scritto nel post trovi subito il flusso M3U8 con Firebug:

    http://wowzaondemand.top-ix.org/videomg/_definst_/mp4:Dynit/Situazioni_di_lui_e_lei/Situazioni_di_lui_e_lei_Ep02.mp4/playlist.m3u8
    

    Niente di nuovo rispetto a quanto scritto nell’articolo. 🙂

    Questi media server solitamente includono più formati, quindi diventa alquanto semplice trovare il flusso RTMP:

    rtmp://wowzaondemand.top-ix.org/videomg/_definst_/mp4:Dynit/Situazioni_di_lui_e_lei/Situazioni_di_lui_e_lei_Ep02.mp4
    

    Per un’ulteriore praticità, puoi anche estrarre l’URL dell’F4M scrivendo nella barra indirizzi del browser questo comando Javascript:

    javascript:alert(vvvvid.player.config._playlist[0][0].src);
    

    Ti comparirà un URL molto simile a quello del manifest M3U8 e quindi potrai ricavare nello stesso modo l’URL dell’RTMP, che è quello più comodo da scaricare. 🙂

  13. Wow, mi hai lasciato senza parole dalla mole di informazioni che hai fornito.

    Non ho capito dunque quale versione consigli di scaricare. Inoltre avrei un gran dubbio: su un altro sito ho scaricato un episodio utilizzando rtmpdump ed è risultato di 670MB, con rtmpdumphelper (che usa rtmpsuck) invece di 120MB, e utilizzando HiDownload (un altro programma ancora) di 400MB. La cosa davvero incredibile è che si vede perfettamente identico in tutte e tre le dimensioni. Altra cosa che ho notato è che se sto scaricando altre cose nel contempo, il video “registrato” potrebbe uscire con qualche perdita di informazioni e frame distorti. Tu sai spiegarmi il perché di tutto questo? Inizio ad essere davvero confuso e non sapere a quale tool affidarmi per ottenere la dimensione originale.

    Per manifest intendi il formato dei file (m3u8, f4m, ecc) contenente la lista dei contenuti di una distribuzione?
    Mi interessa capire a fondo l’argomento.

    P.S. Ti sarei grato se potessi modificare il nickname del post precedente.

  14. Non ho capito dunque quale versione consigli di scaricare.

    Quello che ritengo più comodo credo di averlo già scritto. 😛

    potrai ricavare nello stesso modo l’URL dell’RTMP, che è quello più comodo da scaricare

    Riguardo ai vari programmi, dipende se ricodificano oppure no, se per caso ci sono vari livelli di qualità / bitrate sul flusso, eccetera. Io personalmente preferisco usare quelli che non ricodificano, a meno che non sia assolutamente necessario.

    se sto scaricando altre cose nel contempo, il video “registrato” potrebbe uscire con qualche perdita di informazioni e frame distorti. Tu sai spiegarmi il perché di tutto questo?

    Be’ stiamo sempre parlando della registrazione di un flusso in diretta. Se qualcosa ostacola la ricezione può succedere che qualche frame venga saltato. 🙂

    Per manifest intendi il formato dei file (m3u8, f4m, ecc) contenente la lista dei contenuti di una distribuzione?

    Sì esatto, intendo proprio il file descrittore che contiene i dettagli sulle varie qualità disponibili. Nel caso di M3U8 è un formato di testo abbastanza semplice, nel caso di F4M è un file XML.

  15. Ti ringrazio per la risposta, però non hai soddisfatto il mio dubbio sul perché delle diverse dimensioni (in nessun caso ho impostato una recodifica). Ho notato infatti che, quando rtmpdump scarica, la percentuale fa continuamente balzi indietro, e sembra dunque che nel file in uscita vengano inserite una miriade di informazioni ridondanti, o almeno questa è la mia interpretazione. Ho provato anche la registrazione senza codifica di VLC, ma alla fine ho notato che non si interrompe in automatico la registrazione (rimane il tasto pausa cliccabile), anche se ha chiaramente concluso di scaricare.

    Onestamente, dopo i miei vari test, direi che rtmpdumphelper (rtmpsuck) sembra essere il migliore in quanto la qualità è perfetta e la dimensione ridotta all’essenziale, visto che non fa altro che intercettare il traffico in uscita sulla porta 1935 (rtmp) facendo una copia in locale. Faccio sempre almeno 2-3 registrazioni con confronto di CRC per verificare di non aver perso pacchetti e direi che il risultato finale è eccellente. Il problema nasce però da siti come VVVVID nei quali non è in grado di trovare da solo il flusso dello stream. Quindi, come potrei fare in questi casi per usare sempre rtmpsuck? Gli altri metodi di registrazioni non mi sembrano altrettanto efficienti, rtmpdump per primo lo trovo scadente; facendo il test con un filmato di VVVVID ho ottenuto 548MB con VLC, mentre rtmpdump se non lo fermavo superava i 4GB. Mi piacerebbe capire di più su come funzionino realmente.

  16. ciao
    prima di tutto ti faccio i miei complimenti.
    poi ti chiedo se puoi di darmi qualche informazione sui live di sportube.tv
    ti trascrivo la sorgente durante una trasmissione live
    grazie!

    [tagliato]
    
  17. Onestamente, dopo i miei vari test, direi che rtmpdumphelper (rtmpsuck) sembra essere il migliore in quanto la qualità è perfetta e la dimensione ridotta all’essenziale, visto che non fa altro che intercettare il traffico in uscita sulla porta 1935 (rtmp) facendo una copia in locale.

    Giustamente come dici tu, rtmpsuck è fa il dump dei pacchetti che passano per la porta 1935, quindi si affida in tutto e per tutto al player in Flash. Mettiamo il caso che il player in Flash scelga un bitrate inferiore a quello massimo disponibile (su RTMP esistono le qualità multiple). Questo potrebbe giustificare una differenza, visto che (a quanto ne so) rtmpdump non permette di selezionare nessuna qualità e usa la massima disponibile. È comunque assai difficile fare “diagnosi” al buio, bisognerebbe vedere di persona…

    Gli altri metodi di registrazioni non mi sembrano altrettanto efficienti, rtmpdump per primo lo trovo scadente; facendo il test con un filmato di VVVVID ho ottenuto 548MB con VLC, mentre rtmpdump se non lo fermavo superava i 4GB

    La cosa buffa è che VLC usa RTMP tramite libav, libreria che basa il proprio supporto RTMP su rtmpdump. 😀 Può essere che dipenda dalla versione, mi pare di capire che purtroppo usi Windows, quindi ti tocca stare con la 2.3 che è l’unica versione di rtmpdump che funziona sempre (nel senso che perlomeno parte).

    Premettendo che registrarlo con VLC mi sembra una buona soluzione, se preferisci rtmpdump sarebbe da procurarsi una buona versione 2.4. Io uso quella e in genere non ho mai problemi. Alternativamente puoi usare avconv che usa libav (o il più vecchio ffmpeg). Chiaramente usando Linux è più comodo (oltre che più piacevole), ma questo è ovvio. 🙂

    Mario Rognoni, è un’impressione mia o hai tentato di incollarmi decine di righe di HTML nel commento? 😮

    Ad ogni modo… Sulla pagina “live” del sito basta cambiare user-agent (come scritto nel post) usando quello di un dispositivo Android (stranamente in ‘sto caso quelli dei device Apple non vanno) e trovi subito i flussi M3U8. 🙂 Per esempio, quello del “live1” è il seguente:

    http://hwg-live.hls.adaptive.level3.net/hls-live/noovle-hwg01/_definst_/live.m3u8
    

    Buona registrazione!

  18. Allora, scusami ancora: ho cambiato user agent con una stringa android che ho trovato in rete.
    Ho installato user agent ma l’unica riga dove trovo m3u8 è:
    constructor loadliveplayer(rtmp, m3u8)
    nelle proprietà DOM.
    Nel codice html, anche espandendo tutti i livelli, non trovo nulla (tieni conto che ora il live1 è terminato ed è online il live3.
    Grazie!

  19. Veramente esiste rtmpdump 2.4 anche per Windows, ed è infatti l’unica versione che ho sempre utilizzato. Per quanto riguarda i bitrate, guardando il file smil o altro non ne ho visti di multipli, quindi non penso ne usi uno inferiore.

  20. Mario Rognoni, forse ti è sfuggita. Controlla meglio:

    Imgur

    Mario,

    Veramente esiste rtmpdump 2.4 anche per Windows

    Certo, ma va davvero malissimo, un po’ come tutte le cose su Windows. 😛 Perlomeno nelle prove che ho fatto io e anche altri lettori. Per quello sia in questo articolo che altrove ho scritto frasi simili alla seguente:

    per Windows vi consiglio di usare esclusivamente la versione 2.3 linkata sotto

    Poi chiaro, rimane sempre la possibilità di registrare con avconv o altri strumenti. 🙂 L’importante è il risultato, non tanto cosa usi… anche su una piattaforma sgradevole e scomoda come Windows probabilmente si riesce a ottenere qualche risultato buono facendo alcune prove.

  21. Cosa intendi che va davvero male su Windows? Che tipo di problemi dovrebbe dare? Comunque proverò a controllare i bitrate dei file scaricati in entrambi i modi. VLC che versione di rtmpdump utilizza per curiosità? Il file risultante non mi risulta uguale a quello di rtmpdump.

  22. Mario, be’… è pur sempre Windows. 😀 Più specificamente, ho visto di persona flussi RTMP tranquillissimi per i quali rtmpdump 2.4 non partiva nemmeno sotto Windows, crashando immediatamente, mentre la 2.3 non ha mai dato problemi. Se sei per qualche motivo costretto a utilizzare Windows (che brutta cosa!), ti conviene provare la 2.3.

    Come dicevo prima, VLC non usa rtmpdump, ma libav (che poi è in parte basato sul predetto), quindi rimane valido quanto detto prima:

    Alternativamente puoi usare avconv che usa libav (o il più vecchio ffmpeg).

    Questo sempre fermo restando che rimane preferibile passare a un sistema operativo gratuito, sicuro, moderno e funzionale.

    Leonardo,

    sembra che non interpreti correttamente la durata de video (su tutti i video)

    A dire la verità è il primo manifest di Mediaset che vedo dare problemi del genere, su numerose altre trasmissioni non ho mai avuto difficoltà. Che programma televisivo è? Può sempre essere un problema del loro sito (anzi, è probabile).

  23. Grazie della risposta, il programma è uomini e donne, ho scoperto che quando escono solo due formati video (quindi la maggior parte dei video) Smooth streaming | Video MP4 il download con ismdownloader non funziona o meglio scarica sempre un file di 5 secondi, sui video in cui compaio 3 formati video Video: WMV | Smooth streaming | Video MP4 il download funziona correttamente.
    Inoltre ho scoperto che nelle pagine dove lo script rileva solo 2 formati video la qualità è più bassa anche del file mp4. (le prove lo ho fatte sulle punatet del 13 agosto).

  24. Fantastico, grazie!
    Purtroppo era errata la stringa per android di user agent switch ed ora che ne ho inserita una corretta firebug trova il flusso.
    Fin qui ci siamo. Ora ho semplicemente inserito l’indirizzo del flusso in vlc che lo riproduce perfettamente. Quindi sto provando a salvarlo direttamente da vlc (che ovviamente mentre salva non mi fa vedere nulla).
    A proposito: è possibile che l’indirizzo del flusso live sia esattamente identico a quello che mi hai indicato ieri ?
    Poi ti aggiorno. Grazie ancora

  25. Leonardo, io personalmente ho avuto modo di registrare i flussi Smooth Streaming delle prime serie de “i Cesaroni”, dove ci sono solo due link (Smooth Streaming e video WMV) e ci sono riuscito. Mi sa che varia un po’ da programma a programma. Almeno gli MP4 in quei casi vengono fuori interi? 🙂

    Mario Rognoni, ottimo!

    Quindi sto provando a salvarlo direttamente da vlc (che ovviamente mentre salva non mi fa vedere nulla).

    In un certo senso, qualcosa si può fare. Per esempio, potresti aprire un’altra istanza di VLC e fare play del file che stai registrando, dovrebbe mostrarti la parte che ha già registrato. Così dovresti avere la situazione sotto controllo, e al limite sbagliare di qualche secondo.

    è possibile che l’indirizzo del flusso live sia esattamente identico a quello che mi hai indicato ieri ?

    Non ci vedo niente di strano, in fondo è una diretta… cosa ci guadagnerebbero a cambiare ogni volta URL? 🙂

  26. ciao Andrea, complimenti per la pazienza che hai!!
    e soprattutto si vede che questa tua conoscenza è dettata da passione perché solo con lo studio non avresti avuto un ventaglio così ampio di soluzioni e strade per arrivare ai problemi che ti sottoponiamo..
    io (quasi m’imbarazzo per la così futile richiesta) vorrei solo trovare l’url dello streaming per poterlo inserire a piacimento in un sito, piuttosto che su fb oppure altri metodi di condivisione.
    il sito in questione è:
    http://www.vedetta.org/locations.php?view=28
    vorrei poter inserire il video senza tutti quei fronzoli, per poterlo far partire senza dover cliccare..
    ringraziandoti anticipatamente ti faccio anche gli auguri di buon ferragosto. (meglio tardi che mai!)
    Marco

  27. Aggiorno: Vlc registra in buona qualità (formato transcode .ts) ma ogni tanto l’immagine fa un piccolo salto.
    In rete ho trovato numerosi commenti favorevoli su pot player e l’ho provato. in effetti 45 minuti di immagini perfette senza nessun salto, sempre in .ts, anche se di qualità inferiore rispetto a vlc. unico problema grave purtroppo la sincronia audio video che si perde pian piano.
    naturalmente devo fare ancora qualche prova, mentre il fatto di non vedere mentre registro non è poi un grosso problema nel senso che il motivo per cui registro è appunto perché non sempre posso vedere in live . . .

  28. Marco Franco, grazie dei complimenti. 😀 Quel sito non è troppo difficile, se guardi nel codice trovi subito il player e all’interno le FlashVars:

    Ora, l’unica “rottura” è che lo stream è un po’ nascosto perché scritto solo con maiuscole, minuscole, numeri, e qualche simbolo (notare il simbolo “=”). Questo semplicemente perché l’hanno scritto in base64… Nessun problema, basta usare un qualsiasi decoder online (oppure base64 -d da terminale) e trovi:

    rtmp://95.110.157.56:1935/streamtorvaianica;streamtorvaianica;925;422;live;-1
    

    Bene, è evidente che il sito usi RTMP, non ci sono dubbi. A questo punto abbiamo ‘sti pezzetti di URL da ricomporre. All’inizio non mi era chiarissimo, perciò alla fine ho deciso semplicemente di usare rtmpsrv perché mi sembrava la strada più semplice.

    L’output del programma è stato:

    rtmpdump -r "rtmp://95.110.157.56:1935/streamtorvaianica" -a "streamtorvaianica" -f "LNX 14,0,0,145" -W "http://www.vedetta.org/vplayer.swf" -p "http://www.vedetta.org/locations.php?view=28" -y "streamtorvaianica.stream" -o streamtorvaianica.stream.flv
    

    A parte i fronzoli come il referer, la versione di flash, eccetera, alla fine attaccando i due parametri che servono (cioè -r e -y) trovi l’URL:

    rtmp://95.110.157.56:1935/streamtorvaianica/streamtorvaianica.stream
    

    In sostanza c’era da concatenare i primi due pezzi che avevamo trovato sopra e scrivere .stream alla fine. Suppongo che per le altre pagine del sito sia sostanzialmente lo stesso procedimento, quindi puoi pure risparmiarti di usare rtmpsrv. 🙂

    Mario Rognoni, Pot Player sembra esistere solo per Windows… Ad ogni modo, credo che la registrazione possa funzionare anche con mplayer. La registrazione comunque è il dettaglio minore, il punto solitamente è trovare gli URL giusti. 🙂

  29. Ok. mi fermo qui perchè penso che le mie peripezie non interessino e mi dedico allo studio . . . Grazie ancora per l’attenzione prestata e gli ottimi suggerimenti.

  30. Esiste un parametro per dire a rtmpdump di attendere il frammento di video successivo senza ritornare indietro con la percentuale? Una specie di delay/tempo di attesa dall’ultimo pacchetto ricevuto. Mi sembra di aver visto tempo fa una cosa del genere in cui si usava un buffer o non so cosa. Questo era fatto appunto per evitare di appesantire inutilmente il file con le stesse informazioni.

  31. Trovi tutti i parametri di rtmpdump all’interno della manpage, dando man rtmpdump nel terminale (sugli OS più dignitosi di Windows). 😛 Se ne trova anche una copia online: http://rtmpdump.mplayerhq.hu/rtmpdump.1.html

    A quanto pare dalla manpage il buffer di default è di 1 ora. Comunque provare con avconv secondo me merita un tentativo, rimanendo valido anche quanto detto prima. 😉

    Questo sempre fermo restando che rimane preferibile passare a un sistema operativo gratuito, sicuro, moderno e funzionale.

  32. In teoria quando faccio il dump raw tramite VLC viene utilizzato in automatico avconv con libav, no? Poi non se se VLC monti l’ultima versione o meno. Se volessi farlo manualmente con avconv come dovrei fare?

  33. Sì esatto, è proprio quella la questione, bisogna vedere che versione usa VLC. Per carità, se ti funziona con VLC usa pure quella, però se vuoi andare “sul sicuro”, per modo di dire, ti conviene usare direttamente avconv. 🙂

    Riguardo all’uso, è abbastanza semplice. Qualcosa del genere dovrebbe bastare per fare il dump senza conversione:

    avconv -i "rtmp://eccetera" -acodec copy -vcodec copy registrazione.mp4
    

    Dovrebbe mostrarti un riepilogo del lavoro di registrazione mentre lo fa. 😉

  34. Niente, mi dà un errore di libgcc mancante quando eseguo il file .bat. Ma poi non credo sia normale il comportamento di rtmpdump che ci mette ore ed ore a scaricare file che diventano di 4-5GB e il fatto che salti continuamente all’indietro con la percentuale. Essendo una registrazione di uno stream dovrebbe impiegarci il tempo del video, come avviene effettivamente con VLC.

  35. Ciao, grazie al famoso script Greasemonkey con Firefox scarico tranquillamente la versione mp4 dei video sul portale VideoMediaset ma la qualità purtroppo è bassina, ho seguito allora le istruzioni copiando l’url dello smooth sempre ottenuto tramite lo script e ho lanciato il tutto tramite il file batch+ismdownloader ma mi scarica solo un primo frammento di 5 secondi del file mkv e poi finisce, cosa sbaglio..?
    Grazie mille. Ciao

  36. Ops scusa Andrea, sono fuso..! 😛
    Comunque trattasi delle versioni integrali del tg5, e come per Leonardo, tramite il Manifest catturato dallo script, mi scarica sempre solo i primi 5 secondi.
    Non ho ben capito però, lo si potrebbe quindi scaricare tramite Rtmpdump?
    Devo trovare un url diverso..?
    Scusami ma sono le prime volte che mi cimento con queste procedure di download.

  37. tramite il Manifest catturato dallo script, mi scarica sempre solo i primi 5 secondi

    Sì, questo succede su alcuni loro video perché i manifest sono danneggiati. Ho provato con l’ultima puntata del TG5 sia con ismdownloader che con un altro software (smoothget) e infatti scaturiscono degli errori a causa del manifest malformato (colpa di Mediaset).

    Ho tuttavia sperimentato delle modifiche al software che ignorano gli errori (forse non è una cosa molto furba, però almeno con Mediaset sembra funzionare). Penso che farò un fork del codice, quando avrò un po’ di tempo libero, per implementare il fix. Poi pubblicherò un articolo in merito con istruzioni dettagliate, ovviamente solo per Linux. 🙂 Chi usa Windows o Mac, ha scelto volontariamente di farlo, mica gliel’ha ordinato il dottore. 😛

    Non ho ben capito però, lo si potrebbe quindi scaricare tramite Rtmpdump?

    No, questo non è possibile. Mediaset non fornisce i video in RTMP.

  38. Allora usando Windows sono fregato ma va beh, comunque tanto di cappello a gente come te che si dedica a queste prove e questi sviluppi condividendo poi il tutto ai lettori.
    Grazie. Ciao.

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google photo

Stai commentando usando il tuo account Google. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.