Descargar videos de youtube con Klipper en KDE.

Nunca fui un asiduo usuario de youtube, solo regularmente miro uno que otro video y muy de vez en cuando descargo algo. A la hora de descargar esos videos siempre recurría a la vista de cache del navegador Opera. La misma resulta muy útil para cosas individuales, pero si son muchos los videos que nos interesan hay que optar por alternativas un poco más productivas.

youtube-dl es un pequeño pero potente programa escrito en python que se encarga de descargar videos de youtube y algunos sitios más. El mismo posee flags u opciones para definir el formato, calidad, nombre y demás opciones. Bastaría con instalarlo y ejecutar el siguiente mandato para guardar a disco una copia del video que conmemora los 20 años de Linux:

ArchLinux:
# pacman -S youtube-dl

Ubuntu, Kubuntu, Debian, Mint u otro derivado de Debian:
$ sudo apt-get install youtube-dl

Ahora si bajamos el video:
$ youtube-dl http://www.youtube.com/watch?v=5ocq6_3-nEw

Pero bien, volviendo a la problemática inicial, por cada video que queramos bajar habría que tomar nota de su url y pasársela a youtube-dl para que haga lo suyo.
Aquí es donde entra en juego Klipper, el gestor de portapapeles de KDE. Haciendo uso de las acciones automáticas de klipper, como lo hemos hecho en otra entrada, definiremos que al encontrar coincidencia de lo que sería un url de youtube, se despliegue el menú con algunas opciones de descarga.

Manos a la obra. Lo primero serán las opciones de configuración de klipper, mediante su menú principal. Sobre el apartado de acciones, seleccionamos Añadir una acción.

klipper201

En la ventana emergente con las propiedades de la acción, deberemos ingresar la expresión regular por la que se identificará las url’s correspondientes a youtube y las diferentes acciones. La expresión regular para filtrar las url’s es la siguiente:

youtube\.com\/watch\?v\=

En mi caso he optado por cinco acciones diferentes, tres de ellas para las calidades de video 360p/720p/1080p contenidas en el formato mp4 y las dos últimas para descargar solo mp3 en calidades 128kbps/192kbps.
Aquí podrán notar que klipper no llama directamente a youtube-dl, sino que llama a un script para realizar la descarga. La finalidad de trabajar con scripts es que podremos indicar de manera más sencilla la ruta de trabajo, opciones de descarga y adicionalmente notificaciones gráficas de la finalización del trabajo o un aviso de error cuando el mismo no se complete de manera satisfactoria.
Si están siguiendo la guía al pie de la letra, deberían establecer 5 opciones que llamarán a 5 scripts diferentes, los cuales crearemos más adelante.

klipper202

Orden          Tratamiento de la salida  Descripción
yt1080mp4 "%s" Ignorar                   Descargar video mp4/1080p
yt720mp4 "%s"  Ignorar                   Descargar video mp4/720p
yt360mp4 "%s"  Ignorar                   Descargar video mp4/360p
yt192mp3 "%s"  Ignorar                   Descargar audio mp3/192kbps
yt128mp3 "%s"  Ignorar                   Descargar audio mp3/128kbps

Donde “%s” será la url de youtube contenida en el portapapeles.

Los scripts a crear utilizan todos la misma estructura:

#!/bin/sh
URL=$*
cd /directorio-de-trabajo
youtube-dl -f ## -tq "$URL"
if [ $? -eq 0 ]
then kdialog --title Youtube-DL --passivepopup "Video $URL descargado (xxx/xxx)" ;
else kdialog --title Youtube-DL --passivepopup "Error descargando video $URL" ;
fi

Donde la variable URL será efectivamente la url que le pasamos al script mediante klipper, /directorio-de-trabajo un directorio de nuestro agrado, ## opciones específicas de formato y (xxx/xxx) descripciones acordes al formato y calidad elegidos.
La sentencia IF analiza el código de error que entrega youtube-dl cuando termina de ejecutarse. Si el mismo es igual a 0, se informa por medio de Kdialog que el video fue descargado. Si es distinto de 0, lo que claramente indica que algo salió mal, también obtendremos un aviso gráfico.

Bien, luego de esa breve explicación habrá que crear c/u de los cinco scripts. Para ello es necesario contar con permisos de root porque los mismos se guardarán en la ruta /usr/local/bin

De manera gráfica pueden hacerlo ejecutando ALT+F2 “kdesu kate” o por consola mediante nano:

$ sudo nano /usr/local/bin/yt1080mp4

Pegan el siguiente código y lo guardan.

#!/bin/sh
URL=$*
cd  ~/descargas
youtube-dl -f 37 -tq "$URL"
if [ $? -eq 0 ]
then kdialog --title Youtube-DL --passivepopup "Video $URL descargado (mp4/1080p)" ;
else kdialog --title Youtube-DL --passivepopup "Error descargando video $URL" ;
fi

Y por último habrá que darle permisos de ejecución.

$ sudo chmod +x /usr/local/bin/yt1080mp4

