[Howto]MPD + NeoMPC = Control de tu reproductor musical por web

Posteado en Apps, howto por janitux

Tags : ,

SI bien recuerdan ando como un demente buscando un router decente que corra openwrt, en este caso el poderoso Netgear WGT634U, con unos no despreciables 32 MB de ram (vamos, es solo un router :B) y 8 MB de memorias Flash, pero mejor me voy al grano, con toda la exitación de poseer este juguete router me preguntaba un día, por que tan solo limitar al wgt a ser un servidor de ficheros, cuando el usb que tiene me abre un mundo de posibilidades? (no tanto igual, algún dia quedare corto de ram y de mem flash :B). Pues bien, mi idea algo loca me dijeron ciertas personas, es tomar el router, conectarlo a un hub usb, en ese hub conectar las siguientes cosas:

  1. Un Cofre HDD SATA + un disco SATA o IDE
  2. Una Tarjeta de Sonido USB
  3. Un receptor RF (Este punto me tiene harto cachudo, tengo una tendencia hacia un ati remote wonder II, pero donde encontrarlo en chile, ahi esta lo más intrincado)

Bien, en falta de TODO lo anterior, solo me digne a perseguir el sueño la realidad que se viene la próxima semana (Aun no planeo un nombre para el router) em busque info acerca de lo que quiero hacer, y me lleve la gran sorpresa de que Robert Hardwick ya lo había hecho(o incluso mejor que mi idea), tambien que Nate True ha hecho algo similar (Pero sin tanta parafernalia :P). Em, en que estaba, ah si, MPD y NeoMPC, en donde influirian? en que NeoMPC es un cliente web de MPD, Por lo cual si usara por ejemplo una palm o algun aparatejo con wifi simplemente controlaria la musica con este (Harta plata en una idea loca :S).

Si no entendiste lo que dije atras de MPD y NeoMPC lee aca :B Como lo dice su Sitio MPD significa Music Player Daemon , y MPC significa Music Player Client. Si bien existen muchos clientes para MPD, como lo son gmpc (Para los GNOME-boys), kmp (Para KDE-boys), incluso uno para la manzana : MpcOSX, el que más me acomodo fue NeoMPC destaba por una interfaz limpia y simplista : Ideal para una cosa simple como mi meta que expuse arriba. Bien, NeoMPC es un cliente de MPD escrito en PHP, puede manejar toda tu colección musical previamente configurada en MPD (Hasta el momento tengo un problema eso si, al ser un artista con un / en su nombre — AC/DC — neompc toma como si fuesen dos artistas distintos, por lo tanto no pudiendo ver las canciones de este artista, pero se arregla fácil como veremos más adelante). En esta ocasión instalaremos un servidor web con php 5 y neompc para controlar nuestro MPD, y otro cliente MPD algo más completo escrito en python y hecho para web. Let the Combat Begin!

Continua leyendo :D

Materiales :

Primero pincele con mantequilla…… prepare su ambiente, una bebida o una chela quizas ayude (a quien engaño, es bien poco tiempo en instalar toda la cosa)

First : Instalamos el servidor web -> apt-get install lighttpd (si es que deseamos lighttpd) o apt-get install apache2 (si es que preferimos apache)

Luego : Instalar PHP -> apt-get install php5-cgi (Para solo instalar el modulo de lighttpd, bueno no solo para light, pero el modulo solo cgi) o apt-get install libapache2-mod-php5 (para apache)

Después de luego : Instalar y configurar MPD -> apt-get install mpd && nano /etc/mpd.conf y editamos lo siguiente : music_directory “/var/lib/mpd/music” y le damos la ruta de nuestra música, por ejemplo /home/janitux/music. Luego damos un /etc/init.d/mpd start-create-db , luego un /etc/init.d/mpd restart

Y ya tendremos corriendo MPD con nuestras canciones. Ahora nos falta el cliente.

Tiempo despues : instalamos NeoMPC -> cd /var/www ; svn checkout http://neompc.googlecode.com/svn/trunk/ neompc ; chown -R www-data:www-data neompc

