Skip to content
Projects

probuled/tv-do-mundo has 12 GitHub stars and 0 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-09 18:44 UTC. Last push 2026-11-01.

How these counts are measured

Globo 3D para assistir TV aberta ao vivo de qualquer lugar do mundo.

Measured star growth

in 24h
0
in 7 days
Update delayed
in 15 days
Update delayed
in 1 month
Update delayed

Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.

README.md

Original

Logo do TV do Mundo

TV do Mundo

Gire o planeta, clique num ponto e assista à TV aberta daquele lugar, ao vivo.

Acessar o TV do Mundo · Versões · Changelog

CI Versão Licença MIT

Canal da Guatemala tocando no TV do Mundo, com o globo e o painel lateral

O TV do Mundo é um globo 3D no navegador em que cada canal de TV aberta ao vivo é um ponto de luz. São cerca de 9.600 canais de 179 países. Clique num ponto para assistir na hora, ou aperte Zapear pelo planeta e deixe o globo viajar sozinho de canal em canal. Se preferir algo mais parecido com uma TV de verdade, troque para o Modo TV: uma grade de canais numerados, com a tela no meio e o controle remoto no teclado.

Em produção: tv-do-mundo.probuled.workers.dev, hospedado no Cloudflare. A versão publicada é sempre a da branch main.

O que dá para fazer

  • Assistir a qualquer canal do mapa. O globo voa até o canal, que começa a tocar no player ao lado, com a bandeira, a cidade e a hora local de onde ele transmite.
  • Zapear pelo planeta. O app sorteia um canal a cada intervalo (10, 25, 45 ou 90 segundos) e voa até ele. Se um canal estiver fora do ar, ele pula sozinho para o próximo.
  • Ver o dia e a noite de verdade. O lado escuro do globo segue a posição real do Sol, com as luzes das cidades.
  • Filtrar. Por categoria (notícias, esportes, música, infantil e outras), idioma e país. A cor de cada ponto é a da categoria, então os chips do painel funcionam como legenda do mapa.
  • Buscar. Por nome do canal, país ou cidade, com o atalho /.
  • Guardar. Favoritos e histórico ficam salvos no navegador, e cada canal tem um link para compartilhar.
  • Entender por que um canal não abre. O botão Fora do ar? explica cada mensagem de erro do player (bloqueio regional, link vencido, servidor lento, formato que o navegador não toca) e mostra que, na maioria das vezes, a falha é temporária.
  • Ligar o visual Satélite. Visão noturna verde, linhas de varredura e uma faixa de telemetria com o horário UTC, as coordenadas e a hora local do canal.
Visual Satélite Painel recolhido
Visual Satélite com visão noturna e telemetria Painel lateral recolhido, com a busca no topo

TV do Mundo no celular
No celular, o painel vira uma gaveta e o player abre embaixo.

Modo TV

Além do globo, os canais podem ser vistos como numa TV. Use a troca Globo | TV no topo do painel (ou na barra do painel recolhido). A escolha fica salva no navegador.

Modo TV: categorias à esquerda, a tela no meio e a lista de canais numerados à direita

  • Canais numerados. Cada canal tem um número fixo, como numa TV: o Brasil abre a numeração, com as redes nacionais primeiro, e depois vêm os outros países em ordem alfabética. O número não muda com os filtros.
  • Navegação à esquerda. Busca, Favoritos, Histórico e as categorias com a contagem de canais.
  • Lista à direita. Filtros por país, idioma e estado, com o logo, a cidade, a categoria e a hora local de cada canal. O canal que está tocando fica destacado.
  • A tela no meio. Mostra AO VIVO e o número do canal, com controles próprios: pausar, som, canal anterior e próximo, janela flutuante e tela cheia. Quando um canal falha, a própria tela oferece o próximo canal e a explicação do erro.
  • Controle remoto no teclado. As setas trocam de canal, digitar um número (por exemplo 25) leva direto ao canal e F abre a tela cheia.
Categoria e país escolhidos Janela "Fora do ar?"
Modo TV filtrado por Esportes no Brasil, com um canal fora do ar Janela que explica cada mensagem de canal fora do ar

Modo TV no celular
No celular, o modo TV vira uma coluna só: navegação, tela, informações e lista.

Atalhos

