스토리

Como descarregar um vídeo a partir de um URL de vídeo direto

O que é um URL de vídeo direto, como guardar um MP4 ou WebM no navegador e porque CORS, HLS ou DASH podem bloquear a transferência.

Ter um URL de vídeo não é o mesmo que ter um ficheiro de vídeo. Alguns endereços apontam para um recurso MP4 ou WebM. Outros abrem uma página HTML que só contém um leitor. Outros carregam uma lista de reprodução em streaming feita de muitos segmentos pequenos.

Por isso um ligação guarda-se depressa e outra recusa descarregar mesmo quando o vídeo reproduz. Este artigo explica como distinguir esses casos e como guardar um ficheiro só quando o URL é realmente um recurso de vídeo.

O que é um URL de vídeo direto?

Um URL de vídeo direto é um endereço cuja resposta HTTP é o recurso multimédia, não uma página web à volta. O exemplo mais simples é:

https://example.com/video.mp4

Quando o navegador pede esse URL, o servidor pode devolver os bytes de um ficheiro de vídeo, muitas vezes com Content-Type video/mp4 ou video/webm. Não há um documento HTML no meio. O URL é o ficheiro.

A extensão é uma pista, não uma regra. Uma ligação pode ser um recurso de vídeo sem .mp4 no caminho:

https://example.com/media?id=123

Se o servidor responder com Content-Type: video/mp4 (ou outro tipo video) e um corpo que é mesmo media, continua a ser um URL de vídeo direto. Um caminho que termina em .mp4 ainda pode ser um redirecionamento ou uma página de erro HTML. Trate a resposta HTTP como a fonte da verdade, não as letras no fim do endereço.

URL de vídeo direto vs. página web de vídeo

Compare estes dois:

  • Ficheiro direto: https://example.com/files/movie.mp4
  • Página web: https://example.com/watch/movie

O primeiro pode ser um único objeto de vídeo. O segundo é tipicamente um documento HTML. Essa página pode incorporar um <video>, carregar um script de leitor e depois ir buscar o media a um URL diferente que nunca aparece na barra de endereços.

Colar o endereço da página numa ferramenta de transferência não tira o ficheiro da página. O navegador pediria HTML. Uma ferramenta para URL de vídeo diretos e publicamente acessíveis precisa do endereço do media.

O Downloader de vídeo da web da NEXNARA destina-se a esse URL de ficheiro público, não a uma página de visualização. Não extrai vídeos de sítios, não inicia sessão nem monta fluxos de um leitor.

Como descarregar um vídeo a partir de um URL direto

Quando já tem uma ligação candidata:

  1. Obtenha o URL direto. Use um URL de ficheiro, objeto ou media — não uma página de visualização.
  2. Confirme que é um recurso de vídeo. Um novo separador deve mostrar a reprodução integrada do navegador (ou um aviso de transferência), não uma página com um leitor no layout.
  3. Tente primeiro o navegador. Muitos navegadores permitem guardar a partir do menu de contexto do vídeo, ou iniciam uma transferência se o servidor enviar uma disposição de ficheiro.
  4. Use uma ferramenta no navegador se quiser pré-visualizar. Cole o mesmo URL numa página que mostre formato, duração ou tamanho antes de guardar.

O Downloader de vídeo da web é esse último passo. Cole um URL de vídeo direto. O navegador pede a esse anfitrião. Se o recurso for reproduzível, aparece uma pré-visualização. Quando o servidor de vídeo permite leituras de origem cruzada, pode descarregar; quando não permite, ainda pode abrir o URL se a pré-visualização funcionar. A NEXNARA não carrega o ficheiro para os seus próprios servidores.

Que formatos de vídeo se podem descarregar?

No navegador, «posso descarregar isto?» aproxima-se de «este navegador consegue descodificar este ficheiro?». Contentores comuns para um URL de um só ficheiro:

  • MP4 — muitas vezes H.264 ou HEVC num contentor ISO BMFF
  • WebM — normalmente VP8, VP9 ou AV1
  • Ogg Video — menos comum; o codec varia consoante o navegador

