En la actualidad, para transferir imágenes, audios y videos entre nuestros dispositivos móviles y una computadora corriendo cualquier distribución moderna de GNU/Linux, basta con conectar el dispositivo en cuestión y con un triunfal doble click acceder al medio. Detrás de ello e imbuido de la filosofía de Unix, que procura que en un sistema prácticamente todo sea modular y reutilizable, podemos tener la suerte de encontrarnos con gPhoto2.
Como indica su página oficial, gPhoto2 es un conjunto de aplicaciones de software libre para interactuar con cámaras digitales en sistemas tipo Unix, como las populares distribuciones de la familia GNU/Linux (Debian, Ubuntu, Linux Mint, Mageia, Gentoo...), pero también MacOS, FreeBSD, NetBSD, etc. A cargo de su desarrollo hay todo un equipo de voluntarios de todas partes del mundo que, al día de la fecha, han conseguido dotar a gPhoto2 de soporte para más de 2700 cámaras y reproductores multimedia.
El núcleo del proyecto es la librería libgphoto2, de donde los distintos programas que integran el conjunto de aplicaciones de gPhoto2 conocen sus métodos y funciones. Las versiones más modernas de esta librería nos permiten transferir información desde y hacia reproductores de medios que utilicen, no solo el protocolo PTP (Picture Transfer Protocol), sino también el más reciente MTP (Media Transfer Protocol).
Al conectar ciertos dispositivos digitales a nuestra computadora, por ejemplo un teléfono celular, éstos permiten seleccionar, como ya habremos advertido, entre uno u otro modo de transferencia, PTP o MTP. PTP (Picture Transfer Protocol) es un protocolo de conexión para cámaras digitales que permite la transferencia de imágenes, mientras que MTP (Media Transfer Protocol) consta de una serie de extensiones sobre la base de PTP que permiten la transferencia, no sólo de imágenes, sino también de audio o video desde cámaras, reproductores de audio, etc.
Cuando nos conectamos desde un gestor de archivos en Linux con soporte GVfs como GNOME Files, Nemo, PCManFM, Thunar o Caja, lo habitual será que, para las conexiones PTP, gvfsd-gphoto2, un backend de gPhoto2, esté a cargo del proceso.
Pero gPhoto —y a esto íbamos cuando hablamos de filosofía modular al comienzo— tiene vida propia. ¿Acceder, por ejemplo, a las imágenes del celular a través de una línea de comandos?
Entre las aplicaciones que proporciona el paquete de gPhoto2 encontramos:
gphotofs es un programa basado en libgphoto2 que permite montar cualquier cámara soportada por gphoto2 como un sistema de archivos. La sintaxis para hacerlo es:
gphotofs <punto_de_montaje>
y para desmontar la unidad del dispositivo:
fusermount -u <punto_de_montaje>
Aunque la página de manual de gphotofs dice que actualmente no se pueden agregar ni eliminar directorios, renombrar ficheros ni directorios, añadir o modificar ficheros ni obtener información relativa al espacio de almacenamiento, en las versiones actuales del programa todas estas acciones son posibles.
Una lista de las limitaciones actualizadas de gphoto2 es proporcionada en el README del proyecto en Github:
You cannot:
La CLI (interfaz de línea de comandos) de gPhoto2 se invoca mediante el comando gphoto2.
No requiere que se indique la dirección o puerto del dispositivo ya que el mismo es detectado automáticamente. En el caso de tener más de un dispositivo conectado, puede especificarse el puerto, mediante la opción --port [PATH], o el modelo de la cámara, --camera [MODEL]; si no se especifica ninguna de estas opciones, las órdenes de gphoto2 serán enviadas al primer dispositivo listado por
gphoto2 --auto-detect.
Algunas opciones básicas para la transferencia de archivos son
Las mencionadas son sólo algunas de las opciones disponibles. La lista completa puede consultarse en la página de manual del comando e incluyen, entre otras funciones, la de obtener el thumbnail de uno o varios archivos, mostrar información acerca de los archivos o el medio de almacenamiento, subir un archivo a la cámara, entre otras. Una opción llamativa es la que nos permite, con ciertas cámaras, enviar desde la computadora la orden de tomar una foto.
Por si fuera poco, gPhoto2 dispone, además, de ¡un sistema de scripts con ganchos (hooks) y una línea de comandos interactiva!
Investigalo vos también. Dejanos tus comentarios.