Vai al contenuto

Come automatizzare gli screenshot su Mac con gli strumenti integrati

Automatizza gli screenshot su Mac con screencapture, Automator o Shortcuts, con permessi, loop sicuri e risoluzione dei problemi.

13 min di letturaGuideDi Temposhot Team

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

macOS offre tre modi integrati per fare screenshot a intervalli: il comando screencapture, Automator e l'app Shortcuts. Tutti e tre possono catturare, attendere e ripetere senza software aggiuntivo. Questa guida ti aiuta a scegliere un metodo, a verificarne il funzionamento con un test a tre frame e a risolvere i problemi che emergono nelle esecuzioni più lunghe.

L'esempio di riferimento in tutta la guida è una presentazione di 120 slide che deve essere salvata con un'immagine per ogni slide. Servono una sorgente fissa, la pressione di un tasto tra un frame e l'altro, un'attesa perché ogni slide venga renderizzata e un'interruzione pulita dopo l'ultima slide.

Scegli il metodo integrato più adatto al lavoro

MetodoAdatto aPunto debole
screencapture nel TerminaleRegioni fisse, nomi file precisi, script che esegui spessoRichiede conoscenza della shell
AutomatorUn workflow visivo salvato come app con doppio clicL'azione nativa per lo screenshot può sovrascrivere i nomi dei file
ShortcutsLauncher nella barra dei menu e da tastiera, automazioni nelle versioni recenti di macOSLa cattura di finestre e regioni richiede un passaggio con script

Tutti e tre usano lo stesso motore di cattura e lo stesso modello di permessi. Scegli quello che già conosci. Se non ne conosci nessuno, parti dal Terminale, perché il test occupa due righe.

Di cosa è fatto ciascun metodo

Automator e Shortcuts spesso richiamano lo stesso comando screencapture tramite un'azione di shell. La differenza sta nel wrapper: il Terminale usa un file di script, Automator salva un workflow o un'app con doppio clic, Shortcuts aggiunge launcher come la barra dei menu, una scorciatoia da tastiera o un'automazione a orario.

Quindi la riga di cattura si scrive una sola volta. Verificala nel Terminale, poi incollala nell'azione Run Shell Script di Automator o Shortcuts se ti serve un launcher.

Decidi in base a come cambia il contenuto

Il metodo conta meno del trigger di ogni nuovo frame. Un contenuto che cambia da solo, come una dashboard, un log di build o la barra di avanzamento di un render, richiede solo un timer. Un contenuto che cambia alla pressione di un tasto, come le slide o un lettore, richiede un timer più la pressione di un tasto.

Un contenuto che cambia quando qualcuno clicca durante un'attività è un caso diverso. Un timer cattura molti frame identici tra un clic e l'altro e perde il momento di ogni clic. In questo caso uno strumento basato sui clic, come Action Capture di Temposhot, salva un frame per ogni clic accettato invece di un frame per ogni intervallo.

I flag che contano per l'automazione

screencapture ha più opzioni di quante ne usi la maggior parte delle persone. Quelle qui sotto coprono quasi ogni lavoro di automazione su un singolo Mac.

Pannello delle impostazioni con i flag di screencapture: -x silenzioso, -m display principale, -D numero del display, -R regione fissa, -t tipo di file, -l ID della finestra, -T ritardo in secondi, -C include il cursore.

Esegui man screencapture nel Terminale per l'elenco completo nella tua versione di macOS. Una regione fissa con -R è il flag più utile per le slide, perché esclude la barra dei menu, il Dock e i banner di notifica.

Prima di iniziare: consenti la cattura dello schermo e prova tre frame

macOS richiede il permesso di registrazione dello schermo per ogni app che cattura le finestre di altre app. Deve averlo l'app che esegue la cattura: il Terminale per un loop nella shell, Automator per un workflow (e l'app salvata separatamente), Shortcuts per una scorciatoia.

Apri System Settings, poi Privacy e sicurezza, e attiva l'app nell'elenco della registrazione dello schermo. L'etichetta cambia in base alla versione di macOS. Chiudi e riapri l'app dopo la modifica.

Prova tre frame prima di qualsiasi esecuzione lunga. Tre frame mostrano se permessi, nomi dei file e tempistiche funzionano, e il test richiede circa dieci secondi. Un'esecuzione di 500 frame che salva solo lo sfondo fa perdere molto più tempo.

