Solución:
Una URL creada a partir de JavaScript. Blob
no se puede convertir a una URL “normal”.
A blob:
La URL no se refiere a los datos que existen en el servidor, se refiere a los datos que su navegador tiene actualmente en la memoria, para la página actual. No estará disponible en otras páginas, no estará disponible en otros navegadores y no estará disponible en otras computadoras.
Por tanto, no tiene sentido, en general, convertir un Blob
URL a una URL “normal”. Si quisiera una URL normal, tendría que enviar los datos desde el navegador a un servidor y hacer que el servidor lo hiciera disponible como un archivo normal.
Es posible convertir un blob:
URL en un data:
URL, al menos en Chrome. Puede utilizar una solicitud AJAX para “recuperar” los datos del blob:
URL (a pesar de que en realidad solo lo está sacando de la memoria de su navegador, no haciendo una solicitud HTTP).
He aquí un ejemplo:
var blob = new Blob(["Hello, world!"], { type: 'text/plain' });
var blobUrl = URL.createObjectURL(blob);
var xhr = new XMLHttpRequest;
xhr.responseType="blob";
xhr.onload = function() {
var recoveredBlob = xhr.response;
var reader = new FileReader;
reader.onload = function() {
var blobAsDataUrl = reader.result;
window.location = blobAsDataUrl;
};
reader.readAsDataURL(recoveredBlob);
};
xhr.open('GET', blobUrl);
xhr.send();
data:
Es probable que las URL no sean lo que usted quiere decir con “normal” y pueden ser problemáticamente grandes. Sin embargo, funcionan como URL normales en el sentido de que se pueden compartir; no son específicos del navegador o la sesión actual.
Otra forma de crear una URL de datos a partir de una URL de blob puede ser utilizando canvas.
var canvas = document.createElement("canvas")
var context = canvas.getContext("2d")
context.drawImage(img, 0, 0) // i assume that img.src is your blob url
var dataurl = canvas.toDataURL("your prefer type", your prefer quality)
como lo que vi en mdn, canvas.toDataURL es compatible con los navegadores. (excepto ie <9, siempre ie <9)
Para aquellos que vinieron aquí buscando una manera de descargar un video / audio de URL de blob, esta respuesta funcionó para mí. En resumen, necesitaría encontrar un archivo * .m3u8 en la página web deseada a través de Cromo -> Pestaña de red y pégalo en un Reproductor de VLC.
Otra guía le muestra cómo guardar una transmisión con VLC Player.