Por que um erro de CORS no M3U8 bloqueia reprodução e conversão no navegador
Uma página do navegador só pode ler uma playlist quando o host da mídia autoriza a origem daquela página. A playlist, as playlists filhas, as chaves de criptografia, os mapas de inicialização e cada segmento de mídia precisam de uma resposta entre origens bem-sucedida.
Abrir uma URL em uma nova aba prova que o servidor consegue retornar bytes, mas não prova que o JavaScript de outra origem pode lê-los. VLC, FFmpeg e aplicativos nativos não aplicam a política de mesma origem do navegador da mesma forma.
Como os proprietários da transmissão podem corrigir cabeçalhos de resposta CORS do M3U8
Configure a CDN ou o armazenamento de objetos para retornar Access-Control-Allow-Origin para a origem do aplicativo web, permitir solicitações GET e HEAD, expor Content-Length e Content-Range quando solicitações de intervalo forem usadas e garantir que solicitações OPTIONS tenham êxito quando cabeçalhos personalizados dispararem um preflight.
Verifique também os redirecionamentos, além da resposta final do segmento. Uma playlist mestra configurada corretamente ainda pode falhar quando a playlist filha ou o host do segmento omite cabeçalhos CORS.
- Teste a playlist mestra e um segmento de mídia
- Inspecione as respostas de redirecionamento
- Verifique as solicitações de intervalo quando EXT-X-BYTERANGE é usado
Por que esta ferramenta de M3U8 não oferece um proxy público de bypass de CORS
Um proxy genérico pode expor URLs privadas, absorver banda considerável e transformar uma ferramenta de depuração em um retransmissor de mídia que o operador não controla. Por isso, o M3U8toMP4.org mantém o caminho dos dados direto entre o seu navegador e a fonte.
Se você é o dono da fonte, corrija a configuração do servidor dela. Para sistemas internos privados, rode um retransmissor de mesma origem controlado, com autenticação, listas de permissão de URL, limites de solicitação e registros de auditoria, em vez de usar um proxy aberto.