Esta seria una versión simplificada, con menos puntos de posibles fallas y hasta cierto punto mas eficiente de un conjunto de scripts hechos en BASH para cubrir eventos en directo, Con una demora de entre 3 a 5 minutos es capaz de publicar en paginas web fotos tomadas por dispositivos capaces de tomar fotos y enviarlas vía email. El proceso es básicamente el siguiente:

[caption id="attachment_4265" align="aligncenter" width="357"]Cinco pasos simples de este sistema

  1. El grupo de usuarios que van a publicar fotos toman las fotos con sus dispositivos, en mi caso siempre he usado mi teléfono móvil.
  2. Esta foto es enviada vía correo electrónico a Picasa.
  3. Picasa procesa esta foto y genera las miniaturas de la foto automáticamente, ademas de hacerlas disponibles a través de su API.
  4. Mi NSLU2 que aun esta corriendo Linux hace una petición HTTP a Picasa y procesa la respuesta generando un archivo con código javascript.
  5. El código javascript pre-generado por mi NSLU2 puede ser insertado en cualquier pagina web, las fotos estarán alojadas en la infraestructura de Picasa, reduciendo así el impacto a nivel de ancho de banda en nuestros servidores.


El Script
Como ven aquí abajo el script esta dividido en tres segmentos, el

System Message: WARNING/2 (/srv/pelican.orvtech.com/www/htdocs/content/livecast-script-transmision-vivo-fotos.rst, line 43)

Line block ends without a blank line.

primero es para la declaración y asignación de variables donde puedes especificar el numero de columnas a usar para mostrar el álbum. El usuario al cual le pertenece esa cuenta de Picasa web y el nombre del álbum que contiene esas fotos. El valor de TEMPORAL debe de ser un directorio donde se van a guardar los archivos temporales que el script use.

El segundo segmento es el encargado de adquirir la data necesaria de

System Message: WARNING/2 (/srv/pelican.orvtech.com/www/htdocs/content/livecast-script-transmision-vivo-fotos.rst, line 52)

Line block ends without a blank line.

las fotos alojadas en Picasa y generar un archivo de texto temporal que luego va a ser procesado para generar el javascript. El tercer y ultimo segmento genera el javascript y manipula el archivo temporal para que se generen columnas de fotos de acuerdo a la variable columnas. | #!/bin/bash # livecast-1.sh # preguntas o contacto en http://orvtech.com # No te olvides de hacer poner un link a http://orvtech.com donde uses este script. #!/bin/bash columnas=3 contador=0 ultimas=6 TEMPORAL="/tmp" USUARIO="tu_ID_de_Usuario_aqui" ALBUM="Nombre_de_Album_aqui" DESTINO="tu_path_de_destino_aqui.js" # curl -s https://picasaweb.google.com/data/feed/base/user/$USUARIO/album/$ALBUM |\ sed -e 's/\"/\ /g' -e s/\'/\ /g | tr ' ' '\n' |grep  s144|\ awk -v USUARIO=$USUARIO -v ALBUM=$ALBUM '{print ""}' > $TEMPORAL/livecast.txt # cat $TEMPORAL/livecast.txt|tail -n $ultimas |\ while read line do contador=$(( $contador + 1 ))  if [ $contador -eq $columnas ];then  echo "${line}" |tr '\n' ' ' | sed -e 's/  / /g'  contador=0  else  echo "${line}"| tr '\n' ' ' | sed -e 's/  / /g'  fi done |tr '\n' ' ' | sed -e 's/  / /g' -e 's/s144/s200-c/g' |awk '{print "var livecast='"'"'" $0"'"'"'\ndocument.write(livecast);"}' > $DESTINO

Este script genera un archivo que puede ser invocado con un simple

System Message: WARNING/2 (/srv/pelican.orvtech.com/www/htdocs/content/livecast-script-transmision-vivo-fotos.rst, line 60)

Line block ends without a blank line.

