{
  "id": "clube-shelby-ep2",
  "titulo": "A Shelby no Google",
  "categoria": "narrado",
  "resumo": "episódio 2 da série \"Barbearia Shelby em 7 dias\", sobre o Dia 2: fazer a barbearia aparecer no Google. Narrado, 2 min 9 s, 9:16, montado como um take único: uma câmera só numa mesa escura, sem corte, e cada assunto nasce do anterior. É um HTML com o quadro calculado pelo tempo (`seek(t)`), renderizado no Chromium a 60 qps com desfoque de movimento de obturador. A versão publicada abre com uma gravação de celular filmando o monitor, e a câmera mergulha na tela até a gravação virar o próprio vídeo. Aprovado em 13/10/2026 como a melhor edição do estúdio até aqui e publicado no Instagram no mesmo dia. Feito pelo Clube do Motion.",
  "indicado": "quem conta o caso de um negócio local ou ensina um passo a passo com ferramentas reais, em série, para o Instagram; vídeo narrado de 1 a 3 min em que o processo precisa parecer um movimento só.",
  "estilo": [
    "take único",
    "câmera de operador",
    "identidade do assunto",
    "prints reais",
    "legenda viva",
    "tonais no tom da trilha",
    "celular filmando a tela"
  ],
  "ficha": {
    "formato": "1080×1920, 60 qps, 9:16, cor BT.709",
    "duracao": "129,4 s na versão publicada; o take sozinho tem 128,5 s e começa 0,92 s depois da abertura do celular",
    "motor": "html",
    "voz": "voz clonada na ElevenLabs (Eleven v4), juntada a 1,15× e depois acelerada para 1,2× junto com a trilha",
    "musica": "ver o guia de estilo",
    "fontes": "ver o guia de estilo"
  },
  "ferramentas": [
    "Claude Code",
    "ElevenLabs"
  ],
  "ficha_tecnica": {
    "Duração": "129,4 s na versão publicada; o take sozinho tem 128,5 s e começa 0,92 s depois da abertura do celular",
    "Formato": "1080×1920, 60 qps, 9:16, cor BT.709",
    "Ferramenta": "HTML + CSS + JavaScript com o motor `take.js`, render com Chromium sem janela e obturador de 180°; abertura do celular em Python com OpenCV e ffmpeg",
    "Voz": "voz clonada na ElevenLabs (Eleven v4), juntada a 1,15× e depois acelerada para 1,2× junto com a trilha",
    "Trilha": "tema de Peaky Blinders (\"Red Right Hand\", de Nick Cave & The Bad Seeds, em três versões) na abertura, na recapitulação e no fecho; o jazz instrumental \"Bringing Home The Blues\", do Blue Stew, nos trechos de trabalho",
    "Som": "273 eventos exportados da própria composição, um som por gesto, tonais do Film Score Vol. 3 em Si menor e Fá maior; −14,2 LUFS",
    "Conferência": "oráculo do take: continuidade 1,00 em todas as fronteiras; na v1, 43 % dos quadros em respiro",
    "Publicado": "Instagram, 13/10/2026",
    "Arquivo final": "MP4 H.264 com áudio AAC, 138 MB"
  },
  "etapas": [
    {
      "titulo": "O roteiro e a voz",
      "texto": "**Resumo:** a fala do episódio 2 exatamente como foi enviada à voz clonada (12 parágrafos, com a grafia de pronúncia), a tabela que devolve essa grafia à escrita normal e as cenas por tempo. O episódio cobre só o Dia 2, aparecer no Google, e fecha com uma recapitulação dos dias 0 a 2 e o gancho do Dia 3. Os tempos são os da composição (`comp/index.html`); na versão publicada, tudo acontece 0,92 s depois, por causa da abertura do celular.\n\n## Como a fala foi feita\n\n- **Estrutura:** gancho que retoma a frase que fechou o episódio 1, o problema com números reais da região, três passos (Perfil da Empresa no Google, descrição escrita pela IA, avaliações) e a recapitulação com o próximo dia.\n\n- **Números:** vêm de uma coleta no Google Maps feita em 12/10/2026 com 45 barbearias de Paulínia (SP); a fala foi ajustada para bater com a coleta.\n\n- **Voz:** ElevenLabs, Eleven v4, um arquivo por parágrafo (estabilidade 0,52, similaridade 0,73, velocidade 1,05), juntados a 1,15× com pausas curtas, um respiro de 2,6 s antes da recapitulação e 4,5 s no \"continua\". No take, a voz e a trilha foram aceleradas juntas para 1,2×, sem mudar o tom.\n\n## Grafia de pronúncia\n\n | \n\n | Escrito para a voz\n | Leitura normal\n\n | IÁ\n | IA\n\n | chat gê pê tê\n | ChatGPT\n\n | quê érre côde\n | QR code\n\n | linque\n | link\n\n | landin peige\n | landing page\n\n | quatro vírgula nove\n | 4,9\n\n | dia zero, dia um, dia dois, dia três\n | números por extenso\n\n## A fala, verbatim (texto enviado à voz)\n\n**01.** No último vídeo, a Shelby ganhou marca e site. Só que, se você procurar ela no Google agora, ela não aparece. E barbearia que ninguém acha no Google não existe.\n\n**02.** Dia dois: aparecer no Google.\n\n**03.** Antes de mexer em qualquer coisa, eu fui ver como estão as barbearias aqui da região. Pesquisei no Google Maps e apareceram quarenta e cinco resultados. Vinte delas não têm nenhum linque aparecendo, nem pro site, nem pro WhatsApp, nem pro Instagram, então quem acha a barbearia não tem pra onde ir, só o telefone pra ligar. Só onze têm site, e cinco dessas onze não responderam nenhuma das avaliações mais recentes.\n\n**04.** E a nota de avaliação quase não muda de uma pra outra, fica tudo perto de quatro vírgula nove. Se todo mundo tem nota alta, o que chama atenção é ter mais avaliação e um perfil bem preenchido e completo.\n\n**05.** O primeiro passo é o Perfil da Empresa no Google, que é de graça. Como a Shelby é uma barbearia conceito, o perfil que você vai ver aqui é uma simulação, mas o passo a passo é basicamente o mesmo.\n\n**06.** Eu coloco a categoria, o endereço, o horário e o WhatsApp, cadastro os serviços com o mesmo preço do site e subo as fotos da fachada, do salão e dos barbeiros. E o botão que mais importa é o de agendar, que leva direto pro site que a gente fez no episódio passado. Assim, quem acha a Shelby no Google já marca o horário ali mesmo, sem nem precisar passar pelo WhatsApp e congestionar o atendimento.\n\n**07.** A descrição eu peço pro chat gê pê tê escrever em cima da marca, usando as palavras que o cliente geralmente digita quando procura uma barbearia, como o bairro, degradê, barba e tudo mais.\n\n**08.** Depois vêm as avaliações, que pesam muito na hora de alguém escolher. No balcão eu deixaria um quê érre côde que abre direto a tela de avaliar, pro cliente avaliar a barbearia no Google depois do serviço, e quem avaliasse ganharia um desconto na próxima vez. Assim, mais gente faria a avaliação, e a barbearia ganharia volume de avaliações de forma natural.\n\n**09.** E eu faria uma automação com IÁ, com um modelo de resposta pra cada tipo de avaliação, inclusive as ruins, porque quem tá olhando de fora repara em como a barbearia responde.\n\n**10.** Vamos recapitular?\n\n**11.** No dia zero, fizemos o estudo de marca e o branding e construímos a marca da Barbearia Shelby. No dia um, fizemos a landin peige, funcional e otimizada pra experiência do cliente. No dia dois, fizemos todo o setup do Perfil da Empresa no Google, pra que as pessoas achem a barbearia com facilidade, e de quebra tive uma ideia de como aumentar as avaliações do nosso perfil de forma natural, pra gerar mais credibilidade.\n\n**12.** O próximo passo é configurar o atendimento no WhatsApp, e isso é papo pro dia três.\n\n**Na tela, no fim:** \"continua . . .\" com o lacre da Shelby.\n\n## Fala por tempo (tempo da composição)\n\n | \n\n | Parágrafo\n | Tempo (s)\n\n | 01\n | 0,85–8,56\n\n | 02\n | 9,26–10,86\n\n | 03\n | 11,44–29,46\n\n | 04\n | 30,01–38,68\n\n | 05\n | 39,39–47,30\n\n | 06\n | 47,84–64,44\n\n | 07\n | 64,95–73,08\n\n | 08\n | 73,68–88,90\n\n | 09\n | 89,43–97,04\n\n | 10\n | 98,15–98,86\n\n | 11\n | 101,25–118,92\n\n | 12\n | 119,52–123,26\n\nOs tempos de cada palavra estão em `audio/palavras.json`; a composição lê esses tempos pela tabela `T`.\n\n## Cenas por tempo\n\n | \n\n | #\n | Tempo (s)\n | O que aparece\n | O que passa para a próxima\n\n | 1\n | 0,0–3,0\n | as cartas do Dia 0 e do Dia 1 na mesa, continuando o episódio 1; a marca e o site saem de trás delas; câmera em 1,45× no Dia 0, abrindo para 1,12×\n | o ponto, lacre da carta 0\n\n | 2\n | 3,1–8,6\n | o ponto pula e vira o botão da barra de busca (\"barbearia shelby paulinia\"); em \"não aparece\", os resultados chegam com uma vaga tracejada; em \"não existe\", as cartas viram tracejado\n | o ponto pousa na vaga \"?\"\n\n | 3\n | 9,2–11,3\n | a vaga vira a carta do Dia 2, \"O GOOGLE\", com o golpe da trilha e tremor no pouso; \"aparecer no Google\"\n | o ponto, lacre da carta\n\n | 4\n | 11,4–17,2\n | o ponto vira o \"·\" de \"Paulínia · SP\" e depois a barra do Maps, que digita \"barbearia\"; a barra vira o mapa real com a lista; 45 pinos caem no ritmo do contador\n | os pinos\n\n | 5\n | 17,2–29,9\n | os pinos saem do mapa e viram a grade: 20 ficam cinza (\"SEM LINK NENHUM\"), os ícones de site, WhatsApp e Instagram são riscados e balançam no \"pra onde ir\", 11 ficam latão e 5 ganham anel de lacre\n | as fileiras de pinos\n\n | 6\n | 30,0–38,9\n | as fileiras viram linhas de nota (4,9 · 5,0 · 4,9 · 4,7 · 4,9); o \"4,9\" cresce grande; entram as pílulas \"mais avaliações\" e \"perfil completo\"\n | a pílula \"perfil completo\"\n\n | 7\n | 39,4–47,8\n | a pílula vira o Perfil da Empresa no Google; foto, nome e botões acendem em \"Perfil\", \"Empresa\" e \"Google\"; selos \"DE GRAÇA\" e \"barbearia conceito\"; o selo \"SIMULAÇÃO\" carimba; os campos vazios mostram \"Adicionar …\", numerados no \"passo a passo\"\n | a mão\n\n | 8\n | 47,8–55,0\n | a mão clica cada campo na ordem da fala (categoria, endereço, horário, WhatsApp, serviços, site, fotos), com a câmera em 1,4× perseguindo\n | o botão Agendar\n\n | 9\n | 55,1–64,5\n | o clique no Agendar abre um anel; o botão vira o site da Shelby, com a agenda marcada; o WhatsApp lotado aparece riscado no \"congestionar\"\n | a janela\n\n | 10\n | 64,9–73,4\n | a janela vira o ChatGPT (\"Como posso ajudar?\"); o pedido e a resposta real aparecem com a câmera a 1,2×; \"Centro de Paulínia\", \"degradê\" e \"barba\" saem do texto como pílulas\n | as três pílulas\n\n | 11\n | 73,7–76,8\n | o título \"Avaliações\" sobe; as pílulas viram estrelas que \"pesam\" com um golpe\n | as estrelas pousam no balcão\n\n | 12\n | 76,9–89,0\n | o display de balcão com o QR (\"Curtiu o corte?\"); o QR vira o celular com a tela de avaliar; as estrelas acendem em rajada; \"avaliação publicada\" e o selo de desconto; o celular vira a pilha de avaliações\n | a avaliação de cima\n\n | 13\n | 89,4–97,0\n | a pilha vira a avaliação real de 2 estrelas; o ponto vira o selo \"IA\"; a resposta escrita pela IA entra; um círculo marca as estrelas; \"Quem procura vê a resposta\"\n | o ponto\n\n | 14\n | 97,2–99,9\n | \"Vamos recapitular?\", com o ponto como o ponto do \"?\"; respiro e vão seco na música\n | o ponto do \"?\"\n\n | 15\n | 99,9–119,4\n | **drop:** o ponto solta as três cartas; cada carta vira a cena do seu dia e volta (a marca, o site, o perfil), com rótulos como \"estudo de marca\", \"branding\", \"landing page\"; o bônus \"mais avaliações\" com o QR\n | o ponto, lacre do painel\n\n | 16\n | 119,5–123,7\n | o ponto solta a carta do Dia 3, vermelha, com o WhatsApp e um \"?\"\n | o ponto\n\n | 17\n | 123,8–128,5\n | o ponto vira o lacre; \"continua . . .\" e \"SHELBY\"\n | —\n\nA folha completa, com a câmera de cada trecho, está no cabeçalho do `comp/index.html`.\n\n## Momentos para a trilha\n\n- 0–11,2 s: tema de Peaky Blinders em Si menor; golpe e subida na carta do \"Dia dois\" (9,2 s).\n\n- 11,2–98,5 s: jazz em Fá maior sob a fala, cerca de 15 dB abaixo da voz.\n\n- 97,2–99,9 s: \"Vamos recapitular?\", respiro com a subida do tema e vão seco de 0,3 s antes do drop.\n\n- **99,9 s: drop no tema**, com o golpe Collision em Si; a voz volta em 101,25 s.\n\n- 123,8 s: golpe e sino no \"continua . . .\", com o pulso do tema até o fim.\n\nA lista dos 273 eventos de som, com tempo, tipo, pan e intensidade, está em `audio/eventos.json`."
    },
    {
      "titulo": "A identidade visual",
      "texto": "**Resumo:** a mesma identidade do episódio 1, tirada da marca da barbearia e da série Peaky Blinders (lacre, latão, creme das cartas, Playfair Display com Roboto), agora numa mesa escura iluminada como por uma lâmpada de tungstênio. A gramática é a do take único: uma câmera de operador que persegue o assunto, passagens em que um elemento vira o próximo e um obturador de 180° no render. Números tirados do `comp/index.html`, do `take.js`, do `mix.py` e dos scripts da abertura.\n\n## Mesa e luz\n\n | \n\n | Peça\n | Como é\n\n | Tela\n | 1080×1920, fundo `#0d0c0b`\n\n | Luz\n | gradiente radial de 120 % × 70 % centrado no alto (50 %, 18 %): `#2a2219` no centro, `#15120f` no meio e `#0b0a09` nas bordas, como uma lâmpada quente acima da mesa\n\n | Grade de pontos\n | `TK.lattice` com profundidade 1,2, passo de 44 px e ponto de 2,1 px; anda menos que a câmera e faz o movimento ler no escuro\n\n | Véu da legenda\n | gradiente de 820 px de altura na base, do transparente a 90–94 % do fundo\n\n | Grão\n | aplicado na junção dos trechos, no ffmpeg (`noise=c0s=3`), e não na página\n\n | Mundo\n | todas as cenas num plano só, em coordenadas de mesa (1080×1920 = zoom 1): a abertura fica no alto, o Maps desce até y ≈ 2.400, o perfil até y ≈ 6.200, e o site, o ChatGPT, as avaliações e a recapitulação seguem para a direita (x ≈ 1.300 a 2.350)\n\n## Cores\n\n | \n\n | Token\n | Valor\n | Papel\n\n | Fundo\n | `#0d0c0b`\n | a mesa\n\n | Tinta\n | `#EDE6DA`\n | textos claros e legenda\n\n | Apagado\n | `#8d857a`\n | rótulos secundários\n\n | **Lacre**\n | **`#C8102E`**\n | o ponto vivo, pinos e anéis, pílula de destaque, selo \"SIMULAÇÃO\", rótulo das cartas\n\n | **Latão**\n | **`#B08D57`**\n | rótulos espaçados, pílulas de contorno, palavra-chave da legenda\n\n | Creme\n | `#EFE6D2`\n | cartas dos dias, polaroides, pílula clara\n\n | Vidro\n | `rgba(28,27,26,.92)` com borda branca a 7 %\n | cartões escuros e linhas de nota\n\n | Estrela\n | `#fbbc04` acesa · `#5b5034` apagada\n | avaliações, no amarelo do Google\n\n## Fontes\n\n | \n\n | Fonte\n | Onde\n\n | Playfair Display 900\n | número das cartas (210 px), números dos dados (120 px), \"4,9\", cantos das cartas\n\n | Playfair Display 700 e 700 itálico\n | títulos (\"Perfil da Empresa no Google\", \"Avaliações\", \"mais avaliações\"), \"Vamos recapitular?\" e \"continua . . .\"\n\n | Roboto Condensed 700\n | rótulos em caixa alta e espaçados (22–30 px, espaçamento de 0,2 a 0,38 em): \"DIA\", \"A MARCA\", \"O GOOGLE\", \"SEM LINK NENHUM\", selo \"SIMULAÇÃO\"\n\n | Roboto 400, 500 e 700\n | legenda (700, 58 px), barra de busca (400, 34 px), pílulas (500, 30 px)\n\nTodas vêm em `comp/fonts/` e entram por `@font-face`; o `__ready` espera cada peso carregar.\n\n## Componentes\n\n- **Carta do dia:** 280×392 px na mesa, fundo creme, \"DIA\" em Roboto Condensed, o número em Playfair 900, o ícone do dia (boné, navegador, logo do Google, WhatsApp) e o rótulo em lacre. É o componente da série e marca cada dia.\n\n- **Ponto de lacre:** círculo de 18 px com brilho vermelho em duas camadas (10 px e 34 px). Fica acima de tudo (`z-index` 50).\n\n- **Mão:** cursor de 68×77 px com sombra, que clica cada campo do perfil.\n\n- **Barra de busca:** branca, logo do Google ou do Maps à esquerda e cursor azul `#1a73e8` piscando.\n\n- **Pino:** 44×56 px, nas cores cinza, branco, latão e lacre conforme o dado; anel de lacre de 70 px.\n\n- **Polaroide:** foto real com margem creme de 9 px e sombra larga (mapa, lista, provas dos dias).\n\n- **Pílulas:** lacre (destaque), creme, latão de contorno e vidro.\n\n- **Painel do perfil:** branco, montado em 8 fatias (fotos, título, ações, endereço, horário, serviços, site, telefone) que acendem uma a uma.\n\n- **Janela do ChatGPT:** cartão escuro de 940×640 px com cantos de 44 px, logo oficial e o texto real da resposta.\n\n- **Display de balcão:** creme, com o QR, o logo do Google e o logo da Shelby, e um selo de desconto.\n\n## Câmera de operador\n\n | \n\n | Item\n | Valor\n\n | Molas\n | `TK.operador`, integrado a 240 Hz: posição com ζ 0,82; zoom em escala log com ζ 0,95\n\n | Pressa (`w`)\n | 1,0 a 2,6 nos respiros e empurrões lentos; 3 a 4,6 nas viagens; 5 a 6 seguindo os cliques do perfil\n\n | Antecipação\n | a chave entra 0,1 a 0,45 s antes do assunto\n\n | Enquadramento\n | centro do assunto em y ≈ 800 na tela (`câmera.y = assunto.y + 160 / zoom`), deixando a base para a legenda\n\n | Zoom\n | de 0,74× (os dados, longe da legenda) a 1,7× (o botão Agendar); 1,45× na abertura e 1,2× no texto do ChatGPT\n\n | Mão do operador\n | `TK.flutuar` com 3 px; baixa para 35 % no \"Vamos recapitular?\" e para 40 % no fim, sem chegar a zero\n\n | Tremores\n | 28 pousos (`TK.shake`): amplitude de 2,5 a 9 px e decaimento de 7 a 12, com o maior no drop\n\n## Curvas e molas\n\n | \n\n | Nome\n | Curva\n | Uso\n\n | `board`\n | `cubic-bezier(.333,0,.2285,1)`\n | viagem da lousa\n\n | `expoOut`\n | saída exponencial\n | estalo que assenta\n\n | `spring`\n | ζ 0,56 e ω 12 (passa cerca de 12 % e assenta em ~0,6 s)\n | mola padrão\n\n | `wordRise`\n | ζ 0,62 e ω 20, sobe 28 a 30 px\n | palavra da legenda\n\n | `popIn`\n | ζ 0,62 e ω 16, sobe 34 px\n | elemento que entra\n\n | `morphRect`\n | mola ζ 0,7 e ω 14, ou curva\n | um retângulo virando outro\n\n## Passagens entre assuntos\n\nCada fronteira passa um elemento para a próxima cena: o ponto pula e vira o botão da busca; a lista \"não aparece\" deixa uma vaga tracejada; a vaga vira a carta do Dia 2; o ponto vira o \"·\" de \"Paulínia · SP\" e depois a barra do Maps; a barra vira o mapa real; os 45 pinos saem do mapa e viram a grade de dados; as fileiras de pinos viram as linhas de nota; a pílula \"perfil completo\" vira o painel do perfil; o anel do clique no Agendar vira o site; a janela do site vira o ChatGPT; \"Centro de Paulínia\", \"degradê\" e \"barba\" saem do texto como pílulas; as pílulas viram estrelas que \"pesam\" no balcão; o QR vira o celular; o celular vira a pilha de avaliações; a de cima vira a avaliação real de 2 estrelas; o ponto vira o selo \"IA\". Na recapitulação, o ponto vira o ponto do \"?\", solta as três cartas e depois a carta do Dia 3; no fim, vira o lacre do \"continua . . .\".\n\n## Legenda viva\n\n- Frases de até 5 palavras numa linha; frase de 1 ou 2 palavras junta com a seguinte quando cabe.\n\n- Roboto 700, 58 px, centrada em y = 1.420, com palavra-chave em latão.\n\n- Cada palavra pousa com `wordRise` 0,04 s antes de ser dita; a frase sai subindo 24 px em 0,18 s quando a próxima começa.\n\n- A grafia segue a fala aprovada, não o Whisper (\"têm\", \"vêm\", \"ChatGPT\", \"4,9\").\n\n## Render\n\n60 qps. Cada quadro é a média, em luz linear, de 3 a 16 capturas espalhadas no obturador de 180°; o número de capturas sai do `__motion`, que mede o quanto algo anda na tela. Quadro parado sai com uma captura só, e corte seco não vira dissolução. O final foi feito em 4 trechos, com 4 navegadores, em H.264 (CRF 16, preset slow, BT.709) com áudio AAC de 256 kbps.\n\n## Abertura do celular\n\n | \n\n | Etapa\n | Valor\n\n | Gravação\n | 12,9 s, 4K a 30 qps, monitor tocando o vídeo num player\n\n | Sincronia\n | deslocamento de 0,9112 s entre a gravação e o vídeo; a imagem confirmou o pico em 0 de atraso\n\n | Rastreio\n | ECC com correlação de cerca de 0,95; o vídeo ocupa cerca de 53 % da altura da gravação\n\n | Troca invisível\n | a partir de 0,6 s depois do play (antes disso, a barra de controles do player cobre a tela); em 0,3 s, o vídeo deformado na perspectiva toma o lugar da tela, com a cor casada por histograma\n\n | Mergulho\n | 1,1 s (de 0,85 a 1,95 s depois do play), zoom em escala log com curva `bezier(.5,0,.2,1)`, 12 amostras por quadro e brilho de 10 % no meio\n\n | Pouso\n | 18 quadros (0,3 s) com uma oscilação de escala de até 3 % que assenta e um tremor curto; depois, o vídeo entra cru\n\n | Som\n | o quarto e o clique do play da gravação até o vídeo começar (−26 LUFS), depois a mix limpa; whoosh longo crescendo no mergulho (−19 dB) e um golpe suave no pouso (−23 dB)\n\n## Trilha\n\n | \n\n | Momento\n | Música\n\n | 0–11,2 s\n | tema de Peaky Blinders: partes separadas da gravação original e da versão da PJ Harvey, em Si menor\n\n | 11,2–98,5 s\n | jazz \"Bringing Home The Blues\" (Blue Stew), sem voz, em Fá maior\n\n | Recapitulação\n | a subida do Flood Remix cresce no respiro e o tema bate no drop, em 99,9 s\n\n | Fecho\n | o pulso do tema sem voz, o golpe e o sino no \"continua . . .\"\n\nTudo foi acelerado para 1,2× junto com a voz, mantendo o tom.\n\n## Sound design e mix\n\n | \n\n | Família\n | Quando\n | Som\n\n | Papel\n | foto, carta, pouso, pilha\n | deslizar, virar, cair e empilhar papel; \"airy thuds\" com sala no pouso das cartas\n\n | Pop\n | pílula, linha de nota, estrela, rótulo\n | pops em escada na pentatônica do trecho (Si menor ou Fá maior)\n\n | Clique e tecla\n | cliques da mão, campos, digitação\n | cliques e teclas; a tecla só toca quando o texto é digitado\n\n | Whoosh\n | viagem da câmera, passagem grande, carta\n | whoosh curto, longo e grave, com o pico no fim do movimento\n\n | Contador\n | os 45 resultados e os números\n | rolagem de contador e tique\n\n | Tonal\n | número, campo, estrela, brilho, painel\n | blip, neon-bell, sonar, arrival, airwave e warm-signal do Film Score Vol. 3\n\n | Golpe\n | Dia 2, \"pesam\", drop\n | impacto com jolt ou dark-danger; no drop, Collision em Si\n\n | Carimbo\n | selo \"SIMULAÇÃO\", selo \"IA\", lacre final\n | carimbo com sala e tonal\n\n- **Voz:** passa-alta em 70 Hz, compressor 3:1 e alvo de −16 LUFS.\n\n- **Música:** cerca de 15 dB abaixo da voz enquanto há fala, 9 dB abaixo nos respiros curtos e 2 dB acima da voz nos trechos só de música com 2,5 s ou mais; vão seco de −14 dB entre 0,32 e 0,02 s antes do drop.\n\n- **Efeitos:** bus 10 dB abaixo da voz, −3 dB em 3,2 kHz e sidechain de até −4 dB pela voz; sala com resposta de impulso de 4 s a −24 dB.\n\n- **Final:** −14 LUFS, limitador em 0,71; a versão publicada mediu −14,2 LUFS.\n\n## O que é \"humano\" neste vídeo\n\n- A câmera atrasa, inclina e assenta sozinha, e nunca fica parada.\n\n- O ponto pula em arco entre as cenas, e as cartas tremem quando pousam.\n\n- A mão vai de campo em campo e clica cada um, com a câmera perseguindo.\n\n- As estrelas \"pesam\" e a câmera treme junto.\n\n- A abertura tem o tremor da mão que segura o celular, preservado no rastreio."
    },
    {
      "titulo": "A montagem em HTML",
      "texto": "| \n\n | Arquivo\n | O que faz\n\n | `comp/index.html`\n | a tabela `T` prende cada batida a uma palavra da fala (`P('palavra', tempo)`); as constantes de geometria põem todas as cenas numa mesa só; `KEYS` diz o que a câmera enquadra a partir de cada instante e `HITS` guarda os 28 tremores de pouso. Expõe `__meta`, `__ready`, `__seek`, `__track`, `__motion` e `__events`\n\n | `biblioteca/take-unico/take.js`\n | curvas, molas em forma fechada, entradas (`wordRise`, `popIn`, `drawOn`), passagens de um elemento para outro (`morphRect`, `iris`, `hop`, `gather`), contato (`impact`, `click`, `shake`) e a câmera de operador com a grade de pontos (`operador`, `alvos`, `flutuar`, `lattice`)\n\n | `render_take.py`\n | cada quadro é a média, em luz linear, de 3 a 16 capturas no obturador de 180°; quadro parado sai sem custo e corte seco continua seco. `--stills` grava quadros parados, `--previa` faz a prévia rápida e `--trechos 4` refaz só o que mudou\n\n | `oraculo_take.py`\n | confere, antes de alguém assistir, a continuidade em cada fronteira, o enquadramento, a velocidade, os respiros, os saltos e o loudness; `--eventos` exporta os eventos para o som\n\n | `render-final.sh`\n | renderiza o final em 4 trechos (0–33, 33–66, 66–98 e 98–128,5 s), esperando memória livre antes de cada um, junta, põe o grão no ffmpeg (`noise=c0s=3`) e cola a mix\n\n | `comp/gerar_legenda.py`\n | lê `palavras.json`, corrige a grafia do Whisper para a fala aprovada, quebra em frases de até 5 palavras e marca as palavras-chave; gera `palavras.js`\n\n | `audio/palavras.py`\n | tempo de cada palavra com o faster-whisper (large-v3-turbo) e acerto da primeira palavra depois de um silêncio\n\n | `audio/mix.py`\n | um efeito por evento, com o pico no instante dele; tonais no tom do trecho; a música desce sob a voz e sobe nos respiros; bus de efeitos com equalização e sidechain pela voz; master em −14 LUFS\n\n | `audio/narracao/`\n | `gerar_voz.py` (o texto falado de cada parágrafo e os ajustes da voz) e `montar_narracao.py` (junta os 12 parágrafos com as pausas)\n\n | `transicao/sincronia.py`, `atraso_imagem.py`\n | acham o deslocamento entre a gravação do celular e o vídeo, primeiro pelo som e depois pela imagem\n\n | `transicao/rastreio.py`\n | rastreia os 4 cantos do vídeo na tela do monitor, quadro a quadro, por ECC contra o próprio vídeo\n\n | `transicao/montar.py`\n | quadros da abertura: troca invisível da tela pelo vídeo, mergulho com desfoque e pouso com mola\n\n | `transicao/juntar.py`\n | junta a abertura com o resto do vídeo, monta o som (quarto, mix, whoosh e golpe) e gera o MP4\n\n- **Junte as pastas:** copie `audio/` para dentro de `projeto/`. A legenda lê `../audio/palavras.json` e o render procura `audio/mix.wav`.\n\n- **Aponte o motor:** na linha 129 do `comp/index.html`, troque `../../../biblioteca/take-unico/take.js` por `../biblioteca/take-unico/take.js`; no `render-final.sh`, troque o `R=` por `biblioteca/take-unico/render_take.py`.\n\n- **Prepare o ambiente:** Python com `playwright` (e `python -m playwright install chromium`), numpy, Pillow e ffmpeg. Para o som, também scipy, soundfile, librosa e pyloudnorm; para a abertura, opencv-python.\n\n- **Ver no navegador:** abra `comp/index.html?play` para tocar ao vivo ou `comp/index.html?t=55.3&hud` para parar num instante, com o tempo e o zoom na tela.\n\n- **Conferir antes do render:** `python biblioteca/take-unico/render_take.py comp/index.html --stills 3,17,40,56,70,100 --cols 6 --out revisao/stills.png` e `python biblioteca/take-unico/oraculo_take.py comp/index.html`.\n\n- **Som:** no topo do `audio/mix.py`, aponte `NV` para `audio/sfx/nivelados/` e `TN` e `PR` para os seus tonais e efeitos. Ponha a sua trilha em `audio/musica.wav` (128,5 s) e rode `python audio/mix.py`. Sai `audio/mix.wav` e as faixas separadas em `audio/escuta/`.\n\n- **Vídeo:** `VER=v2 bash render-final.sh` gera `render/shelby-ep2-take-unico-v2.mp4`. O motor também aceita o caminho mais novo, que refaz só os trechos alterados: `python biblioteca/take-unico/render_take.py comp/index.html --out render/final.mp4 --fps 60 --trechos 4 --turbo --audio audio/mix.wav`. Depois, `python biblioteca/take-unico/oraculo_take.py comp/index.html --video render/final.mp4`.\n\n- **Abertura do celular:** grave com o celular o monitor tocando o vídeo. Nos scripts de `transicao/`, aponte `MASTER` (e o caminho em `rastreio.py` e `atraso_imagem.py`) para o seu MP4 do take. Extraia o som da gravação para `transicao/celular-48k.wav` e o do take para `transicao/master-audio.wav` (48 kHz). Rode, da pasta `projeto/`: `python transicao/sincronia.py` (grava o deslocamento pelo som em `off.txt`); `python transicao/rastreio.py 0 4.5 <deslocamento>` (gera `cantos.json`); `python transicao/atraso_imagem.py`, que imprime a correlação de cada atraso (grave em `off_video.txt` o deslocamento do pico); e, por fim, `python transicao/montar.py` e `python transicao/juntar.py`.\n\n**Pegadinhas:** grão desenhado num canvas de tela cheia deixa cada captura cerca de 4× mais lenta; por isso ele entra no ffmpeg da junção. Cena cuja janela de tempo termina com um elemento ainda no quadro vira salto: a janela tem de acabar com ele fora do quadro ou apagado. As cenas não criam contexto de empilhamento, então o ponto e a mão levam `z-index` alto. Esqueleto de carregamento longo vira tela morta: no painel real do Google, campo vazio aparece como \"Adicionar …\", e isso pode acender na palavra. Cada navegador do render final ocupa cerca de 1,8 GB de memória. No Windows, `cv2.imwrite` falha em silêncio com acento no caminho (os scripts gravam com `imencode`). O OpenCV decodifica o vídeo com outra conversão de cor e cria um degrau de brilho na emenda; o `montar.py` lê o vídeo pelo ffmpeg em BT.709 com arredondamento exato."
    },
    {
      "titulo": "As decisões de direção",
      "texto": "- **Um elemento sobrevive em cada troca.** A folha de batidas tem a coluna \"o que passa para a próxima\" e nenhuma fronteira fica vazia: a vaga tracejada vira a carta do Dia 2, a barra do Maps vira o mapa, as fileiras de pinos viram as notas, o QR vira o celular e a avaliação de cima da pilha vira a avaliação real.\n\n- **O ponto de lacre conduz o vídeo inteiro.** É o elemento vivo da série: ele vira o botão da busca, o \"·\" de \"Paulínia · SP\", o selo \"IA\", o ponto do \"?\" da recapitulação e, no fim, o lacre do \"continua . . .\".\n\n- **Câmera de operador, não keyframe.** Cada chave diz o que enquadrar, e uma mola persegue o assunto, entrando 0,1 a 0,2 s antes dele. A câmera nunca para: deriva de 3 px, que baixa nos respiros, tremor em cada pouso e uma grade de pontos distante para o movimento ler no fundo escuro.\n\n- **A batida mora na palavra.** Cada tempo da composição é uma palavra da fala, lida do faster-whisper. Voz nova significa reler os tempos, sem redecidir o vídeo.\n\n- **Dados de verdade com contador.** 45 pinos nascem no ritmo do contador, 20 ficam cinza, os ícones de site, WhatsApp e Instagram são riscados, 11 ficam latão e 5 ganham anel. A nota 4,9 aparece grande para mostrar que ela não separa ninguém.\n\n- **Interface que existe.** O perfil acende na palavra: foto, nome e botões em \"Perfil\", \"Empresa\" e \"Google\"; os campos vazios mostram \"Adicionar endereço\", \"Adicionar horário\" e os demais, numerados na ordem da fala, e o selo \"SIMULAÇÃO\" fica no canto.\n\n- **A câmera chega perto do que se lê.** Ela vai a 1,2× no texto do ChatGPT enquanto ele é escrito e recua para 0,74× nos dados, para os números ficarem longe da legenda.\n\n- **Recapitulação com contraste.** \"Vamos recapitular?\" tem um respiro, a música faz um vão seco de 0,3 s e o tema volta com o golpe Collision em Si. O ponto solta as três cartas, e cada uma vira a cena do seu dia e volta.\n\n- **Som pela imagem.** 273 eventos saem da composição; cada um tem um efeito com o pico no instante dele. Os tonais seguem o tom do trecho (Si menor no tema, Fá maior no jazz), as escadas de pop sobem a pentatônica e o texto que aparece sem digitação fica mudo, para não disputar com a voz.\n\n- **A abertura prova que é real.** O celular filma o monitor, a tela da gravação é trocada pelo próprio vídeo, deformado na perspectiva e com a cor casada, e a câmera mergulha nela em 1,1 s.\n\n- **Conferência antes de alguém assistir.** O oráculo mede continuidade, enquadramento e respiros, e uma IA assiste com áudio. Cada apontamento é conferido nos quadros antes de mexer.\n\nDetalhes de cores, câmera, legenda e som: estilo.md. A fala e as cenas por tempo: roteiro.md. Para fazer um vídeo no mesmo método: PROMPT.md."
    },
    {
      "titulo": "As versões até o final",
      "texto": "| \n\n | Versão\n | O que mudou\n\n | rascunho r1\n | primeiro take inteiro, a 30 qps; o oráculo achou dois saltos (12,5 s e 101 s, janelas de cena terminando com elemento no quadro) e a escuta por IA deu nota 6,5 para som e imagem\n\n | v1\n | janelas de cena sem corte, ponto acima das cartas, campos do perfil maiores, esqueleto com brilho, pinos com 8 pops graves, vão seco antes do drop e golpe Collision; a câmera passou a chegar a 1,2× no texto do ChatGPT e as teclas desceram 5 dB; continuidade 1,00\n\n | **v2**\n | aprovada: esqueleto de só 0,5 s, campos \"Adicionar …\" que acendem na palavra, selo \"barbearia conceito\", números mais compactos com a câmera longe da legenda, ChatGPT que já abre com \"Como posso ajudar?\" e o título \"Avaliações\" subindo junto das estrelas\n\n | **v3**\n | publicada: a mesma v2 com a abertura do celular filmando a tela; 129,4 s, −14,2 LUFS"
    }
  ],
  "pacote": [
    {
      "pasta": "projeto/",
      "conteudo": "`comp/index.html` (o take inteiro, com a folha de batidas no cabeçalho), `comp/palavras.js` e `comp/gerar_legenda.py` (a legenda), `comp/assets/` (29 arquivos: mapa e lista do Maps de Paulínia com nomes desfocados, o perfil da Shelby em fatias, a avaliação, o QR, os logos e as provas dos dias 0 e 1), `comp/fonts/` (Playfair Display, Roboto Condensed e Roboto), `biblioteca/take-unico/` (o motor: `take.js`, `render_take.py`, `oraculo_take.py` e o guia dele), `render-final.sh`, `transicao/` (os scripts da abertura do celular, os cantos rastreados e o som da gravação) e `bruto/IMG_5406.MOV` (a gravação do celular)"
    },
    {
      "pasta": "audio/",
      "conteudo": "`voz.wav` (a narração a 1,2×), `mix.wav` (o som do take), `mix-v3.wav` (o som da versão publicada, com o quarto e o clique do celular), `mix.py`, `palavras.py` e `palavras.json`, `eventos.json` (os 273 eventos), `narracao/` (geração e montagem da voz), `trilha/` (o plano da trilha por momentos) e `sfx/nivelados/` (os 40 efeitos usados)"
    },
    {
      "pasta": "referencias/",
      "conteudo": "o tutorial do take único, o estudo do onetake (de onde veio o método), a pesquisa das barbearias de Paulínia, os pedidos e as respostas do ChatGPT, a legenda do post, `links.md` e `fora-do-pacote.md`"
    },
    {
      "pasta": "render.mp4",
      "conteudo": "a versão publicada (v3)"
    },
    {
      "pasta": "comp/index.html",
      "conteudo": "a tabela `T` prende cada batida a uma palavra da fala (`P('palavra', tempo)`); as constantes de geometria põem todas as cenas numa mesa só; `KEYS` diz o que a câmera enquadra a partir de cada instante e `HITS` guarda os 28 tremores de pouso. Expõe `__meta`, `__ready`, `__seek`, `__track`, `__motion` e `__events`"
    },
    {
      "pasta": "biblioteca/take-unico/take.js",
      "conteudo": "curvas, molas em forma fechada, entradas (`wordRise`, `popIn`, `drawOn`), passagens de um elemento para outro (`morphRect`, `iris`, `hop`, `gather`), contato (`impact`, `click`, `shake`) e a câmera de operador com a grade de pontos (`operador`, `alvos`, `flutuar`, `lattice`)"
    },
    {
      "pasta": "render_take.py",
      "conteudo": "cada quadro é a média, em luz linear, de 3 a 16 capturas no obturador de 180°; quadro parado sai sem custo e corte seco continua seco. `--stills` grava quadros parados, `--previa` faz a prévia rápida e `--trechos 4` refaz só o que mudou"
    },
    {
      "pasta": "oraculo_take.py",
      "conteudo": "confere, antes de alguém assistir, a continuidade em cada fronteira, o enquadramento, a velocidade, os respiros, os saltos e o loudness; `--eventos` exporta os eventos para o som"
    },
    {
      "pasta": "render-final.sh",
      "conteudo": "renderiza o final em 4 trechos (0–33, 33–66, 66–98 e 98–128,5 s), esperando memória livre antes de cada um, junta, põe o grão no ffmpeg (`noise=c0s=3`) e cola a mix"
    },
    {
      "pasta": "comp/gerar_legenda.py",
      "conteudo": "lê `palavras.json`, corrige a grafia do Whisper para a fala aprovada, quebra em frases de até 5 palavras e marca as palavras-chave; gera `palavras.js`"
    },
    {
      "pasta": "audio/palavras.py",
      "conteudo": "tempo de cada palavra com o faster-whisper (large-v3-turbo) e acerto da primeira palavra depois de um silêncio"
    },
    {
      "pasta": "audio/mix.py",
      "conteudo": "um efeito por evento, com o pico no instante dele; tonais no tom do trecho; a música desce sob a voz e sobe nos respiros; bus de efeitos com equalização e sidechain pela voz; master em −14 LUFS"
    },
    {
      "pasta": "audio/narracao/",
      "conteudo": "`gerar_voz.py` (o texto falado de cada parágrafo e os ajustes da voz) e `montar_narracao.py` (junta os 12 parágrafos com as pausas)"
    },
    {
      "pasta": "transicao/rastreio.py",
      "conteudo": "rastreia os 4 cantos do vídeo na tela do monitor, quadro a quadro, por ECC contra o próprio vídeo"
    },
    {
      "pasta": "transicao/montar.py",
      "conteudo": "quadros da abertura: troca invisível da tela pelo vídeo, mergulho com desfoque e pouso com mola"
    },
    {
      "pasta": "transicao/juntar.py",
      "conteudo": "junta a abertura com o resto do vídeo, monta o som (quarto, mix, whoosh e golpe) e gera o MP4"
    }
  ],
  "prompt": "Quero um vídeo narrado no mesmo método do projeto \"Barbearia Shelby, episódio 2\", que está em 07-videos/projetos/shelby-ep2/, com o meu assunto.\n\nAssunto ou negócio: {{ASSUNTO}}\nPara quem é o vídeo: {{PUBLICO}}\nPassos que o vídeo ensina (de 2 a 4): {{PASSOS}}\nDados reais que posso mostrar (pesquisa, números, prints): {{DADOS}}\nIdentidade do assunto (marca, cores, fontes ou uma referência): {{IDENTIDADE}}\nMúsica (uma faixa para o gancho e outra para os trechos de trabalho, se quiser): {{MUSICA}}\nAbertura com o celular filmando a tela: {{CELULAR}} (sim ou não)\nDuração aproximada: {{DURACAO}} (a referência tem 2 min 9 s) · Formato: {{FORMATO}} (a referência é 1080×1920)\n(Se algum desses estiver vazio ou com as chaves, me pergunte antes de começar.)\n\n1. Estude o projeto antes de propor qualquer coisa. Leia, nesta ordem: LEIA-ME.md, estilo.md, roteiro.md e referencias/tutorial-take-unico.md. Depois abra projeto/comp/index.html e veja a folha de batidas no cabeçalho, a tabela T (cada batida presa a uma palavra), a geometria do mundo, os alvos da câmera (KEYS), os tremores (HITS), seek(t) e o contrato __meta, __ready, __seek, __track, __motion e __events. Leia também biblioteca/take-unico/take.js, render_take.py, oraculo_take.py e audio/mix.py. Me explique em poucas linhas o que você vai reaproveitar.\n\n2. Crie o meu projeto em 07-videos/projetos/AAAA-MM-DD-tema/, com comp/, audio/, render/ e revisao/, e um README com checklist. Copie o que for reaproveitar; não edite os arquivos do projeto shelby-ep2.\n\n3. O roteiro: a fala é minha. Faça só a estrutura em roteiro.md: um gancho que abre a dor em até 1,5 s, o problema com os meus dados reais, os passos e uma recapitulação que puxa o próximo vídeo. Para cada parte, diga o que precisa ser dito e o que aparece na tela, e me dê 3 opções de gancho. Espere eu escrever a fala. Quando eu mandar, guarde o meu texto sem mudar e faça ao lado a versão para a voz, trocando só a grafia de pronúncia (ex.: \"IÁ\", \"chat gê pê tê\", números por extenso).\n\n4. Narração: um arquivo por parágrafo na minha voz da ElevenLabs, juntado com pausas curtas e um respiro antes da recapitulação. Tire o tempo de cada palavra com o faster-whisper (audio/palavras.py) e confira a primeira palavra contra o silêncio. Me mande o áudio e espere eu aprovar antes de animar.\n\n5. Monte a folha de batidas antes de animar, no cabeçalho do meu comp/index.html: tempo, batida, câmera e \"o que passa para a próxima\". Nenhuma fronteira pode ficar vazia: em cada troca de assunto, um elemento da tela sobrevive e vira a próxima cena (morphRect, hop, iris, gather). Escolha um elemento vivo que conduz o vídeo inteiro, como o ponto de lacre da Shelby. Corte seco só de propósito, e declarado.\n\n6. Identidade e assets: tire do meu assunto as cores, as fontes (em comp/fonts/, por @font-face) e um componente que se repete, como as cartas dos dias. Tudo que a fala citar aparece com imagem real: print do site, logo oficial, mapa, resposta real da IA. Se algo for simulado, ponha um selo que diga isso. Me peça o que você não conseguir achar.\n\n7. Construa no mundo da mesa: todas as cenas num plano só, a próxima abaixo ou ao lado da anterior, na direção em que a câmera já vai. Mantenha deste projeto a câmera de operador (alvos com pressa w, chave 0,1 a 0,2 s antes do assunto, centro do assunto em y ≈ 800, deriva que nunca zera, tremor em cada pouso, grade de pontos ao fundo), a legenda palavra por palavra em frases de até 5 palavras, o tudo-é-função-de-t sem estado acumulado e o grão na junção do ffmpeg, não na página.\n\n8. Confira antes do render: stills de todas as fronteiras com render_take.py --stills, o oráculo sem vídeo (continuidade ≥ 0,7 e enquadramento ok) e uma prévia com --previa. Na prévia, peça a uma IA que assista com áudio e aponte onde a câmera para morta, onde um texto fica pequeno ou perto da legenda e onde a tela fica vazia. Confira cada apontamento nos quadros antes de mexer.\n\n9. Som em paralelo, num subagente: exporte os eventos com oraculo_take.py --eventos, um som padrão por tipo de evento com o pico no instante dele, tonais no tom de cada trecho da música, escadas de pop na escala do trecho, teclas só quando o texto é digitado. A música fica cerca de 15 dB abaixo da voz sob a fala e sobe nos trechos só de música; um vão seco antes do drop da recapitulação. Master em −14 LUFS.\n\n10. Render final a 60 qps com obturador (--fps 60 --trechos 4), junte com a mix, confira com o oráculo usando --video (continuidade, respiros, saltos, loudness) e corrija só os trechos que mudaram.\n\n11. Se a abertura do celular estiver ligada: eu gravo o monitor tocando o vídeo. Use os scripts de transicao/ na ordem (sincronia.py, rastreio.py, atraso_imagem.py, montar.py, juntar.py): troca invisível depois que a barra do player some, mergulho de cerca de 1,1 s, pouso com mola e o som do quarto até o vídeo começar. Confira a emenda quadro a quadro, sem degrau de brilho nem quadro repetido.\n\n12. Entregue o MP4, o HTML editável, a mix e uma anotação do que mudou em relação a este projeto.",
  "campos": [
    "ASSUNTO",
    "CELULAR",
    "DADOS",
    "DURACAO",
    "FORMATO",
    "IDENTIDADE",
    "MUSICA",
    "PASSOS",
    "PUBLICO"
  ],
  "fonte": {
    "nome": "Clube do Motion",
    "url": "https://clubedomotion.com/projeto/?id=shelby-ep2",
    "uso": "liberado pelo dono do Clube do Motion em 18/10/2026 (docs/permissoes/clube-do-motion.md)"
  }
}