Webcam shots and the Picasa Web Data API

Hace unos días estuve probando darle algún otro uso a la webcam de mi latop. Y terminé probando esto. Capturar imágenes con la webcam y enviarlas a un webserver, en este caso como no tengo un hosting ni tengo forma de llegar al puerto 80 de mi router desde internet, se me ocurrió usar la API de Picasa Web para subir las fotos a un álbum desde un script. Para capturar las imágenes probé varios programas que están en los repos de Ubuntu, pero termine usando fswebcam que no está en los repos, más que nada porque soporta v4l2, que es el driver con el que funciona mi webcam. Con fswebcam tomo la foto, le seteo el tamaño, un titulo, etc. Y usando curl subo la imagen a un álbum público de Picasa Web. La API de Picasa Web está bastante documentada así que no hubo muchos problemas para hacerlo. Acá están los scripts para capturar la imagen y para subirla a Picasa Web.

!/bin/sh

fswebcam --resolution 640x480 --timestamp "%d.%m.%Y %H:%M GMT-03:00" \ --banner-colour "#AA000000" --line-colour "#ff000000" --skip 50 \ --loop 30 --title "PaBLuK" \ --font "/usr/share/fonts/truetype/freefont/FreeSans.ttf:10" \ --exec subirFotoPicasa.sh ~/webcamshots/habitacion.jpg

Con la opción --exec ejecuta el script que sube la imagen después de capturada.

!/bin/bash

FOTO="/home/pabluk/webcamshots/habitacion.jpg"

AUTHKEY="$(curl --silent https://www.google.com/accounts/ClientLogin \ --data Email=pabluk@gmail.com --data Passwd=eltuyo \ --data accountType=GOOGLE --data source=Google-cURL-Example \ --data service=lh2 | grep Auth)"

FOTOID="$(curl --silent --header "Authorization: GoogleLogin $AUTHKEY" \ "http://picasaweb.google.com/data/feed/api/user/pabluk/album/Webcam?kind=photo" \ | tidy -quiet -xml|grep -A 1 edit-media|grep href| cut -d "'" -f 2)"

curl --silent --request PUT --data-binary "@$FOTO" --header "Content-Type: image/jpg" \ --header "Authorization: GoogleLogin $AUTHKEY" "$FOTOID" | tidy -quiet -xml

En estas líneas se autentifica, toma el id de la imagen dentro del albúm, en mi caso el álbum se llama Webcam, y con la última línea sube y reemplaza la imagen.

Lo bueno:

  • No se necesita tener un hosting.
  • No me preocupo por el BW consumido, que no es poco.
Lo malo:
  • No se puede agregar Javascript o algo para recargar la página de la foto automáticamente desde Picasa Web.