Tutorial · HLS · DevTools

Como encontrar a URL M3U8 de qualquer stream de vídeo (2026)

Um fluxo de DevTools de 60 segundos para capturar a URL M3U8 de qualquer vídeo HLS, incluindo streams privados que precisam de cookies ou Referer. Chrome, Edge, Firefox.

Pela equipe Vidora 8 min de leitura

Encontrar a URL M3U8 de um stream de vídeo é o primeiro passo de qualquer fluxo manual de download HLS. ffmpeg, yt-dlp, VLC, toda ferramenta de linha de comando começa com essa URL. A boa notícia é que capturá-la leva uns 60 segundos com o DevTools do browser, e o mesmo fluxo funciona no Chrome, Edge, Brave, Vivaldi, Opera e Firefox. A má notícia é que alguns players dificultam um pouco mais que outros, e a URL da playlist pode expirar silenciosamente. Este guia cobre os dois lados.

Se você nunca abriu o DevTools ou não tem certeza do que é um arquivo M3U8, nosso explicador sobre M3U8 (em inglês) percorre o formato do começo ao fim. O resto deste artigo assume que você consegue abrir o DevTools.

1. Por que você pode precisar da URL M3U8

A maioria dos leitores chega aqui por uma destas três razões:

Para os três, o fluxo é o mesmo: capturar a URL na aba Network e agir sobre ela.

2. Método 1: Chrome DevTools (recomendado)

O Chrome cobre cerca de 65 por cento dos browsers desktop e o mesmo fluxo funciona no Edge, Brave, Opera e Vivaldi. A aba Network é o lugar mais confiável para capturar URLs de playlist.

Passo a passo

  1. Abra a página que hospeda o vídeo. Não clique Play ainda.
  2. Abra o DevTools: aperte F12 no Windows ou Linux, Cmd + Opt + I no Mac. Você também pode clicar direito em qualquer lugar da página e escolher Inspecionar.
  3. Vá para a aba Network no topo do DevTools.
  4. Na barra de filtros (logo abaixo da toolbar), digite m3u8. Isso restringe as requisições às que contêm m3u8 na URL.
  5. Agora clique Play no vídeo. Em um segundo, uma ou mais requisições M3U8 aparecem na lista filtrada. A primeira costuma ser a playlist master.
  6. Clique na requisição para inspecionar. A aba Headers mostra a URL, a aba Response mostra o conteúdo da playlist.
  7. Clique direito na requisição e escolha Copy > Copy link address. A URL completa, com qualquer query string, está agora na sua área de transferência.

Capturando cookies e headers (para streams privados)

Se a URL M3U8 precisa de autenticação, copiar só a URL não basta. ffmpeg ou yt-dlp vão tomar 403 Forbidden ao requisitá-la sem seus cookies de sessão. A correção é capturar a requisição completa como cURL:

  1. Clique direito na requisição M3U8 na aba Network.
  2. Escolha Copy > Copy as cURL (ou Copy as cURL (bash) no Windows).
  3. Cole no terminal. Você tem agora um one-liner que inclui a URL, o header Cookie, o Referer e qualquer outro header customizado que o player usou.

Para transformar esse comando cURL em um comando ffmpeg, troque curl 'URL' por ffmpeg -headers $'Header1: value\r\nHeader2: value\r\n' -i 'URL' -c copy output.mp4. Trabalhoso, mas confiável.

3. Método 2: Firefox Developer Tools

As ferramentas de desenvolvedor do Firefox seguem o mesmo fluxo com nomes ligeiramente diferentes.

  1. Abra a página (sem clicar Play ainda).
  2. Aperte F12 ou Cmd + Opt + I no Mac.
  3. Clique na aba Network.
  4. Digite m3u8 no filtro de URL no topo da lista de requisições.
  5. Clique Play no vídeo. A requisição da playlist aparece.
  6. Clique direito na requisição e escolha Copy > Copy URL para a URL pura, ou Copy > Copy as cURL para a requisição completa com headers.

O Firefox às vezes rotula playlists HLS como application/x-mpegurl ou application/vnd.apple.mpegurl. A coluna Type mostra o MIME, jeito rápido de confirmar que você pegou a requisição certa. Os MIME types oficiais para HLS estão documentados no MDN.

4. O atalho da extensão de browser

Se você se pega capturando URLs M3U8 mais de uma vez por mês, uma extensão de browser automatiza o fluxo inteiro. Em vez de abrir o DevTools, filtrar, copiar URLs e colar no ffmpeg, a extensão detecta a playlist quando a reprodução começa, captura os headers da sua sessão ativa e oferece download em um clique.

Por que esse é o caminho certo para a maioria dos usuários

O Vidora é a opção que construímos, otimizada especificamente para Vimeo, Bunny.net, streams HLS e fontes MP4. Para uma comparação mais profunda dos métodos de detecção, veja o guia do Bunny.net (em inglês) e o guia do Vimeo (em inglês), que cobrem peculiaridades de cada plataforma.

5. Como ler o M3U8 para escolher a qualidade certa

