Neste post
  1. O sintoma
  2. Diagnóstico errado nº 1: "a digitação não chegou"
  3. Diagnóstico errado nº 2: "é o Escape"
  4. Causa real nº 1: `ctrl+a` não seleciona o que você acha que seleciona
  5. Causa real nº 2: o formulário recarrega sozinho
  6. O que os dois bugs têm em comum
  7. O que mudou no procedimento
  8. O custo, em número
  9. Um detalhe secundário que também custou

Publicar 38 vídeos verticais em seis plataformas parecia trabalho mecânico. É o tipo de tarefa que dá vontade de automatizar num sábado e esquecer.

O sétimo vídeo agendado, do JornadaSync, foi ao ar com o título jornada 01 cena s s usuario abre o 1 e sem descrição nenhuma. O nome do arquivo. No título. Agendado para o dia 11.

Não foi um caso isolado, e o mais caro não foi o retrabalho — foi que a gente diagnosticou errado três vezes seguidas.

O sintoma

O fluxo era simples: enviar o vídeo, digitar o título, digitar a descrição, marcar a classificação, agendar. A tela confirmava tudo. Reabrindo o rascunho minutos depois, o título tinha voltado ao nome do arquivo.

Não era sempre. Era em uns e não em outros, e essa é a pior categoria de bug: intermitente o suficiente para você culpar a rede, a latência, o dia.

Vídeos publicados sem retrabalho, primeiras tentativas43%
Vídeos publicados sem retrabalho, depois do diagnóstico100%

Diagnóstico errado nº 1: "a digitação não chegou"

A primeira hipótese foi que o texto simplesmente não estava sendo digitado. Fácil de descartar: um screenshot logo depois de digitar mostrava o título correto na tela. O texto chegava. Ele sumia depois.

Diagnóstico errado nº 2: "é o Escape"

Um clique errado no preview do vídeo abre tela cheia e sequestra o teclado. O reflexo é apertar Escape. E aí vem a armadilha: o Escape que fecha a tela cheia é seguro; o Escape dentro de um campo de texto reverte a edição.

Isso aconteceu de verdade — o título e a descrição do EuRi foram perdidos exatamente assim. Só que corrigimos esse caso e o problema continuou nos outros.

Uma causa real que explica uma ocorrência é a coisa mais perigosa numa investigação. Ela dá a sensação de fechamento e faz você parar de procurar.

Causa real nº 1: ctrl+a não seleciona o que você acha que seleciona

O campo de título do YouTube Studio não é um <input>. É um contenteditable controlado por React.

O padrão que usávamos era o de sempre:

ctrl+a          -> selecionar tudo
type "titulo"   -> substituir

No <input> isso funciona. No contenteditable do Studio, a seleção acontece no DOM mas não vira mudança de estado no React. O que o componente enxerga é uma digitação sobre o conteúdo anterior, e ao salvar ele descarta o resultado inconsistente e volta para o último valor conhecido: o nome do arquivo.

A correção é embaraçosamente pequena:

triple_click    -> seleciona o paragrafo de um jeito que o campo reconhece
type "titulo"

Para campos de várias linhas, como a descrição, triple_click pega só uma linha. Aí o caminho é ir para o fim e selecionar de trás para frente:

click no campo
key: ctrl+End
key: ctrl+shift+Home
type "<texto>"

Isso substitui tudo independentemente de quantas linhas existirem.

Causa real nº 2: o formulário recarrega sozinho

Corrigido o ctrl+a, o problema diminuiu. Mas não sumiu.

A pista estava no rodapé do diálogo, num lugar que a gente lia como enfeite:

Verificação 34%  ·  4 minutos restantes

Enquanto o YouTube processa o vídeo, o formulário de detalhes é recarregado do servidor periodicamente — e cada recarga descarta o que estava digitado e não tinha sido salvo. O campo aceita texto o tempo todo. Ele só não guarda.

Isso explicava a intermitência que a gente vinha atribuindo à sorte: vídeo pequeno processa rápido e dá tempo de digitar e salvar; vídeo maior, não.

E explicava a única exceção que não fazia sentido nenhum: o Aprovalux tinha saído perfeito de primeira. Porque ele foi editado pela URL direta studio.youtube.com/video/<ID>/edit, dias depois do upload — com o vídeo já processado havia muito tempo.

