Pular para o conteúdo

Como automatizar capturas de tela no Mac com ferramentas nativas

Automatize capturas de tela no Mac com screencapture, Automator ou Shortcuts, incluindo permissões, loops seguros e solução de problemas.

14 min de leituraGuiasPor Temposhot Team

Auto Capture turning 6 pages of a book in Preview with Page Down after each screenshot

O macOS tem três formas nativas de tirar capturas de tela em um cronograma: o comando screencapture, o Automator e o app Shortcuts. As três conseguem capturar, aguardar e repetir sem software adicional. Este guia ajuda você a escolher uma delas, comprovar que funciona com um teste de três capturas e corrigir os problemas que aparecem em execuções mais longas.

O exemplo usado ao longo do guia é uma apresentação de 120 slides que precisa ser salva como uma imagem por slide. Ela exige uma fonte fixa, um pressionamento de tecla entre cada captura, uma espera para cada slide renderizar e uma parada limpa após o último slide.

Escolha o método nativo adequado para a tarefa

MétodoIndicado paraPonto fraco
screencapture no TerminalRegiões fixas, nomes de arquivo exatos, scripts que você executa com frequênciaExige conhecimento de shell
AutomatorUm fluxo visual salvo como app de duplo cliqueA ação nativa de captura pode sobrescrever nomes de arquivo
ShortcutsIniciadores na barra de menus e no teclado, automações nas versões recentes do macOSCaptura de janela e de região exige uma etapa de script

Os três métodos usam o mesmo mecanismo de captura e o mesmo modelo de permissões. Escolha o que você já conhece. Se não conhecer nenhum, comece pelo Terminal, porque o teste tem duas linhas.

O que cada método usa por baixo

O Automator e o Shortcuts costumam chamar o mesmo comando screencapture por meio de uma ação de shell. A diferença está na forma de execução: o Terminal usa um arquivo de script, o Automator salva um fluxo de trabalho ou um app de duplo clique, e o Shortcuts acrescenta iniciadores como a barra de menus, um atalho de teclado ou uma automação com horário definido.

Por isso, a linha de captura é escrita uma vez. Teste-a no Terminal e cole a mesma linha em uma ação Run Shell Script no Automator ou no Shortcuts quando precisar de um iniciador.

Decida pela forma como o conteúdo muda

O método importa menos do que o gatilho de cada nova captura. Conteúdo que muda sozinho, como um painel, um log de build ou uma barra de progresso de renderização, precisa apenas de um temporizador. Conteúdo que muda quando uma tecla é pressionada, como slides ou um leitor, precisa de um temporizador mais um pressionamento de tecla.

Conteúdo que muda quando alguém clica em uma tarefa é outro caso. Um temporizador captura muitas telas idênticas entre os cliques e perde o momento de cada clique. Para esse caso, uma ferramenta acionada por clique, como o Action Capture do Temposhot, salva uma captura por clique aceito, em vez de uma captura por intervalo.

As opções que importam para automação

screencapture tem mais opções do que a maioria das pessoas usa. As abaixo cobrem quase todas as tarefas de automação em um único Mac.

Painel de configurações com as opções de screencapture: -x sem som, -m tela principal, -D número do monitor, -R região fixa, -t tipo de arquivo, -l ID da janela, -T atraso em segundos, -C inclui o cursor.

Execute man screencapture no Terminal para ver a lista completa na sua versão do macOS. Uma região fixa com -R é a opção mais útil para slides, porque deixa de fora a barra de menus, o Dock e os banners de notificação.

Antes de começar: permita a captura de tela e teste três capturas

O macOS exige permissão de gravação de tela para qualquer app que capture janelas de outros apps. O app que executa a captura precisa dessa permissão: o Terminal para um loop de shell, o Automator para um fluxo de trabalho (e o app salvo separadamente) e o Shortcuts para um atalho.

Abra System Settings, depois Privacy and Security, e ative o app na lista de gravação de tela. O nome do item varia conforme a versão do macOS. Feche e reabra o app após a alteração.

Teste com três capturas antes de qualquer execução longa. Três capturas mostram se a permissão, os nomes de arquivo e o tempo estão corretos, e o teste leva cerca de dez segundos. Uma execução de 500 capturas que salva apenas o papel de parede desperdiça muito mais tempo.

Qual app precisa de qual permissão