Contentor e codec não são a mesma coisa. Um .mp4 não está garantido em todos os navegadores e dispositivos. HEVC e AV1 dependem do sistema operativo, do hardware e da versão do navegador. Uma ferramenta que usa o elemento HTML5 video pré-visualiza o que esse navegador consegue descodificar. Não converte nem faz remux do ficheiro.

Se o navegador indicar um formato não suportado, o ficheiro pode ainda reproduzir noutro sítio — ou ser um objeto mal etiquetado ou uma lista de reprodução em vez de um único ficheiro.

Porque é que um vídeo reproduz mas não descarrega?

Reproduzir e guardar usam APIs diferentes do navegador.

O elemento <video> pode pedir o recurso (muitas vezes com pedidos HTTP range) e desenhar fotogramas. Isso pode suceder mesmo quando JavaScript noutro origem não pode ler os bytes e transformá-los num ficheiro que o utilizador conserve.

Razões típicas para a pré-visualização funcionar e Transferir falhar:

  • CORS. O anfitrião de vídeo não deu a este sítio permissão para ler a resposta a partir de um script. Veja a secção seguinte.
  • Credenciais de origem cruzada. Cookies que funcionam no sítio original não são enviados num fetch simples entre sítios a menos que ambos os lados o permitam.
  • Content-Disposition. attachment ou um nome de ficheiro afetam como uma navegação de nível superior guarda, não se um script de outra origem pode ler o corpo.
  • Configuração do servidor. Cabeçalhos CORS em falta ou combinações HEAD/GET bloqueadas podem parar uma ferramenta que inspeciona o recurso primeiro.
  • Autenticação. Um URL que funciona com sessão iniciada no anfitrião pode devolver 401/403 a partir de outro sítio.
  • URL assinados ou que expiram. O armazenamento de objetos costuma emitir uma cadeia de consulta com limite de tempo. Após expirar, a mesma ligação falha.

Nada disto significa que «não é um vídeo». Significa que este contexto do navegador não tem permissão para o copiar.

O que é CORS?

CORS (Cross-Origin Resource Sharing) é uma regra do navegador sobre quando JavaScript numa origem pode ler uma resposta de outra origem. Não é um produto especial «anti-transferência». Existe para que https://a.example não leia em silêncio o correio ou os ficheiros de https://b.example a menos que b.example o permita.

Uma etiqueta video ainda pode mostrar um ficheiro de origem cruzada. O que o CORS costuma bloquear é um fetch() de outro sítio que quer os bytes em bruto como Blob para um diálogo de guardar. Se o servidor de vídeo não enviar um Access-Control-Allow-Origin que inclua a origem da ferramenta (ou * para um ficheiro público simples), essa leitura é recusada.

Reproduzir não é permissão para o script de outro sítio guardar uma cópia. A NEXNARA não faz proxy do ficheiro para saltar essa verificação. Se a transferência estiver bloqueada, abrir o URL no anfitrião de vídeo é a alternativa — e só se tiver o direito de o guardar.

E o HLS e o DASH?

Muitos leitores não carregam um MP4. Carregam um manifesto e depois muitos segmentos.

  • HLS usa muitas vezes um URL que termina em .m3u8. Esse ficheiro é uma lista de reprodução (texto), não um filme completo num objeto.
  • DASH usa muitas vezes .mpd, um manifesto XML que aponta para representações e segmentos.

Um URL MP4/WebM direto e uma lista HLS/DASH são recursos diferentes. Guardar «o .m3u8» dá um ficheiro de texto pequeno, não o filme. Construir um ficheiro a partir de segmentos exige analisar a lista, descarregar segmentos e, em geral, remux. O Downloader de vídeo da web não monta fluxos HLS nem DASH. Se a ferramenta indicar uma lista de streaming, é o esperado.

Vídeo protegido com DRM

Leitores comerciais podem envolver o media em DRM como Widevine, FairPlay ou PlayReady. Encriptam amostras e exigem uma licença. Isso não é um objeto público video/mp4 que se possa pedir e guardar. A NEXNARA não desencripta nem contorna DRM.

Como reconhecer um URL de vídeo direto