A regra que ficou: só digitar depois que o rodapé disser "Verificações concluídas. Nenhum problema foi encontrado." Leva de 1 a 5 minutos. Esperar é mais barato que refazer.

O que os dois bugs têm em comum

Nenhum dos dois é bug do YouTube. Os dois são premissa nossa não conferida:

PremissaRealidade
Campo de texto é <input>É contenteditable sob React
ctrl+a selecionaSeleciona no DOM, não no estado do componente
Formulário visível é formulário estávelRecarrega enquanto o vídeo processa
A tela confirmar significa que salvouConfirma o DOM, não o servidor

A quarta linha é a que dói. Durante seis vídeos, a verificação que fizemos foi tirar um screenshot logo depois de digitar. O screenshot mostrava o título certo. Nós estávamos verificando a coisa errada, e com confiança.

O que mudou no procedimento

  1. 1. Esperar "Verificações concluídas" antes de tocar em qualquer campo.
  2. 2. triple_click para o título; ctrl+End + ctrl+shift+Home para a descrição.
  3. 3. Depois de digitar o título, o campo cresce e empurra a descrição para

baixo — nunca clicar na descrição por coordenada guardada de antes.

  1. 4. Conferir o cabeçalho do diálogo depois de salvar, não depois de digitar.

Se ainda mostrar o nome do arquivo, não pegou.

  1. 5. Editar pela URL /edit do vídeo, que abre a tela de detalhes direto, sem

caçar a linha na tabela.

Com isso, o vídeo seguinte (sussurro_02) foi agendado com título, descrição, classificação e horário corretos — zero retrabalho.

O custo, em número

Cada vídeo consome cerca de 25 interações de navegador. Para os 35 que faltavam depois do primeiro lote, são ~875 interações. Viável, lento e frágil — as três palavras juntas descrevem exatamente o tipo de tarefa que deveria ser API e não navegador.

A YouTube Data API v3 faz upload, título, descrição, tags, classificação e agendamento num script, com um OAuth de uso único. A decisão de continuar no navegador foi tomada quando "só faltavam alguns vídeos". Nunca são alguns vídeos.

Um detalhe secundário que também custou

Dois vídeos ficaram agendados para 00:00 em vez de 18:00, porque o campo de hora foi preenchido antes de o expander do agendador terminar de abrir. Não impede a publicação — só publica no pior horário possível para conteúdo curto.

A ordem correta, que parece burocracia e não é:

  1. 1. abrir o expander "Programar como público" e esperar 3 segundos
  2. 2. só então triple_click no campo de hora e digitar
  3. 3. clicar na seta do seletor de data, não no texto
  4. 4. clicar no dia
  5. 5. clicar em "Programar" — se a verificação ainda estiver rodando, o clique é

engolido em silêncio; esperar e clicar de novo

O passo 5 é o mesmo bug do formulário, vestido de outra roupa: a interface aceita a ação antes de estar pronta para executá-la, e não avisa.


Na parte 2 desta série, o mesmo problema aparece em seis plataformas diferentes, com um disfarce novo em cada uma — e a regra que finalmente resolveu.

Perguntas frequentes

Por que não usar a YouTube Data API em vez de automatizar o Studio?

Porque é a decisão certa e a gente demorou a tomar. A API v3 resolve upload, título, descrição, tags, classificação e agendamento num script — o equivalente a ~875 interações de navegador vira alguns minutos. O motivo de termos começado pelo navegador foi que já havia sessão logada e parecia mais rápido para 'só alguns vídeos'. Não eram alguns vídeos.

`ctrl+a` funciona em campo contenteditable?

Funciona no navegador, mas o React do YouTube Studio não registra a seleção como mudança de estado, então o texto digitado se soma em vez de substituir e o Studio descarta o resultado. `triple_click` seleciona o parágrafo de um jeito que o campo reconhece. Para campo de várias linhas, `ctrl+shift+Home` a partir do fim é mais confiável.

Como saber que o formulário está estável antes de digitar?

No YouTube Studio, o rodapé do diálogo mostra 'Verificação X% — N minutos restantes' enquanto o vídeo processa. Só digitar depois de 'Verificações concluídas'. É a única sinalização confiável; o formulário aparece preenchível muito antes de estar.