A permissão pertence ao processo que executa o comando, não ao arquivo de script. Um loop iniciado no iTerm precisa que o iTerm esteja na lista, e um fluxo salvo como app precisa que esse app esteja na lista, mesmo quando o próprio Automator já estiver autorizado.

Tabela comparativa com as colunas Gravação de Tela e Acessibilidade, e linhas para um loop no Terminal, um fluxo do Automator, um app do Automator salvo, um atalho do Shortcuts e um pressionamento de tecla com osascript.

Quando a chave está ativada, mas as capturas mostram o papel de parede

Às vezes o macOS lista o app como permitido, mas a captura ainda retorna apenas a imagem da área de trabalho. Desative e ative a chave novamente, depois feche e reabra o app. Se um script for executado pelo terminal integrado de um editor, o editor é o app que precisa da permissão, e não o Terminal.

Prepare o Mac antes de uma execução longa

Uma execução de 120 capturas que falha na captura 80 é pior do que não executar nada, porque a falha é fácil de passar despercebida. Uma checklist curta antes de começar elimina as causas mais comuns.

Checklist de sete itens: teste de três capturas aprovado, Do Not Disturb ativado, caffeinate em execução, app de destino em primeiro plano no tamanho final, espaço livre em disco verificado, pasta de saída vazia, janelas privadas e apps de chat fechados.

Execute um teste de três capturas com screencapture no Terminal

mkdir -p ~/Captures/test
for i in 1 2 3; do
  screencapture -x -m ~/Captures/test/frame-$i.png
  sleep 3
done
open ~/Captures/test

Confira três itens na pasta: há 3 arquivos, cada um mostra as janelas abertas e os nomes seguem a ordem de captura. A flag -x silencia o som do obturador, e -m limita a captura à tela principal. O guia de linha de comando acrescenta regiões fixas, saída em JPG e execuções mais longas.

Linha do tempo: em 0:00 a captura 1 é salva, em 0:03 a captura 2, em 0:06 a captura 3, em 0:09 o loop termina e o Finder abre a pasta de teste para conferência.

Numere os arquivos para que sejam ordenados corretamente

frame-$i.png funciona para 3 capturas, mas a ordenação falha após 9: o Finder e a maioria das ferramentas colocam frame-10 antes de frame-2 em uma ordenação de texto simples. Números com zeros à esquerda resolvem isso. printf '%03d' transforma 7 em 007, o que mantém 120 capturas em ordem em qualquer lugar.

name=$(printf 'frame-%03d.png' $i)
screencapture -x -R 0,25,1440,875 ~/Captures/deck/$name

Dimensione o teste para a tarefa real

No exemplo de 120 slides, o loop roda 120 vezes com espera de 2 segundos. São 4 minutos de captura mais alguns segundos de preparação. Com uma região de 1440 × 875, slides em PNG com texto e gráficos simples costumam ocupar bem menos de 1 MB cada, então a execução inteira cabe em cerca de 50 a 120 MB.

Quatro estatísticas do exemplo: 120 capturas, espera de 2 segundos por captura, cerca de 4 minutos de tempo total de execução e uma estimativa de 50 a 120 megabytes em arquivos PNG.
Estimativas. O tamanho do arquivo depende do conteúdo do slide e do tamanho da região.

Use o Automator para um fluxo visual

Crie um novo Workflow no Automator. Adicione Take Screenshot, depois Pause com 3 segundos, depois Loop configurado para repetir automaticamente e parar após 3 vezes. Execute e confira a pasta.

Se aparecer apenas um arquivo, a ação gravou o mesmo nome em todas as passagens. Substitua Take Screenshot por Run Shell Script e use a linha screencapture do teste no Terminal com um nome numerado. Salve o fluxo concluído como Application para executá-lo com duplo clique. O passo a passo do Automator mostra a ação de shell completa.

Mantenha um contador dentro do Automator

Uma ação Loop não passa um contador para a passagem seguinte. A solução mais simples é deixar o shell calcular o próximo número a partir dos arquivos já existentes na pasta, para que cada passagem use um nome novo.

dir=~/Captures/deck
mkdir -p "$dir"
n=$(ls "$dir" | wc -l | tr -d ' ')
screencapture -x -m "$dir/$(printf 'frame-%03d.png' $((n + 1)))"

