Estoy tratando de obtener miniaturas de un video dentro de una nube IPFS (pinata.cloud) pero recibo el error "La operación no es segura".
El enlace para el video: https://gateway.pinata.cloud/ipfs/QmWWeXfCNrgThTzAxbS7AZywnsgp2sdB9rbi5kxuUyUwpZ
Hasta ahora tengo esto:
<video id="videoHolder" controls> <source src="https://gateway.pinata.cloud/ipfs/QmWWeXfCNrgThTzAxbS7AZywnsgp2sdB9rbi5kxuUyUwpZ" type="video/mp4" /> </video> <canvas id="canvas-element"></canvas> <a id="test-link"></a> <script> function thumbnails() { var _VIDEO = document.querySelector("#videoHolder"), _CANVAS = document.querySelector("#canvas-element"), _CANVAS_CTX = _CANVAS.getContext("2d"); _CANVAS_CTX.drawImage(_VIDEO, 0, 0, _VIDEO.videoWidth, _VIDEO.videoHeight); // Video metadata is loaded _VIDEO.addEventListener('loadedmetadata', function() { // Set canvas dimensions same as video dimensions _CANVAS.width = _VIDEO_PICTURE.videoWidth; _CANVAS.height = _VIDEO_PICTURE.videoHeight; }); download() } var download = function(){ var link = document.getElementById('test-link'); link.download = 'filename.png'; link.href = document.getElementById('canvas-element').toDataURL() } </script>También he leído en alguna parte que se debe en parte a crossOrigin, pero como está en un IPFS, no puedo editarlo (que yo sepa).
Entonces, ¿cómo puedo lograr mi objetivo de obtener una miniatura de este video en IFPS con JavaScript?
Esto no está relacionado con el protocolo ipfs:// ya que el servicio en la nube de Pinata sirve ese contenido a través de https:// .
Aquí hay una pregunta relacionada con la operación es un error inseguro : canvas.toDataURL() Error de seguridad La operación es insegura
Y la respuesta principal a esta pregunta explica por qué no puede omitir esta función de seguridad: ¿Por qué no puedo forzar la descarga de un lienzo contaminado y por qué es un problema de seguridad?
Servir contenido IPFS usando un proxy inverso como una fuente confiable en su lugar arriesgaría un ancho de banda alto, por lo que es posible que desee buscar la ruta de usar un servidor para extraer un cuadro del video alojado en la nube de Pinata.