Una herramienta de línea de comandos para realizar capturas de pantalla utilizando Python.
El programa permite:
- Capturar toda la pantalla o un monitor específico.
- Guardar la captura en distintos formatos de imagen.
- Esperar un tiempo antes de capturar.
- Listar todos los monitores conectados.
- Realizar capturas automáticamente cada vez que se hace clic con el mouse.
- Captura de pantalla completa.
- Selección de monitor.
- Modo "Click to Capture".
- Soporte para múltiples formatos de imagen.
- Creación automática de directorios.
- Nombres de archivo con fecha y hora.
- Numeración automática de capturas en modo continuo.
- Interfaz completamente desde la terminal.
- Python 3.10 o superior
Instalar las dependencias con:
pip install mss pynputo bien
pip install -r requirements.txtcon el siguiente archivo requirements.txt:
mss
pynput
python capture.pyGenera una captura de toda la pantalla y la guarda como:
capture_YYYYMMDD_HHMMSS.png
python capture.py -o imagen.pngpython capture.py -f jpgFormatos disponibles:
- png
- jpg
- bmp
- gif
- tiff
Primero listar los monitores disponibles:
python capture.py --listEjemplo:
[0] All: 3840x1080
[1] Monitor 1: 1920x1080
[2] Monitor 2: 1920x1080
Capturar únicamente el monitor 2:
python capture.py --monitor 2Esperar 5 segundos antes de tomar la captura:
python capture.py --delay 5Este modo permanece escuchando los clics del mouse.
Cada clic izquierdo genera automáticamente una captura de pantalla.
python capture.py --loopLas imágenes se guardarán como:
capture_20260713_201533_0000.png
capture_20260713_201534_0001.png
capture_20260713_201535_0002.png
...
Para finalizar:
Ctrl + C
En modo continuo:
python capture.py --loop -o capturasLas imágenes se guardarán dentro de:
capturas/
| Parámetro | Descripción |
|---|---|
-o, --output |
Archivo de salida o carpeta en modo loop |
-f, --format |
Formato de imagen |
-m, --monitor |
Monitor a capturar |
-l, --list |
Lista los monitores disponibles |
-d, --delay |
Espera antes de capturar |
--loop |
Activa el modo captura por clic |
Captura simple:
python capture.pyCapturar monitor 1:
python capture.py --monitor 1Guardar como JPG:
python capture.py -f jpgEsperar 10 segundos:
python capture.py --delay 10Guardar con nombre personalizado:
python capture.py -o escritorio.pngModo continuo:
python capture.py --loopModo continuo en una carpeta:
python capture.py --loop -o screenshotsEl programa utiliza dos bibliotecas principales:
Se encarga de acceder directamente al framebuffer del sistema operativo para obtener la imagen de la pantalla de forma rápida y eficiente.
Escucha los eventos del mouse para detectar cada clic cuando se utiliza el modo Click-to-Capture.
En modo continuo se crea una sesión de captura protegida mediante un threading.Lock, evitando conflictos si se producen varios eventos casi simultáneamente.
Cada imagen recibe automáticamente:
- fecha
- hora
- contador incremental
lo que evita sobrescribir capturas anteriores.
Probado con:
- Windows
- Linux
También debería funcionar en macOS, aunque algunos permisos de accesibilidad pueden ser necesarios para que pynput pueda escuchar los eventos del mouse.
Este proyecto se distribuye bajo la licencia MIT.
Desarrollado por Emanuel Bellanti, año 2026.