Isso depende de uma pasta vazia no início. Arquivos que sobrarem de uma execução anterior deslocam todos os números, então limpe a pasta ou use uma nova para cada execução.

Salve como app e conceda acesso

Um fluxo salvo como Application é, para o macOS, um programa separado. Na primeira captura, o macOS pede permissão de Gravação de Tela para esse app, mesmo que o Automator já tenha sido autorizado durante os testes.

Conceda a permissão uma vez e depois feche e reabra o app salvo. Se o app for movido ou salvo novamente com outro nome, o macOS pode tratá-lo como novo e pedir a permissão outra vez. Por isso, mantenha o app final em um único local, como a pasta Applications.

Use o Shortcuts para iniciadores e gatilhos

Crie um atalho com Repeat configurado para 3. Dentro do bloco, adicione Take Screenshot, Save File com a variável Repeat Index no nome do arquivo e Wait com 3 segundos. Execute e confira a pasta.

Depois, o atalho pode ser executado pela barra de menus, por um atalho de teclado ou pelo comando shortcuts run no Terminal. No macOS Tahoe 26 e versões posteriores, uma automação pessoal pode iniciá-lo em um horário definido. O passo a passo do Shortcuts explica os gatilhos e as permissões de script.

Inicie um atalho pelo Terminal

shortcuts run "Deck Capture" executa um atalho pelo nome. Combinado com caffeinate, o comando mantém o Mac acordado exatamente pelo tempo do atalho, o que é mais seguro do que alterar as configurações de energia do dia inteiro.

caffeinate -di shortcuts run "Deck Capture"

Repeat Index começa em 1 e não tem zeros à esquerda. Após 9 capturas, adicione o preenchimento com zeros em uma ação Text ou ordene os arquivos pela data de criação, em vez de pelo nome.

Inícios programados e seus limites

Uma automação pessoal que começa em um horário definido é útil para capturas que precisam acontecer quando ninguém está na mesa, como um painel às 9:00 todas as manhãs. O Mac precisa estar acordado e desbloqueado nesse horário, porque uma tela bloqueada não mostra o painel.

Mantenha cada atalho programado curto e independente. Um atalho que captura 3 telas e para é fácil de conferir na manhã seguinte. Um atalho que roda em loop por 2 horas é difícil de verificar e fácil de deixar rodando.

Adicione viradas de página somente depois que a captura funcionar

Passar slides ou páginas de um documento exige um pressionamento de tecla entre as capturas. Adicione essa etapa depois que o teste de três capturas passar, para que um problema de captura e um problema de tecla nunca apareçam juntos.

Os três métodos enviam teclas do mesmo modo, pelo System Events:

osascript -e 'tell application "System Events" to key code 124'

O código de tecla 124 é a seta para a direita. A ordem importa: capturar, pressionar a tecla e depois aguardar o tempo suficiente para a próxima página renderizar. Não envie a tecla após a última captura, para que o documento não avance além da página final. O app que envia a tecla precisa da permissão de Acessibilidade, e o app de destino precisa estar em primeiro plano.

Fluxo de quatro caixas ligadas por setas: salvar a captura, verificar se é a última captura, enviar a seta para a direita com key code 124 se não for, aguardar 2 segundos para o slide renderizar.

Códigos de tecla para outras viradas de página

key code recebe o número da tecla de hardware, não o caractere. A seta para a direita é 124, a seta para a esquerda 123, a seta para baixo 125, a seta para cima 126, a barra de espaço 49 e Return 36. Um leitor que rola em vez de paginar normalmente precisa da barra de espaço, que avança cerca de uma tela, enquanto a seta para baixo avança apenas algumas linhas.

Caracteres digitados usam keystroke, por exemplo keystroke "n" para um app que pagina com a tecla N. Teste qualquer tecla nova em uma execução de três capturas antes de uma execução longa.

O script completo dos 120 slides

O script abaixo reúne as partes: nomes com zeros à esquerda, região fixa, pressionamento de tecla em todas as passagens exceto a última e espera de 2 segundos. Salve-o como deck.zsh e execute com caffeinate -di zsh deck.zsh.

#!/bin/zsh
out=~/Captures/deck-$(date +%Y-%m-%d)
mkdir -p "$out"
total=120
sleep 5   # time to click into the presentation window
for i in $(seq 1 $total); do
  screencapture -x -R 0,25,1440,875 "$out/$(printf 'slide-%03d.png' $i)"
  if (( i < total )); then
    osascript -e 'tell application "System Events" to key code 124'
  fi
  sleep 2
