Cada pregunta que encontré me dijo que la única forma de recuperar el objeto es buscarlo con una solicitud ajax usando el blob:https://www.example.com/0ea6c8a8-732f-42c7-9530-4805c4e785f5 como la URL de destino . ¿Los blobs no se guardan en la memoria de mi navegador y, por lo tanto, deberían ser accesibles de inmediato? Según tengo entendido, no tiene nada que ver con el servidor/sitio web remoto. Algún archivo JS creó el objeto blob, generó la URL del blob y lo guardó en la memoria.
Intenté usar let blob = await fetch(url).then(r => r.blob()); en varios sitios web, siempre ejecutándose en cors limitaciones. Quizás solo el script que lo creó (dominio diferente) puede acceder a él dentro de su contexto, lo cual es muy desafortunado considerando que el contenido del blob está literalmente guardado en la memoria de mi navegador.
Conozco otros métodos para acceder al recurso al que apunta o contiene el blob observando las solicitudes de red. Eso no es lo que estoy preguntando aquí. Deseo entender cómo desempaquetar la URL del blob para acceder al objeto Blob dentro de la consola del navegador para ver cómo se guardó la información en primer lugar. Cuando se trata de videos, Blob simplemente no puede contener el video real, debido a las limitaciones de tamaño y ancho de banda, entonces, ¿qué contiene? ¿Archivo de manifiesto en sí mismo?
Consulte esta respuesta mía para conocer una forma de recuperar el Blob de un blob: URI (debe ejecutar el script allí antes de que la página cree el Blob). Recuperar solo crea una copia.
El blob: URL está vinculado al servidor remoto en el sentido de que comparte el mismo origen. Entonces, sí, el Blob (datos binarios) está en su computadora, pero la URL solo es accesible para los scripts que se ejecutan desde el mismo origen que el que se generó.
Y sí, el Blob contiene todos los datos de video, pero la cadena que tiene es un blob: URL, que es solo un puntero a ese Blob, almacenado en la memoria del navegador.