Verificações práticas, por ordem de quanto provam:

  • O caminho termina em .mp4, .webm, .ogv ou uma extensão semelhante. Útil, não conclusivo.
  • Abrir o URL num novo separador mostra só o vídeo (ou uma transferência), não o sítio inteiro.
  • O editor documentou-o como ligação de ficheiro ou objeto (CDN, contentor de armazenamento, «transferência direta»).
  • Os cabeçalhos incluem Content-Type: video/* (por exemplo video/mp4).

As ferramentas de programador do navegador podem mostrar o tipo e o Content-Type de um pedido que já fez como utilizador normal de uma página. Ajuda a perceber o que foi pedido. Não é um guia para extrair fluxos escondidos nem para contornar inícios de sessão. Se um sítio não lhe der um URL de ficheiro público, este fluxo não se aplica.

A extensão e o tipo de conteúdo podem mentir. Um URL .mp4 pode redirecionar para HTML. Um tipo video/mp4 ainda pode ser um corpo de erro minúsculo. A reprodução no separador é a confirmação prática.

Problemas comuns

O URL abre uma página web.
Não é um URL de vídeo direto. Precisa do endereço do recurso multimédia, não da página de visualização.

O vídeo reproduz mas Transferir não serve.
O anfitrião provavelmente recusa leituras de origem cruzada (CORS) ou o ficheiro é demasiado grande para guardar no navegador. Use Abrir se a pré-visualização funcionar, ou guarde a partir do anfitrião de vídeo num separador de nível superior se tiver permissão.

A ligação funcionava e agora falha.
URL assinados ou com validade morrem com o tempo. Peça uma ligação nova no mesmo sítio onde obteve a primeira.

O URL termina em .m3u8 ou .mpd.
É uma lista de streaming, não um único ficheiro MP4/WebM. Este downloader não junta esses segmentos.

O navegador diz que o formato não é suportado.
O contentor ou o codec pode não estar disponível nesse navegador/SO. Experimente outro navegador ou confirme que o ficheiro é realmente um objeto de vídeo.

O navegador não alcança o URL.
Verifique https://, a ligação e se o anfitrião permite acesso público. Um ficheiro HTTP numa página de ferramenta HTTPS também pode falhar por conteúdo misto.

Privacidade

A NEXNARA não carrega o ficheiro de vídeo para os servidores da NEXNARA nesta ferramenta. Isso não é o mesmo que afirmar que «o URL nunca sai do seu navegador».

Quando cola um endereço, o seu navegador pede diretamente a esse anfitrião de vídeo externo. O anfitrião pode ver um pedido de media normal. A NEXNARA não está a guardar o ficheiro no meio. O operador do vídeo continua a receber tráfego porque os bytes vêm do URL dele.

Utilização responsável

Descarregue apenas vídeos que possui ou para os quais tem permissão. Um URL público não é uma licença para copiar.

FAQ

O que é um URL de vídeo direto?

Uma ligação cuja resposta é o próprio recurso de vídeo (por exemplo um objeto MP4 ou WebM), não uma página HTML de visualização com um leitor incorporado.

Posso descarregar um MP4 a partir de um URL?

Sim, quando o URL é um ficheiro MP4 (ou semelhante) público e o navegador o consegue descodificar. Se o endereço for uma página web ou uma lista de reprodução, guardar esse endereço não lhe dará o ficheiro do filme.

Porque é que um vídeo reproduz mas não descarrega?

O leitor pode mostrar media sem permitir que o JavaScript de outro sítio leia os bytes. CORS, autenticação e a política do servidor são as causas habituais.

Posso descarregar um URL m3u8?

Não como um único vídeo acabado com esta ferramenta. Um .m3u8 é uma lista HLS. A NEXNARA não monta fluxos HLS nem DASH.

A NEXNARA carrega o meu vídeo?

Não. O ficheiro não é carregado para a NEXNARA. O seu navegador fala com o URL de vídeo que introduz, por isso o anfitrião externo vê esse pedido.

Porque é que a ligação do vídeo expirou?

Muitos anfitriões ligam uma assinatura e uma hora de validade a URL de objeto. Depois desse momento, a mesma cadeia já não está autorizada. Peça uma ligação nova; editar a antiga não a renova.