iiPTV
Todos os guias

M3U e M3U8: qual é a diferença?

Diferencie uma lista de canais de um manifesto HLS, entenda a codificação UTF-8 e escolha como abrir um arquivo M3U ou M3U8.

M3U e M3U8 são listas de reprodução em texto. M3U8 indica codificação UTF-8; em fluxos de transmissão, um endereço M3U8 frequentemente identifica um manifesto HLS de uma única transmissão. Já uma lista M3U de IPTV costuma reunir vários canais. Na prática, a diferença entre M3U e M3U8 envolve tanto a codificação quanto a função do arquivo. Confira o conteúdo antes de decidir se deve importar um catálogo de canais ou abrir uma transmissão HLS individual.

Comparação conceitual entre uma lista com vários canais e um manifesto HLS com segmentos de mídia
Ilustração conceitual das duas funções de lista; não é uma captura real do app.

M3U e M3U8: a codificação é uma das diferenças

M3U8 identifica texto UTF-8

UTF-8 representa nomes em muitos idiomas de forma consistente. Um arquivo M3U também pode usar UTF-8; a extensão mais curta, por si só, não identifica a codificação real. Espera-se que um arquivo M3U8 use texto UTF-8. Essa diferença entre M3U e M3U8 diz respeito à representação dos caracteres, não ao codec de vídeo da fonte.

A especificação HLS, seção 4 da RFC 8216, descreve os requisitos de UTF-8 para listas HLS. Isso não significa que todo arquivo chamado M3U8 seja uma fonte HLS válida ou reproduzível. Um nome de arquivo pode enganar, e um servidor pode publicar uma lista sem uma extensão esclarecedora.

Problemas de caracteres e de mídia são diferentes

Se um nome aparece com caracteres estranhos, verifique como o texto original foi codificado e salvo. Se o nome está correto, mas a transmissão falha, a codificação de texto pode não ser o problema. Preserve uma cópia antes de converter qualquer coisa. Alterar um arquivo de texto não fornece um decodificador ausente nem recupera uma fonte indisponível.

M3U e M3U8: lista de canais ou manifesto de transmissão?

Uma lista de canais oferece opções

Uma lista M3U típica de IPTV reúne itens com nomes que apontam para URLs completas de mídia. Selecionar um item informa ao player qual fonte abrir. Os itens podem incluir manifestos HLS, arquivos de vídeo compatíveis ou protocolos que o navegador não reproduz. A extensão M3U da lista não certifica os formatos dentro dela.

Um manifesto HLS descreve os recursos de reprodução

Uma lista de mídia HLS aponta para segmentos de mídia. Um manifesto mestre HLS pode apontar para versões alternativas. Esse manifesto descreve os recursos de reprodução de uma transmissão, em vez de funcionar como uma lista de vários canais de TV. O player pode precisar de várias requisições bem-sucedidas antes de o vídeo avançar, mesmo que a primeira resposta do manifesto HLS seja legível.

A visão geral de HLS da Apple explica essa forma de distribuição. IPTV descreve o contexto mais amplo de assistir; HLS descreve uma das maneiras de entregar a mídia. Os termos se relacionam, mas não são intercambiáveis.

Confira dois exemplos curtos de M3U e M3U8

Uma lista com itens nomeados

Este exemplo M3U aponta para um canal. A URL example.com ilustra a estrutura e não é uma fonte em funcionamento.

#EXTM3U
#EXTINF:-1 group-title="Aprendizado",Canal de exemplo
https://example.com/live/channel.m3u8

Essa lista de canais funciona como um catálogo: o item nomeado aponta para outro recurso. Importar a lista M3U permite selecionar esse item. O endereço M3U8 de destino pode então descrever a transmissão HLS real.

Um manifesto de segmentos de mídia

Este segundo exemplo ilustra apenas o formato de uma lista de mídia HLS simplificada; o segmento não está incluído nem pode ser reproduzido aqui.

#EXTM3U
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:6,
segment000.ts
#EXT-X-ENDLIST

Os dois exemplos contêm #EXTM3U e #EXTINF; portanto, essas linhas sozinhas não bastam para distinguir a finalidade. As tags específicas de HLS e as referências a segmentos ou versões fornecem mais contexto. Confira o exemplo curto inteiro, em vez de classificar um arquivo grande pela primeira linha.

M3U e M3U8: escolha arquivo ou URL

Uma lista local de canais

Use uma lista local de canais quando ela contiver endereços completos de mídia e você tiver permissão para usá-la. O navegador lê o texto sem adicioná-lo a uma biblioteca de conta. Guarde a fonte original separadamente para obter uma lista atualizada depois.

Um manifesto remoto precisa de sua origem

Um manifesto HLS pode apontar para caminhos relativos de segmentos. Sua URL original fornece a base para resolvê-los. Uma cópia local apenas desse texto não contém os segmentos citados nem estabelece onde estão remotamente. Use a URL original e autorizada do manifesto, sem presumir que o arquivo baixado funciona sozinho.

O player M3U aceita listas, e um manifesto HLS remoto pode ser tratado como entrada de transmissão única. Essa capacidade não significa que toda fonte M3U8 funcione. A autorização da fonte, o suporte do navegador e os recursos referenciados continuam sendo necessários.

M3U e M3U8: por que renomear não resolve a reprodução

Renomear .m3u para .m3u8 muda o nome do arquivo, não os bytes, as URLs nem a codificação do vídeo. Isso não transforma uma lista de canais em um manifesto HLS válido. Da mesma forma, dar o nome stream.m3u8 a uma resposta de erro HTML não cria mídia.

O navegador precisa decodificar o áudio e o vídeo reais. Na reprodução por biblioteca HLS, os recursos referenciados também precisam permitir as requisições necessárias. O projeto hls.js documenta seus requisitos entre origens. Carregar um manifesto HLS com sucesso é apenas uma etapa dessa cadeia de requisições.

Investigue um manifesto HLS baixado

Imagine um manifesto HLS autorizado que aponta para segment000.ts em relação ao próprio diretório. Você salva o texto localmente e importa a cópia. O navegador perde a base remota original, e os segmentos não foram baixados com o texto. Esse caso hipotético de M3U e M3U8 explica um problema de recurso ausente, em vez de comprovar falta de suporte à extensão M3U8.

Volte à URL original do manifesto HLS e teste nas condições documentadas pela fonte. Se a reprodução continuar falhando, compare com a demonstração controlada e confira o erro visível. Não renomeie repetidamente o mesmo arquivo. Nossa ajuda de reprodução distingue falhas de acesso, codec e disponibilidade.

Separe a inspeção do formato da edição de um manifesto HLS do produtor. Remover uma tag desconhecida ou inventar nomes de segmentos pode danificar um manifesto válido. Em um relato, um trecho curto com dados sensíveis ocultados, o cabeçalho, as tags HLS relevantes e os tipos de referência costuma ajudar mais do que uma exportação privada grande. Preserve o texto original para comparar com alterações locais. Se a fonte exige licença ou acesso protegido, outra extensão não fornece essa permissão.

Escolha um próximo passo útil

Para entender a estrutura dos itens, leia Entenda as listas M3U. Para a implementação atual no navegador e os testes registrados, veja Compatibilidade. Relate o tipo de entrada, a etapa que falhou e um exemplo com dados sensíveis ocultados, sem compartilhar URLs privadas.

A decisão útil entre M3U e M3U8 não é qual extensão parece mais moderna. Identifique a codificação, a função da lista de canais ou do manifesto HLS e se os recursos referenciados estão acessíveis. Essas três verificações mostram muito mais sobre o que o navegador precisa fazer.