Com a URL M3U8 em mãos, abrir num browser (ou puxar via curl no terminal) mostra o conteúdo da playlist. Duas estruturas são comuns.

Playlist master

Uma playlist master lista várias renditions de qualidade, cada uma apontando para uma playlist de mídia separada. Parece com isso:

#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=2425000,RESOLUTION=1280x720,CODECS="avc1.4d401f,mp4a.40.2"
720p/playlist.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=4585000,RESOLUTION=1920x1080,CODECS="avc1.640028,mp4a.40.2"
1080p/playlist.m3u8

Cada linha EXT-X-STREAM-INF descreve uma qualidade, e a linha seguinte é a URL da playlist de mídia daquela qualidade. Passe a URL da playlist master ao ffmpeg ou yt-dlp e eles escolhem a maior qualidade automaticamente. Passe a URL específica da playlist de mídia 1080p se quiser forçar essa resolução.

Playlist de mídia

Uma playlist de mídia contém as URLs reais dos segmentos:

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:10
#EXTINF:9.96,
seg-001.ts
#EXTINF:9.92,
seg-002.ts
...
#EXT-X-ENDLIST

A tag #EXT-X-ENDLIST no final indica uma playlist VOD completa. Streams ao vivo omitem essa tag e continuam atualizando a playlist conforme novos segmentos ficam disponíveis. ffmpeg e yt-dlp tratam os dois casos.

6. Armadilhas comuns

A URL M3U8 muda toda vez que você recarrega

A maioria dos CDNs usa URLs assinadas com token de vida curta. O token é parte da URL ou query parameter, e expira em minutos a horas. Se você salvar uma URL M3U8 hoje, pode não funcionar amanhã. Capture URLs frescas a cada vez ou use uma ferramenta que re-busca a playlist quando preciso.

A aba Network está vazia depois de clicar Play

Ou a página usa Service Workers que interceptam requisições (raro), ou a requisição disparou antes de você abrir o DevTools. Recarregue a página com o DevTools já aberto e a requisição é capturada desde o início.

A URL M3U8 funciona no browser mas falha no ffmpeg

O CDN exige um header Referer. Capture a requisição como cURL para pegar os headers e repasse ao ffmpeg com -headers. Essa é a causa número um do clássico "URL funciona no VLC mas falha na linha de comando".

A URL capturada é de um único segmento, não da playlist

Seu filtro pegou uma requisição .ts ou .m4s antes da playlist subir na lista. Recarregue, filtre estritamente por m3u8 e capture a primeira requisição que casar.

A página nunca pede um M3U8

O vídeo pode estar sendo servido como MP4 único (download progressivo) em vez de HLS. Filtre por .mp4 na aba Network. Se aparecer uma requisição MP4 que retorna um stream de vídeo, copie a URL do mesmo jeito. Alguns sites também usam DASH (.mpd), que é um formato diferente coberto no nosso explicador sobre M3U8.

7. Perguntas frequentes

O que é uma URL M3U8?

É o endereço de uma playlist que lista os segmentos de vídeo de um stream HLS. O browser busca essa URL uma vez quando a reprodução começa, depois baixa os segmentos listados dentro dela. Capturar essa URL é o primeiro passo de qualquer fluxo manual HLS.

Por que não vejo o M3U8 na aba Network?

Ou o player ainda não pediu (clique Play para disparar) ou a playlist foi carregada como data URI inline em JavaScript (raro). No segundo caso, busque a string m3u8 no código-fonte da página.

Playlist master vs playlist de mídia, qual é a diferença?

Uma playlist master lista várias renditions de qualidade, cada uma apontando para sua própria playlist de mídia. A playlist de mídia contém as URLs dos segmentos. O ffmpeg aceita as duas: com a master, escolhe a maior qualidade disponível automaticamente.

Posso usar a URL M3U8 fora do browser?

Às vezes. URLs públicas e sem autenticação funcionam em qualquer lugar. URLs assinadas com tokens funcionam até a expiração (geralmente 30 minutos a algumas horas). URLs que precisam de cookies ou Referer exigem que esses headers sejam passados explicitamente. Copy as cURL captura tudo.

Por que minha URL M3U8 para de funcionar depois de um tempo?

CDNs usam URLs assinadas com vida curta para evitar hotlinking. Quando o token expira, a URL retorna 403. Capture de novo a partir de uma reprodução fresca se precisar. Extensões de browser pulam essa armadilha re-buscando quando preciso.

Isso funciona em browsers mobile?

DevTools mobile são limitados. O fluxo confiável é abrir a mesma página no desktop com o mesmo login, capturar lá e usar a URL da sessão desktop. O Safari iOS tem um modo de debug remoto que conecta a um Mac, que funciona, mas é trabalhoso.

Sobre o autor

RGC Digital LLC desenvolve o Vidora, uma extensão Pro do Chrome para download de vídeo do Vimeo, Bunny.net, streams HLS e MP4. Sediada em Albuquerque, NM. Escrevemos sobre ferramentas de vídeo, protocolos de streaming e desenvolvimento de extensões para Chrome.

Leituras relacionadas