Atrium Soccer

Transmissão de alto nível

API-Football
Base (admin)
Ajuda
TRANSMISSÃO AO VIVO

Manual do sistema

Visão geral

Este painel alimenta overlays de futebol no vMix: você escolhe o jogo, ajusta dados úteis ao Data Source (cores, URLs) e consulta escalação no fluxo de transmissão profissional.

Como usar o painel (regra de layout)

Este projeto mantém o ambiente do operador sem textos de ajuda (sem dicas longas nem explicações de fluxo na tela principal). O funcionamento, opções e exceções estão descritos nas seções abaixo e nos títulos do Manual (?).

1. Selecionar o jogo

  • Por liga: país → liga → intervalo de datas → partida na lista de jogos.
  • Por time ou seleção: busque o time, defina as datas e escolha o jogo. Indicado para amistosos e janelas FIFA sem escolher liga.
  • Use Zerar filtro para recomeçar os campos de busca.

2. Dados para o vMix

Depois que o jogo está selecionado, o painel mostra blocos recolhíveis. Explicações de cada bloco estão nas subseções abaixo.

Uniformes e cores

Em Paleta de cores aparecem principal, secundária e short (API / configuração). Em Envio ao Data Source você define o que o vMix usa para camisa e short.

Cor manual: ao escolher Manual em Camisa para vMix ou Short para vMix, surgem o seletor e o hex. Essa cor é a enviada ao Data Source ao sincronizar.

Web Controller

URL base do Web Controller do vMix (porta usual 8088), de preferência o IPv4 da rede local desta máquina (ex.: http://192.168.x.x:8088). Opcional: senha, se estiver ativada no vMix.

Ao carregar um jogo no painel, o app consulta o servidor (GET /api/vmix/web-controller-hints) e monta botões com endereços sugeridos — IP da rede local primeiro, depois loopback (127.0.0.1 / localhost) na máquina onde o Node está rodando. Clicar preenche o campo e testa a conexão.

Preenchimento automático: se o campo estiver vazio após as sugestões, o painel usa o primeiro IP da rede local retornado pelo servidor (onde o Node roda), e só cai para 127.0.0.1 se não houver IP LAN. O carregamento dispara também enquanto o jogo ainda está «Carregando…» na API. Valores no localStorage não são sobrescritos — apague o campo ou escolha de novo o jogo.

Se o vMix estiver em outro computador, use o IP desse PC no Web Controller (não o da máquina do site, se o Node estiver na nuvem). A porta da sugestão pode ser alterada no servidor com VMIX_WEB_CONTROLLER_PORT no .env.

Sincronizar com vMix (último bloco do painel) envia dados e URLs aos Browsers quando o Web Controller está configurado. O app testa a conexão ao alterar URL/senha.

URLs dos overlays

Copiar cola a URL no clipboard. Em Nome, escolha o input Browser do vMix na lista (formato 12 - PLACAR, por ordem numérica). A lista carrega depois que o painel conecta ao Web Controller; reconecte se trocar de preset no vMix.

Se o vMix estiver na internet ou em outra rede, use o endereço HTTPS público deste site nas URLs — não use IP privado (10.x, 192.168.x).

Overlay narração e equipe

Narração, comentários, reportagem e plantão: os textos salvam ao digitar (com um pequeno atraso) e ao clicar em Sincronizar com vMix. No vMix, atualize o Browser Source se não aparecer na hora (ex.: F5).

Título GT, escudos e contagem

Horário do apito: opcional; substitui a data da API até você limpar o campo. Valor em America/New_York (leste dos EUA — EST no inverno, EDT no verão). Afeta contagem até o apito, overlay de contagem e Data Source.

Contagem nativa do vMix: para Titles que usam o objeto Countdown interno (SetCountdown + StartCountdown). Com isso ligado, o app não manda SetText no campo de texto usado para MM:ss — para atualizar esse texto, desmarque a contagem nativa e use a linha Contagem (apito) com SelectedName.

Atualizar automaticamente a cada 1 s: só se precisar de MM:ss no texto do GT sem Countdown nativo; desligado por padrão — você pode só clicar em Sincronizar quando quiser.

Um input Title/GT: ao informar nome ou número do input, o app consulta o vMix e sugere SelectedName. O Sincronizar envia placar, nomes e logos com o jogo já escolhido.

Sincronizar e base da URL

Este bloco fica por último no painel. Sincronizar com vMix envia dados do jogo e URLs aos inputs Browser quando o Web Controller está configurado. Os botões de base da URL indicam como o vMix alcança este servidor (localhost, rede local ou URL pública).

Modo API e Mocks

  • API: o servidor usa a API-Football (chave no .env) e o poller atualiza fixture, eventos, tabela, escalações etc. Consome quota.
  • Mocks: dados de exemplo locais, sem chamadas externas — ideal para testar layout e vMix sem gastar requisições.
  • O estado vigente aparece no selo ao lado dos botões. Em produção na internet, o administrador pode exigir token no campo ao lado (mesmo valor de LIVE_MODE_TOGGLE_SECRET no servidor).

Modo SAFE (Mocks) e busca por time

Com o modo SAFE (mocks), a lista por time ou seleção usa apenas dados locais de exemplo (ex.: MLS). Para Brasil, seleções, amistosos reais e partidas fora do conjunto de mocks, ative o modo API no topo (botão API).

Sessão longa em API

Se o modo API ficar ligado por muitas horas, pode abrir um modal de confirmação: confirme para continuar ou mude para Mocks para poupar quota. O servidor pode voltar para Mocks sozinho se ninguém responder a tempo — isso é configurável no ambiente do servidor.

Quota e desempenho

Cada ciclo do poller faz várias requisições. Plano gratuito: use Mocks sempre que possível e só API durante o jogo. Intervalo entre ciclos (POLL_INTERVAL_MS) e limites de taxa ajustam no .env — detalhes no README do projeto.

1. Selecione o jogo