Y eso fue todo, ahora a probar : http://localhost/neompc y debería aparecernos la interfaz de neompc en nuestro navegador :) Si tenemos problemas como el que explique, de los / simplemente editamos el config de neompc : nano /var/www/config/config.inc.php , nos dirigimos a la opcion $_CONFIG['browse_mode'] = ‘metadata’; y cambiamos metadata por filesystem . Ahora neompc debería estar navegando carpeta a carpeta en vez de basandose en los Metadatos. Y tendremos andando un cliente MPC simple. Si deseamos que para entrar en neompc requiera contraseña debemos usar autentificación por http. Sería algo asi : htpasswd -c auth.http.pass janitux donde auth.http.pass sería un fichero que se creara conteniendo tu nombre de usuario y contraseña codificada, janitux es el nombre con el que te deseas autentificar, y usamos la opcion -c para que htpasswd cree este fichero el mismo (Nota : debemos tener instalado el paquete apache2-utils para tener htpasswd) ahora creamos un fichero .htaccess en el directorio de neompc : nano /var/www/neompc/.htaccess, que contenga lo siguiente:

AuthName “Neompc : Cliente de Audio”
AuthType Basic
AuthUserFile /home/janitux/neompc/auth.http.pass
require valid-user

Que hicimos con esto? (Tip: en lighttpd no funciona, es para apache este truquito) Protegimos el directorio con contraseña, AuthName indica cual sera el titulo de la identificacion, el AtuhType el tipo de autentificación, en este caso Basic ya que se usa un fichero en texto simple, y no una db mysql o cosas así, AuhUserFile indica la dirección de donde guardamos el fichero de contraseñas (recomiendo dejarlo en un lugar fuera de los directorios web) y require valid-user indica que para entrar en el directorio se debe haber autentificado la identidad del usuario.

Para lighttpd, si queremos hacer esto es un pelin más complicado, pero bueh :B

lighty-enable-mod auth lo que habilitara el modulo auth de lighttpd (en otras distros añadimos server.modules += ( "mod_auth" ) a nuestro lighttpd.conf) Ahora agregamos esto a /etc/lighttpd/conf-available/10-auth.conf o a nuestro lighttpd.conf :

auth.debug = 2
auth.backend = "plain"
auth.backend.plain.userfile = "/home/janitux/neompc/auth-light"

Donde auth.debug si fuese 0 no mostraría errores,con 1 mostraría solo las autentificaciones que funcionaron y con 2 mostrara todo. auth.backend lo mismo que en apache y auth.backend.plain.userfile es el fichero de contraseñas (PD para agregar más usuarios a un mismo fichero de pass simplemente quitamos la opcion -c de htpasswd). Nada que ver con eso que puse, el tipo de fichero de contraseña que usa lighttpd es el siguiente :

janitux:contraseñaentextoplanoyclar y este lo guardamos donde queramos, y luego lo especificamos cuando nos lo pida

Y para terminar con eso agregamos un :

auth.require = ( "/neompc/" =>
(
"method" => "basic",
"realm" => "
Neompc : Cliente de Audio",
"require" => "user=janitux"
)
)

Plus -> mpdwebamp es un cliente MPD escrito en python, y mostrado en html.

Para instalarlo hacemos lo siguiente :

svn checkout http://mpdwebamp.googlecode.com/svn/trunk/ mpdwebamp

Luego instalamos las dependencias (100 % sacado del wiki de mpdwebamp) :

sudo apt-get install gcc libc6-dev python2.4 python2.4-dev python-dev python-setuptools python-profiler build-essential python-sqlobject && sudo easy_install turbogears

Ahora ejecutamos : python setup.py install (como root) y si no queremos instalar tan a fonde simplemente ejecutamos python start-mpd_webamp.py y tendremos corriendo mpdwebamp en el puerto 8080

En este último no he mirado mucho, ni siquiera me he preocupado por passwords ni nada :P

Sigue siendo muy interesante para mi el uso de bluetooth para el manejo del reproductor de audio, como nos muestra jci, quien modifico y portó el proyecto bemused a C puritano (esa es la meta)

Deja tu comentario

:) (:?) (:idea:) :rolleyes :shock :juntafrio :P :( ;) :zippysconf :zippynana :zippypozo :$ :ninja 8) :D :x :sconf :S :| >:) >:( (:!:) :-( :O :circulos :zippy :plaf :lol (:arrow:) :biggrin