2016-07-12 67 views
6

Un mio amico stava cercando di scaricare un video embedded e Twitter hanno trovato qualcosa di simile nel codice HTML:In che modo il blob: protocollo funziona come origine <video>?

<video preload="auto" data-id="content" data-type="content" src="blob:https%3A//twitter.com/7897de6d-6eed-4905-9ed2-00ea3d2c99d5" class="visible paused" style="width: 100%; height: 100%;"></video> 

Sono come perplesso come lo era quando ho cercato di scoprire la vera fonte del flusso video (ispezionando la console della rete del browser e colpendo un proxy). Mentre il video viene riprodotto, i byte sembrano uscire dal nulla.

In che modo il browser comprende il "protocollo" blob?

risposta

1

I BLOB sono un modo di gestire la memoria che appartiene al browser. Potrebbe trattarsi di file o dati da una tela o dati calcolati in altro modo. Quando i dati vengono caricati in modo che JavaScript abbia accesso a blob, è possibile creare un BlobURI, che è un url che punta alla struttura di memoria interna.

Nel caso di Twitter usando blob URL per il video, ho il sospetto che essi sono o proxy del video attraverso un canvas al fine di applicare un filtro, o si utilizza blobs per una sorta di buffer locale. In ogni caso, ciò significa che la memoria era accessibile a JS in un determinato momento.