Por que sua miniatura nova ainda mostra a antiga
Você trocou a miniatura, o Studio mostra a nova e o feed continua mostrando a antiga. Não tem nada quebrado: a URL da imagem nunca muda e a CDN avisa cada cache que pode guardar a cópia por duas horas — cabeçalho que eu medi em vez de supor.
Primeiro, separe os dois problemas
“Minha miniatura não atualiza” e “minha miniatura não aparece” parecem a mesma coisa de fora e não têm nada a ver uma com a outra. A primeira é questão de cache e se resolve sozinha; a segunda é questão de arquivo ou de permissão e não vai se resolver até você fazer algo.
O teste leva dez segundos: aparece a imagem antiga, ou não aparece imagem nenhuma? Imagem antiga quer dizer cópia em cache, e vale tudo o que vem nas próximas seções. Um retângulo cinza, um quadro preto ou um frame do vídeo que você não escolheu querem dizer que a miniatura personalizada não está lá — pule para as duas últimas seções. Se o que você quer de fato é substituir uma thumbnail — os passos, o que isso zera, se um vídeo antigo compensa —, isso está no guia sobre trocar a thumbnail.
O número que explica tudo
As miniaturas são servidas pelo i.ytimg.com, e esse servidor publica as regras de cache em cada resposta. Pedi três arquivos diferentes — um hqdefault.jpg estático, um maxresdefault.jpg estático e um dos recortes WebP parametrizados que a interface usa de verdade — e os três responderam igual:
| Cabeçalho | Valor | O que quer dizer |
|---|---|---|
| cache-control | public, max-age=7200 | qualquer cache pode guardar essa imagem por duas horas |
| expires | duas horas depois do pedido | a mesma instrução, no formato antigo |
| etag | um id estável por imagem | deixa a cache perguntar “mudou?” em vez de baixar de novo |
| age | segundos desde que o nó baixou | o quanto a cópia que você acabou de receber já estava velha |
Na maioria dos casos as duas horas são a história inteira. Não é o YouTube demorando para processar sua troca: a troca já está feita. São todas as caches entre o armazenamento do YouTube e os seus olhos, avisadas — corretamente — de que podem continuar entregando o que têm.
E a URL nunca muda
É essa a parte que faz as duas horas importarem. Uma miniatura fica num caminho montado a partir do id do vídeo — i.ytimg.com/vi/<id>/hqdefault.jpg — sem nada que diga qual versão da imagem é. Você troca a miniatura e o endereço continua idêntico byte por byte, então uma cache com os bytes antigos não tem como saber que deveria parar.
Fui checar se as variantes parametrizadas se comportam diferente, já que elas carregam o que parece ser assinatura. Não se comportam: mexer no token rs devolveu imagem válida do mesmo jeito, e mexer no parâmetro sqp devolveu uma imagem de outro tamanho em vez de erro. Esses parâmetros descrevem o recorte, não são selo de versão. Nada no espaço de URL é.
Ou seja: o mecanismo não tem um passo de invalidação que você possa acionar. Miniatura em cache não é apagada — ela expira.
Quem está com uma cópia
Quatro caches separadas, quatro relógios separados, e é por isso que a atualização parece tão incoerente — nova no celular, antiga no notebook, antiga para um amigo, nova numa janela anônima.
Seu navegador. Está com a imagem no disco junto com a instrução de duas horas e não vai pedir de novo antes disso.
O nó da CDN que te respondeu. O cabeçalho age diz quantos segundos a cópia dele já tinha na hora da resposta — no mesmo arquivo eu vi de 0 a 2371 segundos. Outro nó, outra idade: duas pessoas em redes diferentes veem, com razão, imagens diferentes.
Qualquer app que tenha puxado uma prévia do link. Mensageiros, Slack, Discord e fóruns guardam a própria cópia da imagem de prévia no ritmo deles, quase sempre bem mais longo que duas horas, e isso não está sob seu controle.
Embeds e clientes de terceiros. Tudo o que usa os caminhos estáticos recebe a mesma instrução de duas horas, e tudo o que guarda cópia própria fica com ela o tempo que quiser.
Como ver o arquivo atual agora
Você não precisa esperar para saber se sua troca entrou: só precisa esperar para os outros verem. Três checagens, da mais barata para a mais chata, e a primeira resolve para quase todo mundo.
O truque da primeira é que a cache usa a URL inteira como chave, query string incluída, então qualquer parâmetro que você inventar é uma chave nova e portanto um download fresco garantido. Verifiquei: hqdefault.jpg?cb=12345 respondeu 200 com exatamente os mesmos bytes da URL limpa e o mesmo etag — que é o que você quer, uma cópia fresca da verdade, não uma imagem diferente.
- Abra o arquivo com um parâmetro inventadoCole i.ytimg.com/vi/<id do seu vídeo>/maxresdefault.jpg?cb=1 numa aba nova. Vale qualquer coisa depois da interrogação; mude a cada vez. O que você vê é o que o armazenamento do YouTube tem agora, sem cache no meio.
- Confira o etag pelo terminal, se quiser provacurl -I na mesma URL imprime cache-control, etag e age. Anote o etag, faça a troca e peça de novo: etag diferente quer dizer que o arquivo guardado é realmente outra imagem, seja o que for que seu navegador ainda esteja mostrando.
- Só então olhe um feedQuando o arquivo já está certo, as diferenças que sobram são idade de cache, não o seu upload. Nada que você faça no arquivo vai vencer mais cedo a cópia de outra pessoa.
O que fazer e o que não fazer
O que fazer é nada, por duas horas. A frase é frustrante e também é o remédio completo no caso comum: a troca já está guardada e só falta o relógio.
O que não fazer é a parte que vale ser dita. Não suba o vídeo de novo — a miniatura é um objeto separado ligado ao mesmo id de vídeo, e um upload novo joga fora todas as impressões e todos os comentários do vídeo por um problema que a espera teria resolvido. Não troque a miniatura outra vez para “forçar”: cada troca não reinicia nada e abre uma janela nova de duas horas sobre uma imagem nova — é assim que um problema de dez minutos vira uma tarde.
E se o vídeo estiver num teste de miniatura em andamento, mudar qualquer coisa no meio do voo é a única ação que custa algo mensurável de verdade, pelos motivos do guia sobre testes A/B: você deixa de saber qual variante produziu os números que está lendo.
Prévia de link é uma cache que você não controla
Quando alguém cola um link do seu vídeo num mensageiro, o app baixa a página uma vez, lê o og:image — que aponta para maxresdefault.jpg, como medido no guia sobre miniaturas borradas — e guarda a própria cópia da prévia. Dali em diante o app te mostra o retrato dele, não o arquivo do YouTube.
Não existe jeito geral de limpar isso, e o cabeçalho de duas horas não vale para uma cópia que o app guardou por conta própria. Duas plataformas publicam ferramenta para reler a própria cache — o Sharing Debugger do Facebook e o Post Inspector do LinkedIn — e para o resto a resposta prática é: link postado antes da troca fica com a imagem antiga, link postado depois pega a nova.
Quando não é cache nenhuma
Se não tem imagem antiga nem nova, a cache não está envolvida e esperar não ajuda. Três causas, na ordem em que costumam ser a resposta.
Miniatura personalizada não está disponível na conta. O upload cai silenciosamente num frame gerado automaticamente. Isso tem um guia próprio, porque os requisitos mudaram e os conselhos antigos estão errados: por que a opção de miniatura personalizada não aparece.
O arquivo foi recusado. Acima do limite do aparelho de onde você subiu — 50 MB no computador, 2 MB no celular —, formato não suportado, ou remoção por política. Upload recusado deixa a miniatura anterior no lugar, o que se lê exatamente como “minha troca não foi aplicada”: confira se o arquivo está abaixo do limite e num dos formatos aceitos, listados no guia de tamanho e especificações.
A variante que você está olhando não existe. Não existe todo tamanho para todo vídeo: numa fonte com menos de 1280 pixels de largura, o maxresdefault.jpg devolve 404 com um corpo pequeno de placeholder. Conferi num upload de 2005 — maxres e sddefault deram 404, hqdefault normal. Se você está testando por URL em vez da interface, esse 404 é sobre a variante, não sobre a sua miniatura. Uma remoção pela política de thumbnails parece idêntica de fora e não é problema de cache nenhum.
O Studio não é prova, e nem o seu feed
O Studio mostra o arquivo que ele acabou de guardar, sem CDN no meio, então atualiza na hora e não diz nada sobre o que o espectador vê. Seu próprio feed é o oposto: é a superfície com maior chance de ter cópia velha, porque foi você quem visitou mais recentemente e por isso seu navegador tem a imagem em cache mais antiga de todas.
É essa assimetria que faz “para mim atualizou mas para o meu inscrito não” e “para eles atualizou mas para mim não” serem as duas normais dentro das mesmas duas horas — e faz nenhuma das duas observações merecer ação.
A checagem que evita o problema inteiro
Quase toda troca de miniatura feita no desespero é uma decisão que dava para tomar antes de publicar. O motivo de as pessoas trocarem a miniatura uma hora depois do upload é que o feed foi o primeiro lugar em que elas viram a imagem ao lado de outros vídeos — e nessa altura a troca custa duas horas de cache velha e, se tem teste rodando, o teste.
Ver primeiro num feed é exatamente para isso que a ferramenta de pré-visualização serve: sua miniatura entre concorrentes reais, nos tamanhos renderizados reais, antes de ter um vídeo preso nela. O melhor conserto para um problema de cache é não precisar do segundo upload.
As perguntas que todo mundo faz
Quanto tempo demora para a miniatura do YouTube atualizar?
A troca é guardada na hora. O que demora é a cache expirar: a CDN de imagens do YouTube manda cache-control: max-age=7200 — duas horas — então qualquer cópia já baixada pode ser entregue legitimamente até lá.
Como forçar o YouTube a atualizar minha miniatura?
Não dá, porque a URL da imagem não tem versão e as caches que estão com ela só podem deixar expirar. O que dá é ver o arquivo atual acrescentando qualquer parâmetro na URL da imagem: é uma chave de cache nova e força um download fresco.
Por que em alguns aparelhos ainda aparece a miniatura antiga?
Porque cada cache tem o próprio relógio: seu navegador, o nó da CDN que te respondeu e qualquer app que guardou uma prévia de link. No mesmo arquivo eu medi cópias de nó com 0 a 2371 segundos de idade, então nessas duas horas pessoas diferentes recebem versões diferentes de verdade.
Devo subir o vídeo de novo se a miniatura não muda?
Não. A miniatura é um objeto separado ligado ao mesmo id de vídeo, então um upload novo descarta todas as impressões, visualizações e comentários por um problema que duas horas de espera resolveriam sozinhas.
Minha miniatura não aparece de jeito nenhum — é o mesmo problema?
Não, e esperar não resolve. Imagem antiga quer dizer cache; nenhuma imagem personalizada quer dizer que a opção não está disponível na conta, que o arquivo foi recusado por peso ou formato, ou que você está pedindo uma variante que não existe para aquele vídeo.