O que precisa acontecer antes de uma página da web te entregar o arquivo dela
Você está vendo o vídeo. Ele está tocando, ali mesmo, no navegador da web. Então por que não tem como guardar? A resposta é que uma página da web raramente entrega um arquivo — ela entrega instruções, e o arquivo que o navegador monta a partir delas pode não existir como uma coisa única.
FoxDL Quatro jeitos de uma página entregar vídeo, e só um deles é um arquivo
O mais antigo e mais simples é um arquivo direto: a página aponta para um endereço terminando em .mp4 e o navegador busca. Se você conseguir achar esse endereço, você tem o arquivo. Ainda é assim que a maioria dos sites menores, fóruns, veículos de notícia e servidores de arquivo funcionam.
O segundo é o streaming adaptativo — HLS ou DASH. A página carrega uma playlist que lista centenas de segmentos curtos em vários níveis de qualidade, e o player os costura conforme avança, trocando de qualidade quando a sua conexão muda. Não existe um arquivo único para achar. Salvar significa buscar cada segmento e reconstruir um arquivo a partir deles.
O terceiro é uma URL de blob. A página já buscou os dados com JavaScript e entregou ao player uma referência a algo que vive na memória do próprio navegador. O endereço que você consegue ver (blob:https://…) não tem significado fora daquela página e daquela sessão — ele não pode ser aberto, compartilhado nem baixado, e isso derruba a maioria dos “localizadores de vídeo” ingênuos.
O quarto é conteúdo protegido: segmentos criptografados reproduzidos através de um sistema de DRM, em que a chave de descriptografia é emitida para o navegador sob condições que proíbem explicitamente guardar uma cópia. Isso não é um obstáculo para ser contornado; é o mecanismo sobre o qual um contrato de licença é construído, e nenhuma ferramenta legítima o derrota.
Como um navegador da web percebe que existe algo para salvar
Um navegador da web dentro do app que se oferece para salvar o que encontra está fazendo vários trabalhos ao mesmo tempo. Cada um pega um caso que os outros deixam passar.
- Ler os elementos de mídia da página
- Percorrer o documento em busca de tags
<video>,<audio>e<source>e ler os endereços delas. Pega o caso do arquivo direto na hora, e deixa passar tudo o que foi construído por JavaScript depois de a página carregar. - Olhar dentro do shadow DOM
- Os players modernos são elementos personalizados cujas partes internas são deliberadamente isoladas da página. Uma busca que para no documento comum vê uma caixa vazia onde está o vídeo.
- Observar o que a página de fato pediu
- O navegador sabe todo recurso que uma página buscou. Um arquivo de mídia que foi carregado — independentemente de qual script pediu, ou quando — aparece aqui mesmo que nada na página visível aponte para ele.
- Farejar o tipo da resposta
- Uma URL terminando em
.phppode devolver um vídeo, e uma URL terminando em.mp4pode devolver uma página de erro. OContent-Typeque o servidor realmente mandou é o que diz qual é qual — extensões são chute.
Como salvar de uma página se parece quando funciona
A ordem importa. A maior parte das falhas vem de pular o segundo passo e começar uma transferência de quatro gigabytes de uma página de login.
-
Reproduza um segundo da mídia primeiro
Muitas páginas não carregam nada até a reprodução começar. Dois segundos tocando muitas vezes são a diferença entre uma lista vazia de candidatos e uma lista cheia.
-
Confira o que o candidato realmente é
Antes de se comprometer, olhe o tamanho e o tipo informados. Um “filme” de 14 KB é uma página HTML. Um tipo
text/htmlonde você esperavavideo/mp4significa que você pegou o link errado. -
Escolha a qualidade que você quer
Um stream normalmente oferece várias. A mais alta não é sempre a resposta certa num celular, onde a diferença é invisível e o armazenamento não é.
-
Deixe a sessão ir junto
Links protegidos checam quem está pedindo: os cookies da sua sessão logada, a página que te encaminhou, às vezes a identidade do navegador. Um download começado sem isso recebe um 403 mesmo que a página tenha tocado sem problema.
-
Verifique o que chegou
Abra. Um arquivo que toca por dois segundos e para foi cortado — normalmente um link expirado — e vale recomeçar em vez de guardar.
O que um navegador da web dentro do app tem que acertar
Além de encontrar a mídia, estas são as coisas que decidem se o download realmente termina.
- Levar a sessão até o download
Cookies, referer e user agent têm que viajar junto com a requisição. Sem eles, um link protegido resolve na página e falha no downloader.
- Manter essas credenciais fora do armazenamento
Cookies de sessão valem tanto quanto uma senha pelo tempo da sessão. Eles pertencem à memória enquanto a transferência durar e a lugar nenhum além disso — não a um banco de dados, não a um log.
- Recusar entregar o link para outro app
O iOS abre com alegria um link tocado em outro app se aquele app reivindicar aquele domínio. Um navegador da web feito para salvar mídia precisa cancelar e refazer a navegação ele mesmo, ou a página que você queria desaparece dentro do app de outra pessoa.
- Enxugar a página antes de ela ser desenhada
Um bloqueador de conteúdo aqui não é só sobre anúncio — menos rastreadores e sobreposições significam menos candidatos falsos na lista de mídia.
- Lidar com documentos além de vídeo
PDFs, ZIPs e arquivos do Office são a outra metade do que as pessoas salvam da web, e deveriam cair na mesma biblioteca de todo o resto.
Perguntas que as pessoas fazem
Por que o Safari não consegue fazer isso sozinho?
O Safari baixa arquivos — desde o iOS 13. O que ele não faz é inspecionar uma página em busca de mídia que está sendo transmitida em vez de vinculada, nem reconstruir um stream segmentado num arquivo. Ele é um navegador da web, e esse trabalho pertence a um gerenciador de downloads.
O que é uma URL de blob e por que eu não consigo baixá-la?
É um identificador para dados que a página já guarda na memória. Ela não existe fora daquela aba, então colar isso em qualquer lugar não produz nada. A mídia por baixo foi buscada de algum lugar real, e é esse endereço — não o blob — que vale a pena encontrar.
A página toca sem problema mas o download recebe um 403. Por quê?
A requisição do download chegou sem as coisas que a página tinha: o seu cookie de sessão, a página que encaminhou, às vezes uma identidade de navegador correspondente. Os servidores usam exatamente essa combinação para distinguir um espectador de um raspador.
Tudo pode ser salvo?
Não, e isso é por projeto. Conteúdo protegido com DRM é criptografado com chaves emitidas sob uma licença que proíbe guardá-lo. Alguns sites também assinam cada segmento individualmente com tokens de vida curta. Os dois estão funcionando como pretendido.
O navegador da web dentro do FoxDL
É um navegador da web comum, com abas, cujo trabalho é colocar coisas na sua biblioteca em vez de ser o seu navegador do dia a dia.
- Seis canais de detecção, incluindo shadow DOM e o registro do que a página de fato pediu, para que um player construído inteiramente em JavaScript continue visível.
- O tipo real é farejado da resposta em vez de chutado pela extensão, e candidatos
blob:que não podem ser buscados são filtrados em vez de serem oferecidos e falharem. - Cookies, referer e user agent são levados junto para o download, para que um link protegido resolva — e nenhum deles é jamais escrito no disco.
- Um bloqueador de conteúdo enxuga a página antes de ela ser desenhada.
- PDFs, ZIPs e documentos são salvos na mesma biblioteca da mídia, com um toque.
- Abas, favoritos e uma página inicial com os seus próprios atalhos.
O FoxDL não fornece conteúdo próprio. O que você salva é o que você trouxe, e você é responsável por ter o direito de guardar.
Perguntas frequentes
- Como baixo um arquivo de uma página da web?
- O FoxDL consegue baixar um stream HLS (m3u8)?
- Os downloads continuam quando eu saio do app?
- O FoxDL fornece canais de IPTV, filmes ou streams?
Continue lendo
O que um gerenciador de downloads faz e um navegador da web não faz
Por que as transferências param quando você troca de app, o que retomar realmente exige, e como streams se tornam arquivos.
O que um app de mídia no seu celular consegue ver, e o que ele nunca deveria enviar
O que um app de mídia consegue ver, como ler um rótulo de privacidade, e por que uma tranca não é criptografia.
Onde os seus arquivos realmente moram num iPhone, e quem consegue vê-los
A sandbox, para onde os downloads realmente vão, e por que renomear um arquivo quebra tantos apps.
Sua biblioteca, enfim em um lugar só.
Download grátis. Sem conta nem cadastro; o conjunto completo está na versão gratuita.