Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

415
Visualizações
¿Cómo descargar videos mp4 en JS/React?

Es posible que se haya preguntado esto antes, pero no puedo resolverlo, por favor ayúdenme y gracias de antemano.

Problema:

Tengo un enlace a un video mp4 (por ejemplo: https://www.learningcontainer.com/wp-content/uploads/2020/05/sample-mp4-file.mp4 )

Quiero descargar este video desde el front-end.

He probado el siguiente método:

 const videoHref ='https://www.learningcontainer.com/wp-content/uploads/2020/05/sample-mp4-file.mp4'; const a = Object.assign(document.createElement('a'), { href: videoHref, style: 'display: none', download: 'video.mp4' }); document.body.appendChild(a); a.click(); a.remove();

Pero cuando ejecuto este código,

la descarga comenzará y falla inmediatamente con error

Error - No hay archivo

Por favor ayúdame a resolver esto.

about 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

fetch('https://www.learningcontainer.com/wp-content/uploads/2020/05/sample-mp4-file.mp4', { method: 'GET', headers: { 'Content-Type': 'application/mp4', }, }) .then((response) => response.blob()) .then((blob) => { const url = window.URL.createObjectURL( new Blob([blob]), ); const link = document.createElement('a'); link.href = url; link.setAttribute( 'download', `FileName.pdf`, ); document.body.appendChild(link); link.click(); link.parentNode.removeChild(link); });

avisame si funciono gracias

about 4 years ago · Santiago Trujillo Relatório

0

Lo resolví usando el siguiente código,

 let xhr = new XMLHttpRequest(); xhr.open('GET', 'path/videoLink', true); xhr.responseType = 'blob'; xhr.onload = function () { let urlCreator = window.URL || window.webkitURL; let videoUrl = urlCreator.createObjectURL(this.response); let tag = document.createElement('a'); tag.href = videoUrl; tag.target = '_blank'; tag.download = skillName.includes('.mp4') ? skillName : skillName + '.mp4'; document.body.appendChild(tag); tag.click(); document.body.removeChild(tag); }; xhr.onerror = (err) => {}; xhr.send();
about 4 years ago · Santiago Trujillo Relatório

0

Tal función funciona para mí, pero hay un problema:

con ese enfoque, su navegador primero almacenará el video en la RAM y cuando el video sea demasiado grande, se bloqueará. Estamos creando un blob aquí, porque un atributo de descarga de etiqueta necesita que el origen sea su dominio, cuando lo prueba en localhost e intenta descargar desde otro origen, arrojaría un error.

 const downloadVideo = (urls: string) => { axios({ url, method: 'GET', responseType: 'blob', }).then((response) => { const urlObject = window.URL.createObjectURL(new Blob([response.data])); const link = document.createElement('a'); link.href = urlObject; link.setAttribute('download', 'recording.mp4'); document.body.appendChild(link); link.click(); document.body.removeChild(link); }); };

Para descargar video sin crear un blob, debe ser de su origen o el servidor que lo atiende debe agregar los encabezados Disposición de contenido y Permitir origen, luego puede descargarlo con una propiedad target="_blank"

about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda