MPD + MPDroid: tu propio servidor de música estilo spotify

mpd_logoDesde hace algunos días, vengo usando los servicios de spotify y deezer, la verdad, si les veo la ventaja a dichos servicios, el hecho de no tener que bajar gigas y gigas de música, el poder escucharlo donde sea y con el dispositivo que uno quiera, es muy buena idea, pero, hay un enorme contra: no son libres.

Resalto la libertad más allá del costo por una razón, son empresas en pleno derecho a generar ganancias, y, para mantener su servicio, de alguna manera tienen que monetizarlo para que sus clientes puedan disfrutar de la música que más les guste, pero, le veo unos puntos en contra: son servicios privativos, sus clientes son privativos, por ende, no sabemos que hay detrás del código de ellos, no sabemos que uso le dan a los datos de sus usuarios, y además, impiden que uno, como usuario de dichos servicios pueda compartir su cuenta con alguien más.unnamed

A raíz de lo que mencionado, me pregunte: ¿hay una alternativa libre y/o gratuita, que además, pueda compartir con las demás personas (al menos a nivel de LAN, asumo que este tuto funciona bien con un VPS)?, encontré uno, Atraci, pero, lastimosamente, tiene un bug que no han resuelto, y que por lo visto, no resolverán a corto plazo, en especial viendo que dicho proyecto esta “estancado”. La otra alternativa que vi, fue (como buen linuxero) seguir la filosofía DIY (Do It Yourself, en buen castellano es: Hazlo tu mismo) para lo cual, me valdré de las siguientes herramientas

  •  MPD, un servidor de música
  •  MPDroid, un cliente de música para MPD para nuestro dispositivo Android (ignoro si existe para IOS, pero, si debe existir al menos un cliente MPD para dicha plataforma)

Ahora, sigamos los siguientes pasos:

instalar el paquete MPD

aptitude install mpd (o apt-get install mpd, si usan una distro diferente de debian, recomiendo usar el comando correspondiente para su distribución)

Una vez instalado el paquete, procedemos a detener el proceso de MPD y a evitar que se inicie con el sistema (ignoro el porque, pero, es un paso necesario, sino, no funcionará el servidor)

Nota: los siguientes pasos tienen que realizarlos como super usuario

service mpd stop
update-rc.d mpd disable

Procedemos a crear las carpetas y archivos necesarios para configurar MPD (este paso si no tiene que ser como super usuario)

mkdir -p ~/.mpd/playlists
cp -v /etc/mpd.conf ~/.mpd/mpd.conf (lo que hacemos es copiar el archivo de configuración de MPD a nuestro usuario, así, si algo sale mal, se puede corregir, sino, pueden usar el archivo de /etc/mpd.conf, así quedará la configuración para todos los usuarios, si más de una persona usa su computadora)

touch ~/.mpd/mpd.db

touch ~/.mpd/mpd.log

touch ~/.mpd/mpd.pid

touch ~/.mpd/mpdstate

Ahora, modificamos el archivo de configuración

vim ~/.mpd/mpd.conf (como mencione antes, si quieren que la configuración quede para todos los usuarios, pueden modificar el de /etc/mpd.conf, aunque, no lo recomiendo, además, pueden sustituir vim por el editor de texto que más les guste, ya sea nano, gedit, geany, etc)

en dicho archivo, tenemos que buscar las siguientes líneas, y dejarlo de la siguiente manera

music_directory “~/Música” (o la ruta donde tengan guardada su música)

playlist_directory “~/.mpd/playlists”

db_file “~/.mpd/mpd.db”

log_file “~/.mpd/mpd.log”

pid_file “~/.mpd/mpd.pid”

state_file “~/.mpd/mpdstate”

la línea de “user” y “group”, las dejamos comentareadas (para comentarear, basta con que pongamos al inicio de la línea el caracter de #)

en la línea que dice “bind_to_address”, tenemos dos opciones, podemos dejarlo comentareado, o ponemos “localhost”, eso es indiferente

en la línea que dice “port”, podemos dejarlo comentareado, usar el puerto que trae por defecto (que es el 6600) o cambiarlo por el que querramos

A continuación, pueden descomentarear y dejar las siguientes líneas como se muestra (esto es opcional)

gapless_mp3_playback “yes”

metadata_to_use “artist,album,title,track,name,genre,date,composer,performer,disc”

auto_update “yes”

buscamos línea que dice:

# An example of an ALSA output:
#
audio_output {
type “alsa”
name “My ALSA Device”
# device “hw:0,0” # optional
# mixer_type “hardware” # optional
# mixer_device “default” # optional
# mixer_control “PCM” # optional
# mixer_index “0” # optional
}

y proceden a dejarlo como el ejemplo anterior. Si usan pulse audio, dejar la siguientes líneas como el ejemplo

audio_output {
type “pulse”
name “My Pulse Output”
# server “remote_server” # optional
# sink “remote_server_sink” # optional
}

Ahora, procedemos a descomentarear la líneas siguientes (que es el punto central para poder realizar el streaming)

audio_output {
type “httpd”
name “My HTTP Stream”
encoder “vorbis” # optional, vorbis or lame
port “8000”
#bind_to_address “0.0.0.0” # optional, IPv4 or IPv6
quality “5.0” # do not define if bitrate is defined
# bitrate “128” # do not define if quality is defined
format “44100:16:1”
max_clients “0” # optional 0=no limit
}

Para finalizar, guardamos el archivo con las configuraciones y procedemos a ejecutar el proceso de mpd (como su usuario, no es necesario ser “root” para que funcione, igual, se podrán conectar al servidor)

Con esto, ya tenemos configurado el servidor, pero, por si solo, no puede reproducir la música, para eso, requiere un cliente, y existen muchos para la plataforma que uds. usen (si, funciona incluso en Windows), en este post, no nos centraremos en todos los clientes habidos y por haber, sino, en tener un servicio similar a spotify o deezer (en otro post hablaremos de ncmpcpp, un cliente en consola muy bueno)

Ahora, procederemos a instalar el cliente en nuestro dispositivo Android, MPDroid, este se encuentra en Google Play o F-Droid, si usan el repositorio de software libre para Android (la vesión que está disponible mientras escribo esto es la 1.07.2), es de mencionar, que este no es el único cliente, hay varios, pero, este es el más conocido.

Una vez instalado, tenemos que indicarle la ruta del servidor (que nos pedirá al iniciarlo por primera vez, pero, si ya lo iniciaron, tienen que ir a ajustes -> Ajustes de conexión -> Ajustes de conexión por defecto), las configuraciones son las siguientes:

  •  Servidor: la IP de su computadora (para saberla, tienen que usar el comando ifconfig como super usuario)
  •  Puerto: el puerto que establecimos en el archivo mpd.conf (que por defecto es el 6600, si lo cambiaron, pongan el puerto que usaron)
  • Servidor de transmisión: que es la misma IP de la computadora con MPD
  • Puerto de transmisión: este lo dejamos con el puerto 8000, en la sección de HTTP, pueden poner el puerto que uds. ingresaron si así lo hicieron
  • Sufijo de la URL de la transmisión: este es opcional, podemos dejarlo en blanco o, pueden ponerle mpd.ogg (o mpd.mp3, según sea el gusto)

Y con esto, finalizamos la configuración en el cliente MPDroid, ahora, solo esperamos que cargue la música almacenada en la carpeta ~/Música. Hecho esto, ya podemos reproducir las canciones que querramos, pero, con un detalle, la música se reproduce en nuestra computadora, para que se reproduzca en nuestro dispositivo con Android, en la pantalla donde se muestra la carátula del disco que estemos oyendo, en la esquina superior derecha, hay un ícono de menú, donde está la opción “Streaming”, al seleccionarlo comenzará a reproducir la pista en nuestro dispositivo Android.

Screenshot_2015-09-30-20-47-55

Si a las primeras no les funciona, reinicien la computadora y con eso, les tiene que funcionar

Otra cosa que pueden hacer, para garantizar que funciona el streaming por HTTP, abran su navegador favorito, e introduzcan la dirección http://localhost:8000 (o el puerto que uds. configuraron) e igual, les tiene que funcionar la reproducción.

Screenshot_2015-09-29-21-01-25

Como siempre, espero les sea útil este post.

¡¡¡Saludos!!!

Anuncios

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s