Tecla Ação
/ Buscar
Z Zapear pelo planeta
R Canal aleatório
V Visual Satélite
Esc Fechar o player

No modo TV:

Tecla Ação
↑ ↓ Canal anterior e próximo
0 a 9 Digitar o número do canal
F Tela cheia

Como funciona

De onde vêm os canais. Da lista pública do iptv-org, mantida pela comunidade. O script scripts/build-data.ts baixa a API deles e filtra o que o navegador consegue tocar: saem os streams que exigem cabeçalhos especiais, os canais adultos e os encerrados.

Onde fica cada ponto. O iptv-org não tem coordenadas. Cada canal é posicionado pela área de transmissão informada na lista, na ordem cidade, estado e país, com coordenadas do Wikidata. Hoje 631 canais ficam na cidade, 339 no estado e o restante na capital do país, espalhados numa espiral para não ficarem empilhados.

Como o vídeo toca. O site não hospeda nem retransmite vídeo: o player (hls.js) toca a URL original de cada emissora, direto no navegador de quem assiste. Ele tenta cada fonte do canal, começando pelas que passaram no teste de funcionamento, e avisa quando nenhuma responde em 12 segundos.

HTTPS. Em produção o site roda em HTTPS, e o navegador bloqueia streams HTTP nessas páginas. O app detecta isso e usa só fontes HTTPS: cerca de 85% dos canais têm pelo menos uma. Os outros não aparecem no mapa publicado, mas tocam quando o projeto roda localmente.

O globo. globe.gl sobre three.js, com um shader próprio para o dia e a noite e uma camada própria de pontos: os cerca de 9.600 canais são desenhados de uma vez, e os do outro lado do planeta somem.

Rodando localmente

Requer Node.js 24.

npm install
npm run dev        # http://localhost:5173

Ou com Docker (nginx servindo o build):

docker compose up -d --build   # http://localhost:8080

A imagem de cada versão também fica publicada em ghcr.io/probuled/tv-do-mundo.

Atualizando os canais

Os dados já vêm em public/data/channels.json. Para gerar de novo a partir do iptv-org:

npm run check      # opcional: testa todos os streams (10 a 50 minutos)
npm run data       # baixa a lista, geolocaliza e gera o JSON

Os downloads ficam em cache na pasta .cache/. Apague-a para buscar dados novos.

Scripts

Comando O que faz
npm run dev Servidor de desenvolvimento
npm run build Build de produção em dist/
npm run lint oxlint
npm run typecheck Checagem de tipos do TypeScript
npm test Testes com Vitest
npm run format Formata o código com Prettier

Estrutura

scripts/build-data.ts     API do iptv-org + coordenadas do Wikidata -> public/data/channels.json
scripts/check-streams.ts  teste de todos os streams -> .cache/health.json
src/globe/GlobeView.tsx   globo, shader de dia e noite e a camada de pontos dos canais
src/ui/Sidebar.tsx        painel lateral e a barra do painel recolhido
src/ui/Player.tsx         player do globo
src/ui/useChannelStream.ts  tentativa de cada fonte do canal e o modo zapear (usado pelos dois players)
src/ui/TvGuide.tsx        modo TV: navegação, lista de canais numerados e o controle remoto no teclado
src/ui/TvPlayer.tsx       tela do modo TV, com controles próprios e as informações do canal
src/ui/Search.tsx         busca de canais
src/search.ts             índice de busca, compartilhado pela busca e pelo modo TV
src/tv.ts                 numeração dos canais e a lista do modo TV
src/ui/Overlays.tsx       telemetria do visual Satélite e tooltip

Contribuindo

O projeto usa Git Flow e Conventional Commits, com as regras em CLAUDE.md. Em resumo: todo trabalho sai da develop numa branch <tipo>/APP-<n>-<descricao>, os commits seguem Conventional Commits em português, e tudo entra por pull request com os checks ci, pr-title e commitlint passando. Cada release vai para a main com uma tag vX.Y.Z, e é a main que está em produção.

Créditos

Os canais são de terceiros e podem sair do ar a qualquer momento. Canais adultos ficam de fora.

Licença

Código sob a licença MIT. Os canais, as coordenadas e as imagens seguem as licenças das fontes listadas em Créditos.

Explore related projects