<script src="http://dominio.ltd/archivo.js" type="text/javascript">. En mi caso a partir del álbum https://picasaweb.google.com/orvtech.com/DropBox genero el código: | var livecast='<a href="https://picasaweb.google.com/orvtech.com/DropBox"><img src="http://lh4.ggpht.com/_9SbN2dfg-eo/TVP_pLNsZNI/AAAAAAAAAC4/fPaI9Axe0vM/s144-c/4563315788_ec545d5010_o.jpg" height="144px" width="144px"/></a> <a href="https://picasaweb.google.com/orvtech.com/DropBox"><img src="http://lh5.ggpht.com/_9SbN2dfg-eo/TVP_-5OuSoI/AAAAAAAAAC4/MUoxlt--jcQ/s144-c/4546433743_2c8b357c72_o.jpg" height="144px" width="144px"/></a> <a href="https://picasaweb.google.com/orvtech.com/DropBox"><img src="http://lh4.ggpht.com/_9SbN2dfg-eo/TVQABB_L42I/AAAAAAAAAC4/3ZqVtZbS6Bc/s144-c/IMG_20110127_225432.jpg" height="144px" width="144px"/></a><br /> <a href="https://picasaweb.google.com/orvtech.com/DropBox"><img src="http://lh5.ggpht.com/_9SbN2dfg-eo/TVQAF0PRLvI/AAAAAAAAAC4/YY_T9872UMs/s144-c/Flisol2009_04.jpg" height="144px" width="144px"/></a> <a href="https://picasaweb.google.com/orvtech.com/DropBox"><img src="http://lh5.ggpht.com/_9SbN2dfg-eo/TVQAN3_ZjQI/AAAAAAAAAC4/gg2DoHP5Ybk/s144-c/p4240052.jpg" height="144px" width="144px"/></a> <a href="https://picasaweb.google.com/orvtech.com/DropBox"><img src="http://lh3.ggpht.com/_9SbN2dfg-eo/TVQAOJ9WG-I/AAAAAAAAAC4/rM8wkBYSdsA/s144-c/IMG_5571.JPG" height="144px" width="144px"/></a><br /> ' document.write(livecast);

Que al ser invocado con <script> produce estas 3 columnas de fotos:



El tamaño de los thumbnails y la cantidad de columnas puede ser configurado incluso se podría asignar en una variable del script con un poco de mas trabajo (15 minutos). Pero se podría decir que estamos listos para transmitir en vivo fotos de eventos como FLISOL, FUDcon, Google IO o cualquier otro evento de este estilo.



La segunda versión de este script
Hace poco mas de dos año hice un script que aunque mas propenso a

System Message: WARNING/2 (/srv/pelican.orvtech.com/www/htdocs/content/livecast-script-transmision-vivo-fotos.rst, line 93)

Line block ends without a blank line.

errores por lo que involucraba muchas mas plataformas y herramientas externas, tenia mas funcionalidades. Entre las que mas les ha llamado la atención al LUG de Trujillo (que son con quienes he discutido el tema de este script en especifico) es la marca de agua y la posibilidad de insertar texto en la imagen. Veamos esta foto para que entiendan de que les estoy hablando.

Subaru WRX en una foto durante la cobertura en vivo del Koni Challenge Subaru WRX en una foto durante la cobertura en vivo del Koni Challenge Subaru WRX en una foto durante la cobertura en vivo del Koni Challenge


Estas fotos fueron de un evento que cubrimos los integrantes de la

System Message: WARNING/2 (/srv/pelican.orvtech.com/www/htdocs/content/livecast-script-transmision-vivo-fotos.rst, line 114)

Line block ends without a blank line.

comunidad subyforums.com, es parte de la copa Koni Challenge. En la parte superior de cada imagen esta información que afecta los resultados de las clasificatorias como por ejemplo temperatura y humedad (impactan mucho a los carros con turbo), hora y fecha. En la parte inferior esta el logo del foro como una marca de agua. Este script se uso durante varios eventos, incluyendo Subaru Challenge 2009, Autoshow de California y el Koni Challenge.

El script se conecta a una casilla de correos, descarga los correos,

System Message: WARNING/2 (/srv/pelican.orvtech.com/www/htdocs/content/livecast-script-transmision-vivo-fotos.rst, line 124)

Line block ends without a blank line.

procesa los archivos adjuntos redimencionandolos y aplicándoles las marcas de agua y la información adicional, ademas de esto se crean las miniaturas de las ultimas 10 fotos para ser compartidas en otras comunidades y se suben todos estos archivos a otro servidor vía FTP donde se servirán finalmente vía HTTP. | En esa entonces use mi NSLU2 que con tan solo 266MHz y 32MB de RAM se demoraba unos 3 o 4 minutos por foto.

Entiendo que el beneficio de este script es que podemos tener fotos del FLISOL o de un Google IO en vivo con por ejemplo la marca de agua del FLISOL y en el tope la información del LUG local. Actualmente tengo algunos ajustes que hacerle al script y solventar un problema que tengo con los certificados para poder usar gmail como casilla de correo y dispongo de poco tiempo.

Pueden descargar el script de este articulo pinchando aqui. Pronto publicare el otro script y les comentare de otro proyecto de este mismo estilo que estoy trabajando en base a unas sugerencias de tatica.

System Message: ERROR/3 (/srv/pelican.orvtech.com/www/htdocs/content/livecast-script-transmision-vivo-fotos.rst, line 154)

Duplicate substitution definition name: "Subaru WRX en una foto durante la cobertura en vivo del Koni Challenge".

System Message: ERROR/3 (/srv/pelican.orvtech.com/www/htdocs/content/livecast-script-transmision-vivo-fotos.rst, line 156)

Duplicate substitution definition name: "Subaru WRX en una foto durante la cobertura en vivo del Koni Challenge".


Comments

comments powered by Disqus