Quale app richiede quale permesso

Il permesso appartiene al processo che esegue il comando, non al file dello script. Un loop avviato da iTerm richiede iTerm nell'elenco, e un workflow salvato come app richiede quell'app nell'elenco, anche quando Automator è già autorizzato.

Tabella di confronto con le colonne Screen Recording e Accessibility e le righe: loop nel Terminale, workflow di Automator, app Automator salvata, scorciatoia di Shortcuts e pressione di tasti con osascript.

Quando l'interruttore è attivo ma i frame mostrano lo sfondo

A volte macOS elenca l'app come autorizzata, ma la cattura restituisce solo l'immagine del desktop. Disattiva e riattiva l'interruttore, poi chiudi e riapri l'app. Se lo script viene eseguito dal terminale integrato di un editor, il permesso va concesso all'editor, non al Terminale.

Prepara il Mac prima di un'esecuzione lunga

Un'esecuzione di 120 frame che fallisce al frame 80 è peggio di nessuna esecuzione, perché il buco è facile da non notare. Una breve checklist prima dell'avvio elimina le cause più comuni.

Checklist di sette voci: test di tre frame superato, Non disturbare attivo, caffeinate in esecuzione, app di destinazione in primo piano alla dimensione finale, spazio libero su disco verificato, cartella di output vuota, finestre private e app di chat chiuse.

Esegui un test con tre frame nel Terminale usando screencapture

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

Controlla tre cose nella cartella: ci sono 3 file, ognuno mostra le finestre aperte e i nomi seguono l'ordine di cattura. Il flag -x silenzia il suono dell'otturatore e -m limita la cattura al display principale. La guida alla riga di comando aggiunge regioni fisse, output JPG ed esecuzioni più lunghe.

Timeline: a 0:00 viene salvato frame-1.png, a 0:03 frame-2.png, a 0:06 frame-3.png, a 0:09 il loop termina e il Finder apre la cartella del test per il controllo.

Numera i file in modo che si ordinino correttamente

frame-$i.png funziona per 3 frame, ma si ordina male oltre il 9: il Finder e la maggior parte degli strumenti mettono frame-10 prima di frame-2 in un ordinamento testuale semplice. I numeri con zeri iniziali risolvono il problema. printf '%03d' trasforma 7 in 007, e così 120 frame restano in ordine ovunque.

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

Adatta il test al lavoro reale

Nell'esempio delle 120 slide, il loop viene eseguito 120 volte con un'attesa di 2 secondi. Sono 4 minuti di cattura più pochi secondi di preparazione. Con una regione di 1440 × 875, le slide PNG con testo e grafica semplice di solito pesano ben sotto 1 MB ciascuna, quindi l'intera esecuzione occupa circa 50-120 MB.

Quattro statistiche dell'esempio: 120 frame, attesa di 2 secondi per frame, circa 4 minuti di durata totale e 50-120 megabyte stimati di file PNG.
Stime. La dimensione dei file dipende dal contenuto delle slide e dalla dimensione della regione.

Usa Automator per un workflow visivo

Crea un nuovo Workflow in Automator. Aggiungi Take Screenshot, poi Pause impostato a 3 secondi, poi Loop impostato a ripetersi automaticamente e a fermarsi dopo 3 volte. Eseguilo e controlla la cartella.

Se compare un solo file, l'azione ha scritto lo stesso nome a ogni passaggio. Sostituisci Take Screenshot con Run Shell Script e usa la riga screencapture del test nel Terminale con un nome numerato. Salva il workflow finito come Application per eseguirlo con doppio clic. La guida ad Automator contiene l'azione shell completa.

Mantieni un contatore dentro Automator

Un'azione Loop non passa un contatore al passaggio successivo. La soluzione più semplice è lasciare che la shell calcoli il numero successivo dai file già presenti nella cartella, così ogni passaggio sceglie un nuovo nome.

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

Questo richiede una cartella vuota all'inizio. I file rimasti da un'esecuzione precedente spostano ogni numero, quindi svuota la cartella o usane una nuova per ogni esecuzione.

Salva come app e concedi l'accesso