done
open "$out"

O sleep de 5 segundos antes do loop funciona como uma contagem regressiva. Clique na janela da apresentação durante esse tempo, para que as teclas cheguem a ela e não ao Terminal.

Árvore de arquivos: uma pasta Captures com uma pasta de apresentação com data, contendo arquivos com zeros à esquerda de slide-001.png a slide-120.png, e uma pasta test separada com três capturas.

Regras de tempo das teclas

Linhas de fazer e não fazer: capturar antes da tecla, aguardar após a tecla, não enviar a tecla na última passagem, clicar na janela de destino durante o sleep inicial; não enviar a tecla antes da primeira captura, não usar espera de 0 segundo, não deixar o Terminal em primeiro plano.

Transições entre slides são a causa mais comum de capturas borradas. Uma dissolução de 1 segundo precisa de espera de pelo menos 1,5 segundo, e desativar as transições no app de apresentação é a correção mais confiável.

Corrija problemas comuns de automação de captura

  • Somente papel de parede. O app em execução não tem permissão de gravação de tela. Permita o acesso e reabra o app.
  • Um arquivo em vez de vários. Cada passagem grava o mesmo nome. Adicione um contador ao nome do arquivo.
  • Capturas pretas no fim da execução. A tela entrou em suspensão. Execute caffeinate -di no Terminal durante toda a execução.
  • Páginas puladas. A tecla foi enviada antes de a página renderizar. Aumente a espera após a tecla.
  • Página extra no fim. A tecla foi enviada após a última captura. Não a envie na passagem final.
  • Segundo monitor ausente. Capture cada monitor separadamente com -D 1 e -D 2.

Encontre rapidamente a captura com falha

Quando uma execução longa dá errado, encontre a primeira captura ruim antes de mudar qualquer coisa. Abra a pasta no Finder, mude para a visualização de ícones e role até que uma miniatura pareça diferente. O número da captura mostra se o problema começou no início (permissão ou região), em um horário fixo (suspensão ou uma notificação) ou de forma aleatória (tempo de renderização).

Capturas duplicadas lado a lado significam que a tecla não chegou ao app. Duas capturas que diferem em uma página significam que a tecla chegou, mas a espera foi curta demais. Compare Images mostra a diferença de pixels entre duas capturas quando a mudança é pequena demais para ser vista.

Notificações e sobreposições nas capturas

Uma captura de tela inteira registra tudo o que aparece na tela, incluindo banners de notificação, o indicador de volume e um app de chat que abre. Do Not Disturb remove a maioria dos banners. Uma região fixa com -R que exclua o canto superior direito remove o restante, porque os banners aparecem ali.

Tamanho da região em telas Retina

Os valores de -R estão em pontos de tela, não em pixels. Em uma tela Retina, uma região de 1440 × 875 salva uma imagem de 2880 × 1750 pixels. A imagem fica mais nítida para texto e OCR, mas a largura e a altura dobram, então os arquivos ficam cerca de quatro vezes maiores do que em um monitor não Retina. Confira o tamanho real em pixels com Screenshot Resolution Checker antes de planejar o armazenamento.

Interrompa um loop descontrolado

Um loop com contagem errada pode rodar muito mais do que o planejado. Pressione Control+C na janela do Terminal para interromper; as capturas já salvas permanecem na pasta. Para um atalho, selecione o botão de parar no ícone do Shortcuts na barra de menus.

Quando as ferramentas nativas deixam de ser a opção mais simples

As ferramentas nativas lidam bem com uma quantidade fixa de capturas em um ritmo fixo. Cada necessidade adicional exige mais um script: capturar uma única janela pelo nome, parar em um horário, pausar e retomar no meio da execução, ou gerar um PDF pesquisável ou um vídeo.

Um app dedicado transfere essas funções para as configurações. No Auto Capture do Temposhot, você escolhe uma fonte entre Screens, Windows ou Custom Area e define a condição de parada (Screenshots, Duration ou End time), o intervalo em ms, segundos, minutos ou horas, um Key press opcional e uma Countdown. Uma barra de ferramentas flutuante pausa, retoma e finaliza a execução, e os resultados podem ser exportados em PNG, JPG, ZIP, PDF pesquisável ou MP4. Predefinições como Kindle (20 capturas, 500 ms, seta para a direita, contagem regressiva de 3 s) guardam uma configuração para reutilização.

