📺

IPTV.cmd

IPTV Commander · Player M3U8 / HLS
📺
Selecione um canal ou cole um link
📡
Nenhum canal ativo
OFFLINE
📖 Como usar
📝 Formato da lista
🛡️ Proxy
⚠️ Avisos técnicos
🌐 Fontes públicas
1. URL Manual: cole qualquer link M3U8/HLS no campo da esquerda e clique Tocar.
2. Lista de canais: hospede um arquivo canais.txt no mesmo repositório do GitHub Pages que esta página, e ele aparece automaticamente na lista. Edite no GitHub e a próxima recarga já reflete.
3. Lista externa: pode apontar para qualquer URL pública — incluindo listas M3U do iptv-org (ver aba Fontes públicas).
Formato simples (recomendado): um canal por linha, separado por |:
# Lista de canais IPTV
# Formato: PAIS|NOME|URL
# Linhas comecando com # sao ignoradas

AR|Telefe|http://190.104.226.30/Live/870787012c00961adaf9b2304d704b57/telefe_720.m3u8
AR|TV Publica|https://...m3u8
BR|TV Brasil|https://...m3u8
US|NASA TV|https://...m3u8
Formato M3U padrão: também é aceito automaticamente. Se a primeira linha começar com #EXTM3U, o parser usa o padrão M3U/M3U8 (com #EXTINF + URL).
Códigos de país: use ISO-3166 alpha-2 (AR, BR, US, UK, ES, MX, CL, UY...). A bandeira aparece automaticamente.
Para que serve: resolve dois problemas — CORS (quando o servidor IPTV não envia Access-Control-Allow-Origin) e mixed content (streams HTTP em página HTTPS).
Como funciona: um Cloudflare Worker baixa o stream, adiciona os headers CORS, reescreve as URLs internas do manifest M3U8 (master → variants → segmentos .ts), e devolve tudo via HTTPS.
⚠ Custo de banda: 1h de vídeo HD ≈ 1GB transitando pelo Worker. O free tier do Cloudflare é 100k requests/dia (cada chunk .ts é 1 request, vídeo de 6s/chunk ≈ 600 requests/h). Use para sessões eventuais, não 24/7.
Como hospedar (5 minutos):
  1. Crie conta gratuita em cloudflare.com
  2. Vá em Workers & Pages → Create → Hello World
  3. Dê um nome (ex: hls-proxy) e clique Deploy
  4. Clique em Edit code e cole o conteúdo de hls-proxy-worker.js
  5. Clique Save and Deploy
  6. Copie a URL gerada (algo como https://hls-proxy.SEU-USUARIO.workers.dev)
  7. Cole no campo URL do Cloudflare Worker aqui na esquerda
  8. Marque Usar proxy e teste tocar o canal HTTP
Restringir o Worker: abra hls-proxy-worker.js e troque ALLOWED_ORIGINS = ['*'] por ['https://rmayormartins.github.io'] para evitar que outros usem seu Worker.
⚠ Limitações: não resolve geo-block (servidor IPTV vê o IP do datacenter Cloudflare, que provavelmente não é o país certo). Não resolve DRM (streams criptografados com chave externa). Para geo-block use VPN no seu lado.
⚠ HTTPS / HTTP (mixed content): páginas servidas via https:// (caso do GitHub Pages) não conseguem tocar streams http://. O navegador bloqueia. Soluções: (1) use streams https://, (2) abra esta página localmente com file://, (3) hospede em servidor HTTP próprio.
⚠ CORS: servidores IPTV precisam enviar header Access-Control-Allow-Origin para o HLS.js conseguir ler os segmentos. Streams curados (iptv-org, broadcasters oficiais) costumam ter CORS aberto. IPs aleatórios geralmente não — vão dar erro de "manifest fetch".
⚠ Streams instáveis: muitos endpoints IPTV mudam de IP, caem ou expiram tokens. Se um canal não toca hoje, amanhã pode tocar. Não é problema do player.
Safari: reproduz HLS nativamente, sem precisar do HLS.js. Já é tratado pelo código automaticamente.
iptv-org é o repositório comunitário mais conhecido, com listas M3U organizadas por país, idioma, categoria. Conteúdo público e gratuito.
Argentina: https://iptv-org.github.io/iptv/countries/ar.m3u
Brasil: https://iptv-org.github.io/iptv/countries/br.m3u
Todos os países: https://iptv-org.github.io/iptv/index.m3u
Cole qualquer uma dessas URLs no campo Fonte da Lista e clique Recarregar. A lista é parseada e os canais aparecem agrupados.
Sobre o link Telefe que você passou: é um endpoint não oficial em IP fixo (190.104.226.30). Pode funcionar localmente mas não vai tocar em GitHub Pages por ser HTTP. Para Telefe oficial, busque em iptv-org/ar.m3u.