Un workflow salvato come Application è, per macOS, un programma separato. Alla prima cattura, macOS chiede il permesso di registrazione dello schermo per quell'app, anche se Automator era autorizzato durante il test.

Concedi il permesso una volta, poi chiudi e riapri l'app salvata. Se l'app viene spostata o salvata di nuovo con un nome diverso, macOS può trattarla come nuova e chiedere di nuovo il permesso. Conserva quindi l'app definitiva in una sola posizione, per esempio nella cartella Applicazioni.

Usa Shortcuts per launcher e trigger

Crea una scorciatoia con Repeat impostato a 3. Dentro il blocco aggiungi Take Screenshot, Save File con la variabile Repeat Index nel nome del file, e Wait impostato a 3 secondi. Eseguila e controlla la cartella.

Poi la scorciatoia può essere avviata dalla barra dei menu, da una combinazione di tasti o con shortcuts run nel Terminale. Su macOS Tahoe 26 e versioni successive, un'automazione personale può avviarla a un orario prestabilito. La guida a Shortcuts descrive trigger e permessi per gli script.

Avvia una scorciatoia dal Terminale

shortcuts run "Deck Capture" esegue una scorciatoia per nome. Combinato con caffeinate, il comando tiene il Mac sveglio per la durata esatta della scorciatoia, ed è più sicuro che modificare le impostazioni di risparmio energetico per l'intera giornata.

caffeinate -di shortcuts run "Deck Capture"

Repeat Index parte da 1 e non ha zeri iniziali. Oltre il 9, aggiungi il padding in un'azione Text oppure ordina i file per data di creazione invece che per nome.

Avvii a orario e relativi limiti

Un'automazione personale che parte a un orario prestabilito è utile per le catture che devono avvenire quando nessuno è alla scrivania, per esempio una dashboard alle 9:00 di ogni mattina. Il Mac deve essere sveglio e sbloccato a quell'ora, perché uno schermo bloccato non mostra la dashboard.

Mantieni ogni scorciatoia a orario breve e autonoma. Una scorciatoia che cattura 3 frame e si ferma è facile da verificare la mattina dopo, mentre una scorciatoia che gira in loop per 2 ore è difficile da verificare e facile da lasciare in esecuzione.

Aggiungi i cambi pagina solo dopo che la cattura funziona

Scorrere slide o un documento richiede la pressione di un tasto tra un frame e l'altro. Aggiungila dopo che il test con tre frame è superato, così un problema di cattura e un problema di tasti non compaiono mai insieme.

Tutti e tre i metodi inviano i tasti allo stesso modo, tramite System Events:

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

Il codice 124 corrisponde alla freccia destra. L'ordine conta: cattura, premi il tasto, poi attendi abbastanza perché la pagina successiva venga renderizzata. Salta il tasto dopo l'ultimo frame, così il documento non supera l'ultima pagina. L'app che invia il tasto richiede il permesso di Accessibilità, e l'app di destinazione deve essere in primo piano.

Flusso di quattro riquadri collegati da frecce: salva il frame, controlla se è l'ultimo frame, se non lo è invia la freccia destra con key code 124, attende 2 secondi perché la slide venga renderizzata.

Codici dei tasti per altri cambi pagina

key code accetta il numero del tasto hardware, non il carattere. La freccia destra è 124, la freccia sinistra 123, la freccia giù 125, la freccia su 126, la barra spaziatrice 49 e Invio 36. Un lettore che scorre invece di cambiare pagina di solito richiede la barra spaziatrice, che avanza di circa una schermata, mentre la freccia giù si sposta di poche righe.

I caratteri digitati usano invece keystroke, per esempio keystroke "n" per un'app che cambia pagina con il tasto N. Testa ogni nuovo tasto in un'esecuzione di tre frame prima di una lunga.

Lo script completo delle 120 slide

Lo script seguente combina i pezzi: nomi con zeri iniziali, una regione fissa, la pressione di un tasto in ogni passaggio tranne l'ultimo e un'attesa di 2 secondi. Salvalo come deck.zsh ed eseguilo con 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"

La pausa di 5 secondi (sleep) prima del loop funziona da conto alla rovescia. Durante quel tempo fai clic sulla finestra della presentazione, così le pressioni di tasto arrivano a lei e non al Terminale.

Albero dei file: una cartella Captures che contiene una cartella deck con data, con i file da slide-001.png a slide-120.png con zeri iniziali, più una cartella test separata con tre frame.