Auto Capture turning 6 pages of a book in Preview with Page Down after each screenshot

A tarefa dos 120 slides no Auto Capture

A mesma tarefa corresponde a cinco configurações. A fonte de janela substitui a região -R, e o Temposhot traz a janela para a frente após a contagem regressiva, então nenhum clique é necessário.

Painel de configurações: condição de parada Screenshots, 120 capturas, intervalo de 2 segundos, Key press com Right Arrow como recurso Pro, contagem regressiva de 5 s, fonte Windows com a janela da apresentação selecionada.

A automação por tecla exige o Temposhot Pro e a permissão de Acessibilidade. Sem o Pro, uma execução temporizada sem tecla continua funcionando para conteúdo que muda sozinho, como um painel ou uma barra de progresso.

Script ou app, lado a lado

Comparação com as colunas loop nativo e Auto Capture, e linhas para capturar uma janela, parar em um horário, pausar no meio da execução, mudanças de monitor e formatos de saída.

Execuções medidas em horas

Loops nativos são mais fracos em execuções longas e temporizadas, como um timelapse de uma sessão de trabalho. O script precisa calcular um horário de término, sobreviver à suspensão do Mac e lidar com a mudança de monitor. No Auto Capture, as condições de parada Duration e End time cobrem esse caso, e ambas são recursos Pro.

O preset Timelapse nativo é um exemplo: duração de 1 hora, intervalo de 3 segundos, sem tecla e contagem regressiva de 5 segundos, o que gera cerca de 1.200 capturas. Exportadas em MP4 com os 15 quadros por segundo padrão, essas capturas são reproduzidas em cerca de 80 segundos. Se o Mac bloquear ou entrar em suspensão, o Auto Capture pausa o fluxo de captura e o retoma após o desbloqueio. Uma execução Duration pausada não conta o tempo pausado.

A barra de ferramentas flutuante e o menu Capture também oferecem controle pelo teclado quando outro app está em primeiro plano.

Lista de atalhos: Control C para um loop do Terminal, Command 1 abre o Auto Capture, Shift Command R inicia o Auto Capture, Command period finaliza a captura, Command N inicia uma nova sessão.

Perguntas frequentes

Qual método nativo é o mais rápido de configurar?

O loop no Terminal. Ele exige uma permissão e cinco linhas, e as mesmas linhas funcionam depois dentro do Automator ou do Shortcuts.

Preciso manter o Mac acordado?

Sim. Um monitor em suspensão gera capturas pretas, e uma tela bloqueada interrompe a captura. caffeinate -di mantém o monitor e o sistema ativos enquanto um comando é executado.

As ferramentas nativas conseguem capturar uma única janela?

screencapture -l captura uma janela pelo ID, mas o macOS não tem um comando nativo que liste os IDs das janelas. É preciso um script auxiliar ou um app dedicado.

O que é automação de captura de tela, exatamente?

É uma ferramenta que tira capturas de tela seguindo uma regra (um intervalo, um clique ou uma lista de URLs), em vez de uma pessoa pressionar um atalho a cada vez. A entrada do glossário sobre automação de capturas de tela traz uma definição mais completa.

Como transformo os arquivos PNG numerados em um único PDF?

Combine-os na ordem com Image to PDF. Depois, se o PDF precisar ser pesquisável, adicione uma camada de texto com Screenshot to Searchable PDF. Nomes com zeros à esquerda mantêm a ordem correta ao adicionar os arquivos.

Por que minhas capturas são de outro monitor?

-m sempre captura a tela principal, que é a que tem a barra de menus. Mova a janela de destino para esse monitor ou use -D com o número do monitor para capturar outro.

Transforme capturas repetíveis em trabalho concluído

Quando o loop nativo precisa de uma fonte de janela, viradas de página e exportação em PDF ou MP4, veja a automação de capturas de tela no Mac ou siga o guia de captura automatizada.

screenshot-automationmacosscreencaptureshortcutsautomator

Termos usados aqui: screenshot timer, screenshot workflow, window capture

Transforme capturas de tela repetitivas em trabalho pronto

O Temposhot faz capturas por temporizador ou a cada clique e exporta o resultado em PDF, imagens, ZIP ou MP4.

Posts relacionados