Habrá que repetir los pasos para los cuatro scripts restantes, el código de c/u se muestra a continuación.

yt720mp4
#!/bin/sh
URL=$*
cd ~/descargas
youtube-dl -f 22 -tq "$URL"
if [ $? -eq 0 ]
then kdialog --title Youtube-DL --passivepopup "Video $URL descargado (mp4/720p)" ;
else kdialog --title Youtube-DL --passivepopup "Error descargando video $URL" ;
fi

yt360mp4
#!/bin/sh
URL=$*
cd ~/descargas
youtube-dl -f 18 -tq "$URL"
if [ $? -eq 0 ]
then kdialog --title Youtube-DL --passivepopup "Video $URL descargado (mp4/360p)" ;
else kdialog --title Youtube-DL --passivepopup "Error descargando video $URL" ;
fi

yt192mp3
#!/bin/sh
URL=$*
cd ~/descargas
youtube-dl -f 22 -tq --extract-audio --audio-format mp3 --audio-quality 192k "$URL"
if [ $? -eq 0 ]
then kdialog --title Youtube-DL --passivepopup "Video $URL descargado (mp3/192kbps)" ;
else kdialog --title Youtube-DL --passivepopup "Error descargando video $URL" ;
fi

yt128mp3
#!/bin/sh
URL=$*
cd ~/descargas
youtube-dl -f 34 -tq --extract-audio --audio-format mp3 "$URL"
if [ $? -eq 0 ]
then kdialog --title Youtube-DL --passivepopup "Video $URL descargado (mp3/128kbps)" ;
else kdialog --title Youtube-DL --passivepopup "Error descargando video $URL" ;
fi

Por último, un pequeño ejemplo de su funcionamiento. Abren el navegador y se dirigen a http://www.youtube.com/watch?v=5ocq6_3-nEw

klipper203

Copian la url desde la barra del navegador y automáticamente se mostrará el menú de klipper.

klipper204

Al seleccionar una de las opciones de descarga, la misma empezará a ejecutarse y en el directorio de destino podrán ver su progreso.

klipper205

Y cuando la descarga termine, veremos el aviso de kdialog.

klipper206

Espero les ayude. Bye!”

Renombrar contactos de MSN en Skype para Windows.

Actualización importante: A las versiones de Skype 6.3.0.XXX o superiores se les han quitado completamente las opciones de modificar los nombres mostrados para contactos de messenger. Bad milk.

Microsoft anunció que el 15 de marzo los clientes de MSN (oficiales o no) dejarán de funcionar, siendo la migración a Skype la única alternativa. Aún no tengo decidido si usaré Skype de la manera que usaba la red del Messenger. Tenía a Skype como un programa para hacer video/llamadas o charlas de voz, pero lo usaba por demanda, no como el Messenger que está siempre conectado. Además de eso hay que tener en cuenta que la única manera de conectar a la red de Skype, es con el cliente oficial, complicando el uso de programas de mensajería que integran varias redes, como KDE-Telepathy o Kopete.

Hace unos días, y para no hacerlo a último momento, migré la cuenta para salvaguardar los contactos. Mi primer sorpresa fue al abrir Skype… ¡Todos los nombres personalizados de los contactos habían desaparecido! Algunos dirán que soy maniático, pero mi persona no puede aceptar el hecho de que alguien use un nick de 67 caracteres. Mi segunda sorpresa fue ver que la opción de renombrar un contacto solo estaba disponible para los contactos nativos de la red de Skype, pero no para los del Messenger. Por suerte o descuido, tras investigar un poco el cliente de Windows encontré una manera de renombrarlos, así que la comparto con ustedes:

A continuación pueden ver la interfaz de Skype para Windows, con la opción Renombrar del menú contextual resaltada para un contacto de la red Skype (en este caso, el bot de pruebas).

skype1

Pero si desplegamos el menú contextual sobre un contacto migrado de MSN, el mismo no posee la opción Renombrar.

skype2

La solución para poder renombrar el contacto es acercar el puntero del mouse sobre el nombre, pero en la ventana de conversación. En la imagen siguiente se puede ver que aparece un pequeño botón para editar el nombre o nick mostrado.

skype3

Hacen click en el icono y editan el nombre mostrado por el contacto a gusto. Una vez hecho eso, habrá dos botones nuevos, uno para aprobar el cambio y otro para descartar la edición.

skype4

Y por ultimo pueden ver como queda el contacto al que le modificamos el nick mostrado.

skype5

Ojalá esta modesta guía les ayude y esperemos que en las próximas versiones de Skype, este tipo de incongruencias sean solucionadas.

Aclaración: Inicialmente esta guía iba destinada a hacerse con capturas de Skype sobre Linux, pero no pudo ser. Resulta ser que la versión de Skype para Linux, que en muchos modos es inferior a la de los otros dos sistemas operativos de escritorio,  tiene la posibilidad de renombrar contactos de MSN por medio del menú contextual  :-P

Bye!”