Regole di tempistica dei tasti

Righe do e dont: cattura prima del tasto, attendi dopo il tasto, salta il tasto nell'ultimo passaggio, fai clic sulla finestra di destinazione durante la pausa iniziale; non inviare il tasto prima della prima cattura, non usare un'attesa di 0 secondi sulle slide con transizioni, non lasciare il Terminale in primo piano.

Le transizioni tra slide sono di solito la causa dei frame sfocati. Una dissolvenza di 1 secondo richiede un'attesa di almeno 1,5 secondi, e disattivare le transizioni nell'app di presentazione è la soluzione più affidabile.

Risolvi i problemi comuni dell'automazione degli screenshot

  • Solo sfondo. L'app in esecuzione non ha il permesso di registrazione dello schermo. Concedilo e riapri l'app.
  • Un solo file invece di molti. Ogni passaggio scrive lo stesso nome. Aggiungi un contatore al nome del file.
  • Frame neri verso la fine dell'esecuzione. Il display si è spento. Esegui caffeinate -di nel Terminale per tutta la durata dell'esecuzione.
  • Pagine saltate. Il tasto è partito prima che la pagina fosse renderizzata. Allunga l'attesa dopo il tasto.
  • Pagina extra alla fine. Il tasto è partito dopo l'ultima cattura. Saltalo nell'ultimo passaggio.
  • Secondo display mancante. Cattura ogni display separatamente con -D 1 e -D 2.

Trova il frame sbagliato rapidamente

Quando un'esecuzione lunga va male, trova il primo frame errato prima di modificare qualsiasi cosa. Apri la cartella nel Finder, passa alla vista icone e scorri finché una miniatura appare diversa. Il numero del frame indica se il problema è iniziato all'avvio (permesso o regione), a un orario fisso (pausa o notifica) o in modo casuale (tempi di rendering).

I frame duplicati affiancati significano che il tasto non è arrivato all'app. Due frame che differiscono di una sola pagina significano che il tasto è arrivato, ma l'attesa era troppo breve. Compare Images mostra la differenza di pixel tra due frame quando il cambiamento è troppo piccolo per essere visto.

Notifiche e overlay nei frame

Una cattura dell'intero display registra tutto ciò che è sullo schermo, inclusi i banner di notifica, l'indicatore del volume e un'app di chat che compare. Non disturbare elimina la maggior parte dei banner. Una regione fissa con -R che esclude l'angolo in alto a destra elimina il resto, perché i banner compaiono lì.

Dimensione della regione sui display Retina

I valori di -R sono in punti dello schermo, non in pixel. Su un display Retina, una regione di 1440 × 875 salva un'immagine di 2880 × 1750 pixel. È più nitida per il testo e per l'OCR, ma raddoppia larghezza e altezza, quindi i file pesano circa quattro volte quelli su un display non Retina. Verifica la dimensione reale in pixel con Screenshot Resolution Checker prima di pianificare lo spazio di archiviazione.

Ferma un loop fuori controllo

Un loop con un conteggio sbagliato può durare molto più del previsto. Premi Control+C nella finestra del Terminale per fermarlo; i frame già salvati restano nella cartella. Per una scorciatoia, seleziona il pulsante di stop dall'icona di Shortcuts nella barra dei menu.

Quando gli strumenti integrati smettono di essere l'opzione più semplice

Gli strumenti integrati gestiscono bene un numero fisso di catture a un ritmo fisso. Ogni esigenza aggiuntiva richiede un altro script: catturare una singola finestra per nome, fermarsi a un orario, mettere in pausa e riprendere a metà esecuzione, oppure produrre un PDF ricercabile o un video.

Un'app dedicata sposta queste funzioni nelle impostazioni. In Auto Capture di Temposhot scegli una sorgente tra Screens, Windows o Custom Area, poi imposti la condizione di stop (Screenshots, Duration o End time), l'intervallo in ms, secondi, minuti o ore, un Key press facoltativo e un Countdown. Una barra mobile mette in pausa, riprende e termina l'esecuzione, e i risultati vengono esportati come PNG, JPG, ZIP, PDF ricercabile o MP4. I preset come Kindle (20 screenshot, 500 ms, freccia destra, conto alla rovescia di 3 s) salvano una configurazione riutilizzabile.

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

