Painel web avançado para controlar o OBS Studio via obs-websocket v5. Sem servidor, ideal para GitHub Pages ou uso local. Inclui layout arrastável, macros (várias ações em sequência), perfis, atalhos de teclado, PWA offline e modo demo para testar sem o OBS.
- Conexão ao OBS por WebSocket (v5) com autenticação por desafio.
- Deck com arrastar e soltar para reordenar, redimensionar tile (colspan/rowspan) e edição por clique longo.
- Botões com ações: trocar cena, alternar mute de input, mostrar/ocultar item de cena, iniciar/parar stream, gravação e câmera virtual, salvar replay buffer, request custom e macro (lista de requests).
- Perfis: crie vários layouts nomeados, ative, exporte/importa como JSON e compartilhe por link (query
?s=com JSON Base64URL). - Atalhos de teclado: atribua uma tecla por botão.
- PWA: adicionável à tela inicial e funcional offline (UI). O controle do OBS requer rede local com o OBS aberto.
- Modo Demo: simula respostas do OBS para você montar e validar o deck antes de conectar.
- OBS 28+ com obs-websocket v5 habilitado. Defina uma senha em Tools → WebSocket Server Settings.
- Para GitHub Pages (HTTPS), é preciso usar WSS via proxy TLS ou abrir a página via HTTP local (ex.:
python -m http.server).
- Abra
index.htmlservindo via HTTP local ou publique no Pages. - Informe
URL(ex.:ws://127.0.0.1:4455) e senha; clique Conectar. - Clique em Editar para organizar o grid, + Novo para criar botões.
- Para macro, selecione tipo Macro e adicione passos (requests) que executam em sequência.
- Salve como Perfil (menu perfis). Exporte para JSON quando quiser.
- Para testar sem OBS, habilite Modo Demo no topo; os botões funcionam e atualizam indicadores.
- Em HTTPS, o navegador bloqueia
ws://. Para contornar:- Rode a página localmente via HTTP (apenas para uso pessoal na rede).
- Configure um proxy reverso TLS que exponha
wss://...encaminhando paraws://127.0.0.1:4455.
- Use senha forte no WebSocket, restrinja acesso a IPs confiáveis e prefira WSS quando exposto.
- Por padrão a senha não é salva. Você pode marcar “Lembrar senha” se for uso pessoal e local.
index.html: app completo (UI + lógica).manifest.webmanifest: manifesto PWA.sw.js: service worker com cache estático.README.md: este arquivo.LICENSE: MIT.
- Exportar baixa um
.jsoncom o layout do perfil atual. - Importar carrega um
.jsone substitui o layout do perfil ativo. - Compartilhar Link gera URL com
?s=...contendo o layout Base64URL; ao abrir, você pode mesclar ao perfil.
- Cenas:
SetCurrentProgramScene,GetSceneItemList,SetSceneItemEnabled. - Inputs:
GetInputMute,SetInputMute. - Saídas:
Start/StopStream,Start/StopRecording,Start/StopVirtualCam,SaveReplayBuffer. - Custom: envie
requestTypeerequestData(JSON). - Macro: sequência de ações acima, executadas com pequena espera entre elas.
MIT.