usapi.temporama.com.br / relogio
aberto — sem token

Relógio Temporama

O cronômetro, a claquete e o registro de tempo que o Temporama usa em set de filmagem, extraídos do app e transformados em módulo autônomo. Um arquivo de script, um de estilo, nenhuma dependência. Funciona nesta página, funciona na sua.

A amostra, rodando

atalhos — espaço inicia e pausa · V volta · C claquete · R REC e CORTA · Z zera. Ligue o som: o relógio de set é feito para ser ouvido, não olhado.

Por que REC não é o cronômetro

É a distinção que dá sentido a todo o resto, e a que mais se perde quando alguém refaz isso do zero: gravar e cronometrar são dois instrumentos diferentes. O material corre com o cronômetro parado, e o cronômetro corre em ensaio que ninguém grava.

Por isso, ao ligar o REC o módulo abre um registro sem duração — que aparece como GRAVANDO e só fecha no CORTA. Um registro aberto não é dado faltando: é o estado real de uma tomada em curso. E cada volta do cronômetro carrega a marca REC do instante em que aconteceu, que é o que depois separa ensaio de tomada aproveitável.

A claquete é o terceiro instrumento. A batida numera o Take e carimba o timecode de parede — não o start do cronômetro. É esse carimbo que faz a planilha bater com o material na ilha de edição.

A meta, e as quatro faixas

Preenchida a Meta em segundos, cada volta se classifica sozinha. Os limiares são os mesmos do app em produção, não uma reinvenção:

faixaquandoo que quer dizer
no alvodentro de ±1s da metaa tomada tem a duração prevista
entrandode 1s a 3s abaixocurta, mas aproximando — nem acerto nem erro
passoumais de 1s acimaestourou o previsto
—sem meta, ou muito abaixonão se classifica

A cor da faixa é cor de estado, nunca cor de dado. Verde, âmbar e vermelho aqui dizem se a volta bateu a meta — não identificam cena, take nem operador. Por isso todo estado vem com palavra junto: quem não separa verde de vermelho lê a mesma informação que os demais.

Sai em CSV e em PDF

O CSV sai com as mesmas colunas do Temporama — Cena, Take, Vai, REC, Horario, TC_Batida, Tempo, Favorito, Operador, Anotacao, Tipo — de propósito: a planilha exportada daqui abre no mesmo lugar que a exportada do set. Vai com BOM, senão o Excel em português abre acento quebrado.

O PDF é o relatório do set: cena e take atuais, quantos registros, quantos com REC, quantos marcados como aproveitáveis, o tempo somado, e a tabela completa com o histórico. Ele é montado à mão, em cerca de sessenta linhas, sem nenhuma biblioteca — arrastar 300 KB de dependência para dentro do projeto de quem recebe o módulo contradiria a ideia de ferramenta que se leva embora.

Os temas, e por que estas cores

São seis, e nenhuma foi escolhida por gosto. Cada uma passou por um validador antes de entrar, com dois pisos: contraste WCAG do texto sobre o painel, mínimo 4,5:1 (o pior aqui é 14:1), e separação entre as três cores de meta medida em ΔE OKLab, mínimo 8 — inclusive com protanopia e deuteranopia simuladas.

O segundo piso reprovou três paletas na primeira rodada, e sempre no mesmo par: verde e âmbar desaparecem um no outro em protanopia. A saída não foi escurecer, foi puxar o verde para o teal e o vermelho para o carmim — o canal azul é o que o daltonismo preserva. É por isso que nenhum verde aqui é verde puro.

Os números de cada tema estão em PROVA-TEMAS.md, e o validador que os produziu está junto, em validar-temas.py: se você trocar as cores para as suas, rode ele antes — a medida vale mais que a nossa opinião sobre a sua paleta.

Trocar é um atributo: <div id="onde" data-tema="papel">. O temas.css é opcional — o relogio.css sozinho já traz o Noite embutido, e quem quiser uma paleta só não carrega o peso das outras cinco.

Levar embora

Dois arquivos e três linhas. Nada mais:

<link rel="stylesheet" href="https://usapi.temporama.com.br/relogio/relogio.css">
<script src="https://usapi.temporama.com.br/relogio/relogio.js"></script>

<div id="onde"></div>
<script>
  const rl = new Relogio('#onde', { meta: 30, formato: '24', projeto: 'Meu Curta' });

  rl.on('volta',  r => console.log(r.classe, r.duracao));
  rl.on('batida', r => console.log('take', r.take, 'TC', r.tc));
  rl.on('rec',    ( ) => console.log('gravando'));
  rl.on('corta',  r => console.log('fechou com', r.duracao));

  rl.registros;    // os dados crus, a qualquer momento
  rl.csv();        // a planilha como string
  rl.baixarPdf();  // o relatório
</script>

Ou baixe e hospede você mesmo: relogio.js · relogio.css · LEIA-ME.md · VERSAO.txt (com o sha256 de cada arquivo). Todo o CSS é escopado em .rl e o tema são cinco variáveis --rl-*: o módulo não repinta a página de quem o recebeu.

Onde este relógio está

Esta é a próxima versão, e ainda não é a que roda no app. O Temporama em produção está no marco v1.44, cujo relógio vive acoplado ao set — importa store, teleprompter, departamentos e fila offline, e conversa por socket. Este módulo é o mesmo relógio desacoplado, e o compromisso assumido em 09/08/2026 é que ele entra no app no próximo lançamento, o v1.45. Até lá, o que está aqui é amostra pública e é honesto dizer isso: é código que roda, não é código que já embarcou.

O que o módulo ainda não faz, e o app faz: sincronizar entre aparelhos por socket, teleprompter acoplado, e a reconciliação de quem estava gravando quando dois aparelhos discordam. Isso é do set, não do módulo — e é a fronteira que separa o que se democratiza do que é da casa.

Sobreviver a uma recarga ele já faz, com { persistir: true } — e faz melhor que o app: além do registro aberto do REC, guarda os registros inteiros, a cena, o take e a meta. Vem desligado, porque módulo que escreve no navegador de quem o instalou sem ninguém pedir é módulo mal-educado. O cronômetro em curso, esse não volta: performance.now() zera na recarga, e um cronômetro que mente é pior que um que zera.

TEMPORAMA · Rl relógio · módulo v1.45-pre · publicado 09/08/2026 · temporama.com.br