Il job da 120 slide in Auto Capture

Lo stesso lavoro si traduce in cinque impostazioni. La sorgente finestra sostituisce la regione -R, e Temposhot porta la finestra in primo piano dopo il conto alla rovescia, quindi non serve alcun clic.

Pannello delle impostazioni: condizione di stop Screenshots, 120 screenshot, intervallo 2 secondi, pressione del tasto freccia destra come funzione Pro, conto alla rovescia 5 s, sorgente Windows con la finestra della presentazione selezionata.

La pressione di tasti in Auto Capture richiede Temposhot Pro e il permesso di Accessibilità. Senza Pro, un'esecuzione a tempo senza tasti funziona ancora per i contenuti che cambiano da soli, come una dashboard o una barra di avanzamento.

Script contro app, a confronto

Confronto con le colonne loop integrato e Auto Capture e le righe: cattura di una finestra, stop a un orario, pausa a metà esecuzione, cambi di display e formati di output.

Esecuzioni che durano ore

I loop integrati sono più deboli nelle esecuzioni lunghe a tempo, come un timelapse di una sessione di lavoro. Lo script deve calcolare un orario di fine, sopravvivere allo stop del display e gestire un cambio di display. In Auto Capture, le condizioni di stop Duration e End time coprono questi casi, ed entrambe sono funzioni Pro.

Il preset integrato Timelapse è un esempio: durata di 1 ora, intervallo di 3 secondi, nessun tasto e conto alla rovescia di 5 secondi, che producono circa 1.200 frame. Esportati in MP4 a 15 frame al secondo, di default, quei frame vengono riprodotti in circa 80 secondi. Se il Mac si blocca o va in stop, Auto Capture mette in pausa lo stream e riprende dopo lo sblocco; un'esecuzione Duration in pausa non conta il tempo di pausa.

La barra mobile e il menu Capture offrono anche il controllo da tastiera mentre un'altra app è in primo piano.

Elenco di scorciatoie: Control C ferma un loop nel Terminale, Command 1 apre Auto Capture, Shift Command R avvia Auto Capture, Command punto esegue Finish Capture, Command N avvia una nuova sessione.

FAQ

Qual è il metodo integrato più veloce da configurare?

Il loop nel Terminale. Richiede un permesso e cinque righe, e le stesse righe funzionano dopo dentro Automator o Shortcuts.

Devo tenere il Mac sveglio?

Sì. Un display spento produce frame neri, e uno schermo bloccato interrompe la cattura. caffeinate -di mantiene sveglio display e sistema mentre un comando è in esecuzione.

I metodi integrati possono catturare una singola finestra?

screencapture -l cattura una finestra tramite ID, ma macOS non ha un comando integrato che elenca gli ID delle finestre. Serve uno script helper o un'app dedicata.

Che cos'è esattamente l'automazione degli screenshot?

Significa che uno strumento scatta screenshot in base a una regola (un intervallo, un clic o un elenco di URL), invece che una persona prema una scorciatoia ogni volta. La voce del glossario sull'automazione degli screenshot contiene una definizione più completa.

Come unisco i file PNG numerati in un unico PDF?

Uniscili in ordine con Image to PDF, poi aggiungi un livello di testo con Screenshot to Searchable PDF se il PDF deve essere ricercabile. I nomi con zeri iniziali mantengono l'ordine corretto quando i file vengono aggiunti.

Perché i miei frame provengono dal display sbagliato?

-m cattura sempre il display principale, quello con la barra dei menu. Sposta la finestra di destinazione su quel display oppure usa -D con il numero del display per catturarne un altro.

Trasforma gli screenshot ripetibili in lavoro finito

Quando il loop integrato ha bisogno di una sorgente finestra, di cambi pagina ed esportazione in PDF o MP4, consulta automazione degli screenshot su Mac oppure segui la guida alla cattura automatizzata.

screenshot-automationmacosscreencaptureshortcutsautomator

Termini utilizzati in questa pagina: screenshot timer, screenshot workflow, window capture

Trasforma gli screenshot ripetibili in lavoro completato

Temposhot scatta screenshot a intervalli regolari o a ogni clic ed esporta il risultato come PDF, immagini, ZIP o MP4.

Post correlati