Novedades: actualmente estoy impulsando el proyecto Argentina en Python, desde aquí (ver mapa)

El subtítulo correcto sin hacer ni un click

¡Me cansé! Siempre me hichó un poco las bolas tener que ir a subdivx para buscar el subtítulo correcto para el video que quería ver, bajar ese .rar horrible, descomprimirlo y probarlo para ver si estaba bien sincronizado. Eso, no solo que llevaba un rato, sino que encima a veces estaban mal sincronizado y puteaba.

Hoy, en primer lugar uso Kodi para reproducir videos en un TV y también en la notebook. Además, de ser re-cool, me permite utilizar mi celular con Yatse como control remoto y lo veo chocho tirado desde la cama. Además, en 2 o 3 swipes me permite bajar el subtítulo del video que estoy viendo desde un par de sitios en la web.

Así y todo, todavía eso me parece engorroso. Por eso es que encontré algo más fácil y mejor aún: subliminal. Así lo uso:

fades -p python2 -d subliminal==1.1.1 -x subliminal download -v \
  -p addic7ed -p opensubtitles -p podnapisi -p thesubdb -p tvsubtitles \
  -l en -l spa <ejemplo.mp4>
-v: para que me muestre el debug del subliminal y ver si algo falló
-p: indica desde qué fuentes bajará los subtítulos
-l: lenguaje del subtítulo

Le pongo en Español e Inglés porque muchas veces no encuentra ningún subtítulo en Español y entonces, ante la necesidad, prefiero verlo con subs en Inglés. De paso cañazo, aprendo algo nuevo.

Pero otra vez, para cada archivo del que quiero un sub tengo que ejecutar este comando: ¡eso suena a script!

#!/bin/bash

# Download subtitles from all movies in a directory
MOVIE_TYPES="*.mp4 *.avi *.mkv"
FADES_BIN=/home/humitos/fades/bin/fades
PATH_MOVIES_1=$1

for MOVIE_TYPE in $MOVIE_TYPES; do {
  find "$PATH_MOVIES_1" -name $MOVIE_TYPE -type f -print | \
  xargs -I '{}' $FADES_BIN -p python2 -d subliminal==1.1.1 -x subliminal download -v \
   -p addic7ed -p opensubtitles -p podnapisi -p thesubdb -p tvsubtitles \
   -l en -l spa \
   '{}'
}; done

Y lo utilizo así:

download_subtitles.sh /media/Toshiba/series

Esto lo que hace es buscar en el PATH que le paso como primer argumento todos los archivos .mp4, .avi y .mkv de forma recursiva y para cada uno de los archivos ejecuta el comando que descarga el subtítulo.

¿Cómo funciona? ¡Ni puta idea, pero rockea!


Crear lista de thumbnails bonitas

Tenía ganas de cambiar la presentación de los artículos de la sección de prensa en el sitio de "Argentina en Python" ya que eran simplemente una lista con la fecha y los links a la página y se veía horrible.

Esto tenía dos objetivos claros:

  1. Que se vea bonito, claro
  2. Tener un backup en imágenes de los sitios donde salió la nota

¿Qué pasa? Muchas veces esos sitios, blogs, links, lo que fuere; se caen o cualquier cosa y yo pierdo un material que para mí es importante. Entonces, quería tener una imagen completa del sitio web en dónde salió publicado. Para esto utilicé la extensión Full Page Screen Capture en cada uno de los sitios web.

Luego necesitaba hacer un thumbnail pequeño, pero que también se note algo de lo que era el sitio web. Aquí robé la idea de la presentación del sitio web de donaciones de Joac que no muestra el sitio web completo, sino solo la primera parte. Para hacer resize y cortar la imágen utilicé, obviamente, convert de ImageMagick:

for F in `ls *.png`; do {
    convert -resize 340x -crop 340x255+0 ${F} `basename ${F} .png`-340x255.png
}; done

Ese comando achica la imagen a 340px de ancho y a su correpondiente de alto, manteniendo el aspecto. Además, luego la corta a 340px x 255px y guarda el resultado con el mismo nombre que el archivo original pero le agrega -340x255 antes del .png

Una vez que tenía esto, utilicé el plugin meta_template de Nikola que hice hace unos días para incrustar los divs de Bootstrap3 como deseaba. Este es el template que utilicé:

<div class="col-md-4 col-sm-6 col-xs-12" style="min-height: 435px;">
 <div class="thumbnail">
   <a href="${href}">
    <img src="${src}" style="width: 340px; height: 255px;">
   </a>
   <div class="caption">
    <h3><strong>${title|h}</strong></h3>
    <p>${description}</p>
   </div>
 </div>
</div>

Y luego, dentro de mi archivo .rst de la página de Nikola:

.. template:: prensa-image
   :title: Blog de La Nación
   :description: Sexto encuentro nacional de Python Argentina
   :src: 2014_noviembre_1-340x255.png
   :href: http://blogs.lanacion.com.ar/data/argentina/sexto-encuentro-nacional-de-python-argentina/

El resultado en vivo: https://argentinaenpython.com/historia/prensa/

prensa-section.thumbnail.png

Sección de prensa de Argentina en Python


Todo vuelve a empezar, un escalón arriba

El 2016 me agarró en Huacho, Perú. Una ciudad que particularmente no tiene nada, pero fue la primera ciudad tranquila que encontramos luego de pasar Lima camino hacia el norte -nuestro norte: Ecuador. Decidimos quedarnos aquí una noche para ver si al día siguiente encontrábamos algo mejor o bien la posibilidad de trabajar un poco.

Por esas cosas de la vida, al día siguiente cuando nos estábamos yendo, se nos acerca un señor y nos ofrece una tarjeta de su hospedaje que quedaba retirado de la ciudad. "Sí o sí tenemos que ir a verlo antes de irnos" -dije. Y así fue. Fuimos al lugar era excelente, pero seguro que el precio era algo que no podíamos pagar. Johanna, sin pelos en la lengua, negoció el precio hasta conseguirlo por USD 4 la noche. ¡Es una genia!

Este año nuevo me agarra tomando Bacardí con Maracuyá en Perú. Maracuyá, una fruta que en mi vida había probado en un país que nunca había estado. Sonidos, rostros y culturas nuevas todo el tiempo. Conociendo y creciendo. Superando expectativas y hasta incluso mis propios sueños. Siendo feliz, pero raro.

Seguir leyendo…


Corregir fechas de fotos con jhead

Una de las peores cosas que te puede pasar en la vida es que te olvides de setear la fecha en la cámara de fotos antes de comenzar a tomarlas. Bueno, en realidad no es tan grave, pero cuando el error lo comete otro hay que hacérselo saber de la forma que más lo impacte para que no lo vuelva a cometer :D

La cuestión es que sacamos fotos con varias cámaras de fotos en el taller de Django Girls Mendoza y luego, a la hora de mostrarlas, está bueno que estén ordenadas de forma ascendente de la primera que se tomó hasta la última intercalando las diferentes cámaras. Esto te permite ver cómo fue evolucionando el evento y desde diferentes puntos de vistas (los distintos camarógrafos).

Dicho de otra forma, lo que evitamos es comenzar viendo el evento por el almuerzo, luego el desayuno y finalmente la foto de cierre siguiendo de cuando inició la charla por la mañana temprano. ¿Se entiende? Claro, es un quilombo para seguirlo.

Para resolver esto, utilicé jhead que te permite manipular la información EXIF de las fotos de una manera sencilla:

sudo apt-get install jhead

Una vez instalado, me vastó con el leer el manpage: man jhead y algunos argumentos. Finalmente terminé utilizando estos dos comandos.

jhead -ds2015:11:12 DSCF*.JPG
jhead -ta+2:00 DSCF*.JPG
-ds: Sets the date stored in the Exif header to what is specified on the command line.
-ta: Adjust time stored in the Exif header by h:mm forwards or backwards.

El primer comando le indica que la fecha de todas las fotos es el 12 de Noviembre de 2015 (cuando fue el taller) y el segundo comando le dice que sume 2 horas a la fecha de cada una de las fotos. Ese número de 2 horas lo deduje mirando las fotos que habíamos tomado con la cámara que no tenía correctamente seteada la fecha y comparándolas con una que sí: mi celular.

Si leiste este post antes de las fiestas, vas a configurar correctamente la fecha de la cámara antes de empezar a tomar fotos. Y sino, vas a llegar aquí gracias a Google cuando estés desesperado por querer organizarlas de forma cronológica.

¡Salud!