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. Ciao Lazza, per quanto riguardava il convertire l’audio in AAC e poi lo -strict experimental…
    derivava da una stringa di comando generata da uno script per Dplay trovato su “creasy fork”…
    Un saluto.

  2. Paradi, quel flusso è danneggiato. C’è poco che puoi fare, se non lo sistemano.

    Angelo, ah ma dici lo script di Daniele? Ok, però io francamente eviterei di ricodificare l’audio se non ti serve e se vedi che hai interruzioni nel download. Se proprio poi devi convertire l’audio, intanto registralo copiando il codec e poi fai la conversione in un secondo momento.

  3. Grazie Lazza,
    con questo invece mi dice “error when loading first segment “(e poi mette il percorso di un file .ts)
    e poi continua dicendo: “Invalid data found when processing input”
    ma il film in streaming va!!!
    Questo è il flusso in questione

    http://d39wiaoiffvl5v.cloudfront.net/final/A/alba_iffr_1200/alba_iffr.m3u8
    

    Potrei sapere perche? o se c’è rimedio? La stringo che ho usato io è la seguente:

    ffmpeg -i "http://d39wiaoiffvl5v.cloudfront.net/final/A/alba_iffr_1200/alba_iffr.m3u8" -acodec copy -vcodec copy -bsf:a aac_adtstoasc output.mp4

    Grazie

  4. L’esempio che hai postato è identico a quello di prima, stesso server, stesso formato. Ma poi, visto che hai menzionato il film che “si vede”… di quale sito di streaming legale stiamo parlando?

  5. Ciao Lazza, Il sito è https://www.festivalscope.com/all/, dopo una semplice iscrizione con mail gratuitamente si possono vedere i film in streaming. Solo che è lento e va a sbalzi e non è proprio il massimo vedere i film cosi, ehehe! Comunque i due esempi che ti ho scritto a me davano errori diversi. Per quello pensavo fossero due cose differenti. Ma c’è un rimedio alla cosa? Perché come dici te sarebbero danneggiati i flussi? C’è modo con i metodi da te insegnatici di scaricarli?

  6. Grazie, ora che mi hai detto di quale sito parliamo posso darti risposte più precise, potendo verificare direttamente. 😀

    i due esempi che ti ho scritto a me davano errori diversi

    A me in realtà no… se guardi, l’unica parte che cambia è il pezzo finale dell’URL.

    Perché come dici te sarebbero danneggiati i flussi?

    Rielaboro il discorso in altre parole. Quando si tenta di accedere direttamente al file M3U8, non vengono restituiti frammenti “normali” di un flusso H264/AAC o qualsiasi altro codec normalmente usato nei video online. È probabile che i pezzetti siano leggermente modificati in modo che solo il player in Flash li legga.

    Potrebbero avere fatto lo XOR su qualche byte con un valore prefissato, potrebbero richiedere che il client invii periodicamente un aggiornamento sul punto in cui sta riproducendo prima di proseguire con i frammenti successivi (il web player lo fa), o potrebbero fare mille altre cose banali ma “insolite” per controllare l’accesso al flusso.

    Per questo li ho definiti danneggiati, nel senso che non sono fatti nel modo che ti aspetteresti. In sintesi, non val la pena perderci ore e ore a cercare di capire cosa hanno combinato.

  7. Grazie Lazza, sei un mostro nel campo. Ho chiesto a vari siti e blog e persone. Te sei stato l’unico a darmi una risposta concreta! Grazie, continuerò a seguirti.

  8. Figurati, mi spiace solo che non sia stata una risposta molto ottimistica. Se il problema è principalmente che vedi a scatti, mi sa che ti conviene lasciare bufferizzare il video per alcuni minuti prima di iniziare a guardarlo.

  9. chiedo anch’io per vvvvid jojo.
    ho provato con diversi link ma danno tutti errore:

    http://vvvvid-vh.akamaihd.net/i/Dynit2/Jojo/JojoDiamond_S04Ep08_VSgumlIxFzsGEIq8m.mp4/index_0_av.m3u8
    http://vvvvid-vh.akamaihd.net/i/Dynit/Jojo/JojoDiamond_S04Ep08_VSgumlIxFzsGEIq8m.mp4/index_0_av.m3u8
    

    VSgumlIxFzsGEIq8m questa parte varia sempre da quanto ho capito (la ricavo con downloadhelper).

  10. @LAY ad occhio sono sbagliati i tuoi, dovrebbero essere simili a:

    http://vvvvid-vh.akamaihd.net/i/Dynit2/Jojo/JojoDiamond_S04Ep08_VSgumlIxFzsGEIq8m,,.mp4.csmil/index_0_av.m3u8
    

    dopodichè vari diverse cose, tra cui Dynit/Dynit2, togliere e metter l’ultima m, i/j ed altri che trovi nei post precedenti. Tutte cose che ho già fatto comunque, non funzionano.

  11. @LKLK Quindi per ora non c’è niente da fare?
    Ieri ho provato anche con flashgot e con youtube-dl ma non ho avuto alcuna fortuna.
    Beh, nel peggiore dei casi posso sempre usare un programma per registrare lo schermo e l’audio del computer (anche se quando avevo provato avevo avuto qualche problemino con vvvvid).


    ho fatto una prova con l’episodio 7 di Jojo. Con il programma che uso attualmente per registrare lo schermo tutto funziona a dovere tranne per il fatto che gli fps sono leggermente inferiori rispetto alla fonte originale (se nel video originale sono 30 fps, nel registrato sembrano sui 20-25… forse però è solo lo streaming che ogni tanto non è fluidissimo).
    Farò qualche altra prova con qualche altro programma poi cercherò di scrivere qui il migliore che ho trovato, in ogni caso il problema di trovare la sorgente rimane.


    Mi scuso per il terzo messaggio consecutivo ma ho trovato un programma davvero soddisfacente tra quelli open source (visto che non uso windows fraps non lo potevo usare): OBS Studio

    Con codifica fast e smanettando un po’ con le opzioni ho ottenuto un video perfetto. Tra l’altro con il programma che usavo precedentemente l’audio veniva registrato più basso del normale cosa che con OBS non succede. Si può anche nascondere il cursore durante la registrazione.

    Fatto questo basta tagliare i pezzi che non interessano (l’inizio e la fine dove si vede la finestra di vvvvid e la pubblicità in centro) e la registrazione va che è un piacere.

    Rimane molto meno comodo che il download (con il download anche se la connessione è occupata non ci sono difetti di buffering vari, non ci sono le due pubblicità a metà episodio, non bisogna lasciare il computer registrare (quindi si può fare altro mentre registra) e non c’è pericolo di dover ripetere la registrazione per colpa di un errore dello streaming)… ma almeno se si vuole conservare una serie per il futuro, una serie che difficilmente uscirà in dvd/bd, che potrebbe andare offline (anche vvvvid ogni tanto perde i diritti), si può ancora mettere da parte.

    Continuerò ad effettuare prove per il download e a tener d’occhio questo post… se scopro qualcosa scriverò qui.

    1. Grazie per aver condiviso le utili informazioni che hai messo nel commento. Ti ho inserito il link a OBS Studio.

    2. Ragazzi, mettetevi il cuore in pace per quel che concerne Jojo Diamond, il suo caso (come quello di almeno un altro che ora mi sfugge) è diverso rispetto agli altri anime.
      In pratica la licenza di Jojo non è totale ed ha restrizioni proprio nello streaming. Quindi se è vero che Dynit (che fornisce gli anime a VVVVID) può pubblicare e vendere Jojo, non è vero che lo può dare in streaming (anche se dal link non si direbbe). Ed infatti in questo caso lo stream è molto più complesso con chiavi che vengono passate ogni tot per decodificare i segmenti video e così via.
      A conferma di ciò (oltre ad un articolo di cui purtroppo non trovo il link adesso) ci sono altri anime della stagione attuale, come Boku non hero accedemia, che continuano a funzionare col “vecchio sistema”. Se VVVVID avesse cambiato le carte in tavola non avrebbe avuto senso farlo per solo alcune serie.

  12. @Roberto vorrà dire che ci accontenteremo della registrazione manuale. quella non la possono bloccare (o almeno credo…).

    1. @LAY La registrazione dello schermo non la possono bloccare in alcun modo, perciò un modo c’è sempre.
      A voler fare i precisini si potrebbe pure (come già spiegato da Lazza) cercare di scoprire come funziona il player e tutto il sistema di scambio delle chiavi per recuperare lo stream. Ma è un “lavorone” e bisognerebbe essere mooooooooooooooooooooolto motivati per farlo oltre che avere solide conoscenze informatiche. Insomma il modo ci sarebbe ma non è detto che il gioco valga la candela.

  13. Ciao Andrea, grazie per questo articolo, sei riuscito ad aiutarmi un paio di volte qualche tempo fa. Adesso però sto avendo dei problemi nello scaricare delle video-puntate su ctv.ca, per esempio questo: http://www.ctv.ca/DrOz/video.aspx?vid=871587

    Per riuscire a vedere il video devi risultare canadese, io ho usato Hotspot shield (e senza adblock altrimenti si arrabbia). Ho provato in tanti modi a scaricarlo, partendo da Internet Download Manager, GetThemAll e Video DownloadHelper: qualcuno mi trova solo le pubblicità, GetThemAll invece mi trova tantissimi pezzetti con un formato tipo .segment. Ho trovato delle cose su Internet, per esempio il sistema di AdobeHDS, ma quando lo faccio mi restituisce questo errore:

    Unknow packet type encountered! encrypted fragments can't be recovered
    

    C’è un modo per riuscire a scaricare da questo maledetto sito? O devo registrare manualmente il video con un programma? Se devo rassegnarmi, sai se è possibile e come scaricare i sottotitoli?
    Grazie mille se mi risponderai!


    Ho provato ad usare AdobeHDS senza manifest con gli F4F scaricati grazie a GetThemAll ma mi da:

    This stream is encrypted with FlashAccess DRM. Decryption of such streams isn't currently possible with this script.
    

    È impossibile. 😀

    1. Come ti ha risposto anche lo script AdobeHDS.php il manifest è criptato:

      http://ams-vp4.9c9media.com/hds-vod/ae/2016-05-18/0FAA6EA491377F06/CTV-1097199-TheDrOzShow-S7E153-001-Adaptive_01-pd1.mp4.f4m
      

      Anche il flusso m3u8, facilmente ottenibile con un po’ di guessing è cifrato:

      http://ams-vp4.9c9media.com/hls-vod/ae/2016-05-18/0FAA6EA491377F06/CTV-1097199-TheDrOzShow-S7E153-001-Adaptive_01-pd1.mp4.m3u8
      

      Bisognerebbe in qualche modo analizzare la app Android di questo sito, sperare che la chiave sia estraibile, poi dire a ffmpeg dove trovarla. Tantissimo lavoro, non vale la pena. 🙂

    2. Apri Firebug, ricarica la pagina e guarda le richieste HTTP quando li attivi. Vedi se per caso c’è un file SRT o JSON che li contiene.

  14. Ho cercato ma non ho trovato nulla di .srt, ci sono dei .json ma non contengono info sui sottotitoli… tu prima di rispondermi li hai trovati?

    1. Il post e i commenti servono a dare indicazioni. 🙂 Non posso svolgere analisi approfondite per tutti i siti che mi segnalare, perché ciò richiederebbe parecchie ore. Sviluppare software e fare consulenza è il mio lavoro, il blog lo uso per pubblicare articoli e scambiare pareri.

      Se non hai trovato dati utili può anche essere eh, non è mica detto che sbagli per forza qualcosa. Alcuni siti web offuscano i dati in modo particolare e richiedono uno sforzo immane per tirare fuori i contenuti.

  15. Salve a tutti.
    Ciao Andrea, ho letto la tua guida e in passato, mi è stata molto utile: grazie di cuore.
    Ora però mi sono imbattuto in un sito un pò ostico per le mie forze….
    Dal sorgente della pagina mi trovo subito un file .mp4, ma non me lo scarica. Poi anche un .m3u, ma anche quello vlc non ne vuol sapere…..
    Si tratta di una ripresa video di un consiglio comunale, quindi tutto perfettamente legale…. le ho provate tutte ma nulla.
    Il sito è: http://www.civitanovamarchetv.com/?idLive=75
    Ciao e grazie ancora.

    Marco

  16. mi trovo subito un file .mp4, ma non me lo scarica. Poi anche un .m3u, ma anche quello vlc non ne vuol sapere

    Io in realtà vedo un flusso RTMP e un flusso M3U8. Lasciando stare l’RTMP che non ho provato, direi di usare ffmpeg sull’altro, come spiegato nel post. Se lo lanci normalmente ti avviserà del flusso AAC malformato:

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

    Questa è una cosa che ho spiegato anche nel post, quindi vedi l’esempio nell’articolo su come usare l’opzione -bsf:a aac_adtstoasc. 🙂

  17. Hai ragione come sempre. Ho fatto come hai detto e il risultato è eccellente!!!
    Grazie mille.
    Una domanda ancora….. secondo te, perché uno dovrebbe fare un sito pubblico dove per scaricare un video bisogna essere minimo ingegneri informatici?
    Grazie.

  18. perché uno dovrebbe fare un sito pubblico dove per scaricare un video bisogna essere minimo ingegneri informatici?

    Io non sono ingegnere, ma il video l’ho scaricato lo stesso. 😀 Comunque boh… difficile dirlo, non so leggere nella mente umana. 🙂

  19. Arrivo a 30, ma non riesco a fare 31 a quanto pare…

    Parto da questo link: http://www.rai.it/euro2016/partita/Belgio—Italia-e530d334-fbb0-4628-9f34-1aaee305d514.html

    Guardo il sorgente, e finisco qui:

    https://uspushmp4sec2-vh.akamaihd.net/i/VOD/NewsVod/RaiSport/Euro2016Protected/5556607_,800,1200,1800,2400,3600,.mp4.csmil/master.m3u8?hdnea=st=1465915328~exp=1465915628~acl=/*~hmac=d99402426e69cff04834a371d6451ec5a7cc915aa6b6aa0db500cdfba3615b63
    

    E qui… mi fermo. Ho provato con ffmpeg, copiando questo link, ma non esce nulla. Poi:

    https://uspushmp4sec2-vh.akamaihd.net/i/VOD/NewsVod/RaiSport/Euro2016Protected/5555978_,800,1200,1800,2400,3600,.mp4.csmil/index_4_av.m3u8?null=0&amp;id=AgAly+oMAhLVD1MWYFevoASAA+vTkqpMbXabONX46igUeVNkke4QY9QMNEMaFwZEVh1RZP%2f+7KO6HA%3d%3d
    

    Dove caspiterina sbaglio? 🙂

  20. Ciao Andrea. Per favore mi puoi aiutare?
    Dal sito http://ren.tv/video/epizod/6095 ho trovato la stringa:

    rtmp:\/\/ren.cdnvideo.ru\/mc10\/mp4:10\/_files\/ext\/MEMBERS\/ren\/VIDEO\/__external_downloads\/2012\/06\/01\/5005\/5005.avi\/5005_5005_13_25.mp4
    

    convertita in:

    rtmp://ren.cdnvideo.ru/mc10/mp4:10/_files/ext/MEMBERS/ren/VIDEO/__external_downloads/2012/06/01/5005/5005.avi/5005_5005_13_25.mp4
    

    Con rtmpdump usando questo comando, non funziona.

    rtmpdump -R -r "rtmp://ren.cdnvideo.ru/mc10/mp4:10/_files/ext/MEMBERS/" -W "http://ren.tv/sites/all/libraries/jwplayer/jwplayer.flash.swf" -y "ren/VIDEO/__external_downloads/2012/06/01/5005/5005.avi/5005_5005_13_25.mp4" -o output.flv
    

    Che errore faccio?
    Grazie per l’aiuto.

    1. Come tutti gli informatici sono per le soluzioni pigre… visto che quella pagina ha anche un URL a un flusso M3U8 che funziona perfettamente, credo che tu faccia prima a usare quello. 😀

  21. Salve,
    Ci sono novità per i video su dynit2, è possibile fare qualcosa?

    php AdobeHDS.php --manifest "http://vvvvid-vh.akamaihd.net/z/Dynit2/Jojo/Jojo_S01Ep01m.mp4/manifest.f4m?hdnts=exp=1466440818~acl=/z/Dynit2/Jojo/Jojo_S01Ep01m.mp4/*~hmac=0eca9cedf7f3d25d40ccfcfd7576f0b425b4839efca5731f0f36ef42d76502c1&g=PXHGKMOBFFZD&hdcore=3.6.0&plugin=aasp-3.6.0.50.41" --delete --auth "pvtoken=exp%3D9999999999%7Eacl%3D%252f%252a%7Edata%3DZXhwPTE0NjY1MjcxOTh+YWNsPSUyZip+ZGF0YT1wdmMsc35obWFjPTBhM2JkOGU5OTc3OTYyY2UwMGNkN2I0YjFkY2Q4Y2UwMjRiNDIzNDcyZTg3NTAwODRjNDgyMmJhZjk1OWNkNTc%3D%21qYH3WHZzrzJgH/syYbSatV4szyGgb1PV6kdBpLv5ntA%3D%7Ehmac%3D5D8D3C1CEBED2C70995EBAD1599FE607BC009962E958A1CACD407E3E5EFF549D&hdntl=exp=1466527198~acl=%2fz%2fDynit2%2fJojo%2fJojo_S01Ep01m.mp4%2f*~data=hdntl~hmac=5d55f3ef5e729d78ba14375f1ae04493e05d42cfa98f385fdf6dc1fa7ddf6397&als=0,3,NaN,0,0,NaN,0,0,0,24,f,0,1423.7,f,s,PXHGKMOBFFZD,3.6.0,24&hdcore=3.6.0&plugin=aasp-3.6.0.50.41" --useragent "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0"
    
  22. A proposito di Jojo e di altre serie non più scaricabili da VVVVID ho scoperto proprio oggi che sono in simulcast anche su crunchyroll e per scaricarle basta usare una stringa di questo tipo:

    youtube-dl --all-subs http://www.crunchyroll.com/jojos-bizarre-adventure/episode-1-jotaro-kujo-meets-josuke-higashikata-702297
    

    in pratica si installa youtube-dl, con --all-subs vengono scaricati tutti i sub disponibili (ho provato a scaricare solo quello in italiano ma non funzionava), poi si incolla il link dell’episodio ed è fatta. Viene scaricato il video e i sottotitoli (.ass softsub).

    L’unico limite è che funziona solo per gli anime di cui crunchyroll ha la licenza anche in Italia. È però un buon metodo per evitare di dover registrare tutto (almeno per jojo e terraformars che sono, da quel che ricordo, gli unici due anime attualmente non scaricabili da vvvvid).

  23. sono in simulcast anche su crunchyroll

    Ah bene, problema risolto allora. 😀

    funziona solo per gli anime di cui crunchyroll ha la licenza anche in Italia

    Se hanno la licenza per altri paesi basta usare una buona VPN e passa la paura. 😉

  24. giusto ma, anche utilizzando una VPN, ovviamente gli anime senza licenza in italia non vengono sottointitolati in italiano… a quel punto mi sa proprio che un torrent è più comodo.

    1. Come avrai già notato nel sorgente, c’è un flusso RTMP quindi non le estensioni non ti aiuteranno:

      rtmp://flash7.streaming.xdevel.com:80/norbaod/_definst_/mp4:tg/1 TG TELENORBA DEL 28 6 2016.mp4
      

      Si tratta solo di usare rtmpdump, solo che il programma in questo caso non è in grado di spezzare l’URL da solo, separando il cosiddetto app name dal nome della risorsa. Se gli passi tu l’URL già spezzato, funziona:

      rtmpdump -R -r "rtmp://flash7.streaming.xdevel.com:80/norbaod/_definst_/" -y "mp4:tg/1 TG TELENORBA DEL 28 6 2016.mp4" -o output.mp4
      
  25. rtmpdump (come la maggior parte dei tool da terminale per linux… come anche avconv e youtube-dl) si trova anche per mac questo te lo posso confermare io (il mio computer aziendale è un macbook).
    Installarli però non è un’operazione banale se non hai mai avuto a che fare con un gestore di pacchetti linux-like.
    di gestori di pacchetti per mac ne esistono diversi: macports, homebrew, flink. Io personalmente ho utilizzato i primi 2.
    Teoricamente potresti anche compilarti tutto da sorgente ma il mio consiglio è di affidarti a questi strumenti che sono molto comodi.

    Ecco un esempio di installazione di rtmpdump
    http://macappstore.org/rtmpdump/
    in due parole si apre il terminale, si installa homebrew tramite ruby (che dovrebbe essere presente di default nel mac)
    Infine si installa rtmpdump tramite homebrew… una volta installato homebrew una volta chiaramente tutti gli altri programmi da terminale li installi in un attimo.
    A seconda della versione installata, di cosa si vuole installare (homebrew oppure macports) potrebbe inoltre essere necessario aggiungere sudo davanti ai comandi e usare la password da amministratore per autorizzare l’installazione in certe cartelle di sistema.

    VLC, secondo la mia personale esperienza, fa più fatica a reggere un flusso rispetto a rtmpdump

  26. Non hai proprio capito (e non te ne faccio una colpa se non sai come funziona il sistema di gestione di pacchetti può capitare). Scordati il download di rtmpdump da un sito.

    Quel che farai è installare all’interno del terminale un gestore di pacchetti (pensalo come un “app store” per i programmi eseguibili da terminale, dentro un gestore di pacchetti sicuro ci sono in teoria solo programmi sicuri… in pratica visto che rtmpdump è un programma sicuro non hai bisogno di cercare il link). Come installarlo questo gestore di pacchetti? Come ti ho scritto nell’altro post ossia tramite una linea di comandi da terminale (nel caso di homebrew viene usato ruby per scaricare homebrew dal web e installarlo… ma tutto si svolge all’interno della bash del terminale).

    Infine si installa rtmpdump sempre da terminale attraverso un’altra linea di comando (che utilizza homebrew o un altro gestore di pacchetti (“app store”) per installare il nuovo programma rtmpdump).

    quel che stai facendo è qualcosa del genere:

    • apri Terminale.app
    • scrivi: programma di nome ruby scarica homebrew da questo indirizzo e installalo
    • scrivi: programma di nome homebrew installa rtmpdump
    • da quel momento in poi potrai scrivere: programma di nome rtmpdump fai questo.

    Questa è chiaramente solo una spiegazione, il comando per installare rtmpdump diverrà infatti:

    brew install rtmpdump
    • brew che è il nome del programma che vuoi usare da terminale
    • install rtmpdump comando che brew deve eseguire
    ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" > /dev/null 2> /dev/null

    quest’altro comando invece usa ruby che è il programma usato per l’installazione e curl che è il programma che scarica homebrew dall’indirizzo
    https://raw.githubusercontent.com/Homebrew/install/master/install.

    Dal sito ufficiale di homebrew la stessa cosa si può fare anche così:

    /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    

    /usr/bin/ è il path dove risiede ruby e tutti gli altri programmi da bash di OS X, però di solito il path si può omettere se i programmi risiedono nella cartella di default (che è proprio /usr/bin/).

    Teoricamente potresti anche scaricare i sorgenti di rtmpdump, compilarlo con l’apposito compilatore (se è un programma in C con gcc), avviare l’eseguibile (mettendolo se vuoi direttamente in /usr/bin/), ma prima di pensare a questo passo inizia a capire come fare le cose più semplici.

    Spero di averti chiarito tutto.

  27. Vedo che Lay ha già risposto fin troppo esaurientemente (ho sistemato solo un po’ la formattazione). Comunque sia, la cosa era già menzionata nel post:

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

    Teniamo questa area commenti per parlare del salvataggio di video dai siti. 🙂 Questioni su come installare i programmi su OS X si possono trattare altrove.

  28. Ok, ci sono riuscito e sta scaricando il file mp4. Vi faccio sapere ad operazione conclusa. Per adesso grazie mille.

  29. Suggerimenti su come scaricare i video di questo sito?

    Leggi il post. Il caso dei video Smooth Streaming è trattato al pari degli altri.

  30. Ciao Lazza, grazie per il tempo che ci dedichi. Mi chiedevo se fosse possibile realizzare uno script per Paramount Channel, ho provato a sniffare i pacchetti ma… nada.

    Magari tu riesci nell’impresa

  31. Paolo, non c’è niente di nuovo lì. 😀 Cambia user-agent e premi il tasto play, il link al flusso M3U8 comparirà in bella mostra nel pannello Net di Firebug.

    Gian, non ho in programma script per siti web che non utilizzo, a meno che non siano lavori su commissione. 🙂 In ogni caso puoi scaricare i video da lì con rtmpdump, con un piccolo dettaglio: vanno spezzati in due parti.

    Prendendo ad esempio questo video, con Firebug potrai individuare facilmente una richiesta HTTP a questo indirizzo che puoi cercare usando come parola chiave MediaGenerator:

    https://mediautilssvcs-a.akamaihd.net/services/MediaGenerator/mgid:arc:video:paramountchannel.it:d572e348-721a-41c7-aed0-b1917ddc8a6f?arcStage=live&accountOverride=esperanto.mtvi.com&billingSection=intl&device={device}&ep=
    

    Dentro trovi, tra le altre cose, l’indirizzo RTMP a qualità più alta:

    <src>
        rtmpe://cp5290.edgefcs.net/ondemand/mtviestor/_!/intlod/MTVInternational/MBUS/TACTIC/201606/VIAMTVIPYC9648DZKQ7/IT_SPARTACUS_QNG000231-0012_1280x720_3500_h32.mp4
    </src>
    

    Devi passarlo a rtmpdump, però spezzato in due:

    rtmpdump -r "rtmpe://cp5290.edgefcs.net:1935/ondemand" -y "mp4:mtviestor/_!/intlod/MTVInternational/MBUS/TACTIC/201606/VIAMTVIPYC9648DZKQ7/IT_SPARTACUS_QNG000231-0012_1280x720_3500_h32.mp4" -o output.flv
    

    Al posto di output.flv puoi mettere il nome che desideri. 🙂

  32. Ciao Andrea, usando la solita riga ffmpeg -i ....... output.mp4 diversamente dal solito mi dà un avvertimento in giallo che prima non mi aveva mai dato, mi segnala come “deprecated” l’uso di AVStream.codec e mi consiglia invece di utilizzare AVStream.codecpar
    Non sapendo minimamente cosa fosse ho cercato ed ho trovato questo:
    https://code.videolan.org/libav/libav/commit/9200514ad8717c63f82101dc394f4378854325bf

    Ora leggendo li però mi domando: come caspita faccio a mettere tutte quelle modifiche?

    Devo farle?

    Grazie
    Luca

    1. mi segnala come “deprecated” l’uso di AVStream.codec e mi consiglia invece di utilizzare AVStream.codecpar

      Ma a parte segnalartelo, ti crea problemi nella registrazione?

      ho trovato questo […] come caspita faccio a mettere tutte quelle modifiche?

      Quello è un commit che Anton Khirnov ha inviato al progetto della libreria libav (usata da vari progetti, tra cui VLC e ffmpeg) più di 2 anni fa. Tu stai usando una versione del programma che ha oltre 2 anni?

      Certo potresti anche patchare il codice, ma non fai semplicemente prima a usare una versione più recente che includa già quelle modifiche?

  33. Io ho usato l’ultima versione che trovò sul sito, però quando parte l’encoding mi scrive in giallo che l’uso di AVStream.codec é deprecated e di usare AVStream.codecpar

    Non mi sembra che poi dia problemi però prima non me lo ha mai segnalato per questo chiedevo

  34. Vi comunico un altro metodo per prelevare i video e in particolare quelli di JoJo, dove ogni frammento f4f è criptato con una chiave tramite AkamaiHD, cioè prelevare i frammenti del video dalla cache e poi unirli.
    Ho provato con i vari Cache Viewer di Nirsoft ma durante il salvataggio si perde il numero di segmento e di frammento.
    Bisognerebbe creare uno script per salvare ogni frammento prendendo il nome “SegXFragXXX” dall’URL, utile per identificarlo.

    1. Grazie per il commento, non avevo mai testato quell’approccio lì. Quindi dici che i frammenti nella cache sono in chiaro e non cifrati? Parli della cache del browser o quella di Flash Player?

    1. Come avrai già visto, immagino, l’URL M3U8 del video si trova immediatamente. Perciò la difficoltà non è quella. Il problema, invece, è che il flusso è a dir poco devastato: dà un sacco di errori, anche guardandolo con ffplay si blocca di continuo. È praticamente impossibile da registrare, non perché sia “protetto” in qualche modo, ma perché è rovinatissimo.

  35. Ciao a tutti come mai quando quando prendo un flusso m3u8 su sport tube per dispositivi mobili le partite si vedono in ritardo di 10 15 minuti su pc invece su dispositivi mobili si vede in diretta?

    1. Potresti mettere un URL di esempio? Hai verificato che lo stesso flusso M3U8 sia usato in entrambi i casi?

    2. Ciao, in che senso che il flusso è usato in entrambi i casi?
      Se apro il live sul tablet o smartphone la diretta è reale, se prendo in link m3u8 con user agent dal broswer il live inizia dopo 10 15 minuti. In questo periodo sul sito non ci sono live quindi il link non lo posso postare, è inutile che ti do l’ultimo link “funzionante” perché non si vedrebbe niente.
      Grazie per la disponibilità


      http://sportube-lh.akamaihd.net/i/canale1_1@93401/master.m3u8

      Il master.m3u8 contiene i due link sd o hd

      http://sportube-lh.akamaihd.net/i/canale1_1@93401/index_2_av-p.m3u8?sd=10&rebase=on&hdntl=

      Questo è il contenuto di master.m3u8

      Io uso il master di solito perché delle volte c’è solo diretta sd o viceversa e per comodità uso il file master così legge direttamente il link disponibile.
      Ho anche provato a prendere direttamente i link sd e hd il problema è lo stesso… ritardo del live di 15 min circa.

Lascia un commento

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