Información Importante Sobre el Contenido
Estas accediendo al contenido antiguo del blog. Este artículo "mpd-twitter: Publicar en twitter lo que estas escuchando" es de dominio público y no será mantenido a futuro. Cualquier error o problema acerca del contenido por favor contactate conmigo desde la sección contacto.
Ultimamente he estado usando el Music Player Daemon (MPD) para escuchar música. Tambien me he dado cuenta que en Twitter hace varios días está de trending topic el hashtag #nowplaying, donde la gente publica lo que está escuchando. En base a ésto y a un poco de imaginación y tiempo libre, cree un script en bash que me permite publicar lo que estoy escuchando.
El script, llamado mpd-twitter, usa el cliente mpc para conectarse a mpd y obtener el artista y nombre de la reproducción actual, hacer el parseo necesario y posteriormente publica un estado en twitter.
#!/bin/bash # # Author: Zerial# Version: 0.1 # URL: https://dev.zerial.org/mpd-twitter # License: GPL # CONF_FILE=$HOME/.mpd-twitter USER=$(grep ^USERNAME $CONF_FILE |cut -f 2 -d "=") PASS=$(grep ^PASSWORD $CONF_FILE |cut -f 2 -d "=") if [ -f $CONF_FILE ]; then BEFORE=$(grep ^BEFORE $CONF_FILE |cut -f 2 -d "=") AFTER=$(grep ^AFTER $CONF_FILE |cut -f 2 -d "=") else Xdialog --title "Error" --beep --msgbox "Can't read your local config file. Please copy the /usr/local/share/mpd-twitter/mpd-twitter.local to $HOME/.mpd-twitter" 200 100 exit fi CURRENT_SONG=$(mpc current) MY_UPDATE="$BEFORE $CURRENT_SONG $AFTER" curl -u "$USER:$PASS" -d "status=$MY_UPDATE" -d "source=mpd-twit" "https://twitter.com/statuses/update.json" exit
El archivo de configuración, que debe estar ubicado en ~/.mpd-twitter, es:
# # Local Config file for mpd-twitter # # # Config the username and password # USERNAME=your_username PASSWORD=your_password # # Text before and text after the song. # example: # if BEFORE=Listening and AFTER=(powered by xxx) # mpd-twitter will send "Listening(powered by xxx)" # BEFORE=#nowplaying AFTER=(powered by mpd)
Para los usuarios de Archlinux que quieran probarlo, he creado un PKGBUILD:
# Contributor: Zerialpkgname=mpd-twitter pkgver=0.1 pkgrel=4 pkgdesc="Publish on twitter what you are listening on MPD" arch=('i686' 'x86_64') url="https://dev.zerial.org/mpd-twitter" license=('GPL') depends=('xdialog' 'curl' 'mpc') source=(https://dev.zerial.org/mpd-twitter/${pkgname}_${pkgver}.tar.gz) md5sums=('3d73b79fa38bd60f637386146137999b') build(){ cd $startdir/src/$pkgname install -d $startdir/pkg/usr/local/share/mpd-twitter mkdir $startdir/pkg/usr/bin install -m744 $startdir/src/$pkgname/mpd-twitter.local $startdir/pkg/usr/local/share/mpd-twitter/ install -m755 $startdir/src/$pkgname/mpd-twitter $startdir/pkg/usr/bin/ }
Tambien lo pueden encontrar en el repositorio AUR.
La idea es lanzar el script con algun hotkey de nuestro gestor de ventanas y asi, cada véz que quieras mostrar lo que estás escuchando, simplemente precionas la combinacion de teclas que configuraste. Por ejemplo, en DWM la he configurado asi:
[...] /* commands */ static const char *mpdtwittercmd[] = { "mpd-twitter", NULL }; static Key keys[] = { [...] { MODKEY|ShiftMask, XK_t, spawn, {.v = mpdtwittercmd } }, [...]
De esta forma, cada vez que presiono Alt+Shift + T, aparece en twitter lo que estoy escuchando.
Información Importante Sobre el Contenido
Estas accediendo al contenido antiguo del blog. Este artículo "mpd-twitter: Publicar en twitter lo que estas escuchando" es de dominio público y no será mantenido a futuro. Cualquier error o problema acerca del contenido por favor contactate conmigo desde la sección contacto.
febrero 22, 2010 a las 11:27 am
Tengo 2 aportes:
* Yo ocupo Rhythmbox y es posible obtener lo que estamos escuchando con el comando “rhythmbox-client –print-playing”, eso permitiría agregar rhythmbox al cliente
* El segundo comentario es que en lugar de entregar el nombre de usuario y password sería mejor crear el script como aplicación genérica (dentro de lo posible) y utilizar OAUTH
abril 11, 2010 a las 1:43 am
Muchas gracias me funciono muy bien. Saludos
septiembre 14, 2010 a las 4:05 pm
Espero que salga una nueva versión con Oauth, ya que ya no soporta el método http para acceder a la cuenta de Twitter D:
septiembre 22, 2010 a las 9:14 am
Hola Jorgicio! Tengo al menos dos scripts que usaba para twittear y ambos dejaron de funcionar. Si bien es una forma insegura de hacerlo, era bastante facil. Me voy a dar el tiempo de arreglar este y los otros scripts para usar oauth
noviembre 5, 2010 a las 1:11 pm
Saludos Zerial,
Buscando una herramienta para poder mostrar lo que estoy escuchando en un servidor MPD que tengo en mi red local, me tope con tu blog y tu script, al principio no me funciono ya que no tiene soporte para oauth. Por lo que buscando una alternativa de acceso encontré a supertweet.net que es una API para Twitter, el mismo lo he adaptado a tu script acá te lo dejo:
http://dl.dropbox.com/u/11990994/twitter/mpd-twitter.tar.gz , lo puedes ver funcionando en mi cuenta en twitter: @zokeber
noviembre 5, 2010 a las 1:16 pm
Hola Zokeber!
Que genial. No conocia eso de “supertweet”, al parecer es un proxy que se encarga de hacer el OAuth.
Yo estoy buscando la forma de implementar OAuth en bash, ya encontre unas librerias por ahi, quiero probarlas pronto.
saludos!