Según la definición que aparece en Wikipedia, Ampache es un administrador de archivos y servidor de streaming multimedia que se ejecuta sobre un servidor web. Es decir, un software que os permitirá mantener organizada vuestra biblioteca multimedia (generalmente música y películas) y que os permitirá reproducir dicha biblioteca desde un navegador, un smartphone, una tablet, etc.

Empresas como Spotify, Deezer, Jamendo, los asquerosos de Google Play Music o la recién llegada Apple Music (entre muchas otras) ofrecen casi toda la música del mundo a solo un par de clicks de distancia, y como cada vez hay más competencia en este tipo de servicios de audio en streaming, todas ellas se esfuerzan en mejorar la calidad de sus servicios, aumentar su catálogo y mejorar sus cada vez más atractivos precios de suscripción.

¿Porqué montar entonces un servicio propio de streaming? Intentaré explicarlo para que incluso tu, insignificante humano, lo entiendas...

En primer lugar, por no depender de un tercero... cosa que aunque os parezca una tontería, es MUY importante.

Y no me refiero solo a que depender de ellos hasta el punto de tener que pasar por el aro si el día de mañana deciden subir sus precios de repente, o si deciden meter publicidad entre canción y canción (a pesar de estar pagando un servicio premium). Me refiero a mucho más...

Piensa que quizás algún día te apetezca escuchar una canción, y al acudir a tu maravilloso proveedor (al cual estas pagando mes a mes por tu suscripción premium) descubres tristemente que dicha canción no está disponible en su catálogo. Bien porque la discográfica que publicó ese disco no firmó ningún acuerdo con ellos, o bien porque sea de algún sello alternativo que no use los canales de distribución habituales de la llamada Industria Músical o incluso porque la empresa con la que tengas contratado el servicio de streaming decida que la temática de las letras de dicho grupo van en contra de sus políticas (si, estoy hablando ni más ni menos de censura, como la que suele hacer Google o Apple cuando les viene en gana). En cualquiera de los casos, si es otro quien decide lo que puedes escuchar y lo qué no, es lógico que tarde o temprano quieras escuchar algo que ellos no te permitan, es solo una cuestión de tiempo.

Pero aunque todo esto no sucediera nunca (JA!), qué hay de la satisfacción de hacer las cosas uno mismo y no depender de nadie? Si el maravilloso mundo del software libre nos ofrece un producto que funciona bien, que podemos utilizar fácilmente y que hace exáctamente lo que queremos que haga, porqué no íbamos a usarlo?

Ampache es precisamente uno de los proyectos más importantes en éste sentido, así que es del que voy a hablar en éste artículo.

Si sois como yo (lo cual es raro, la verdad) seguro que tenéis una buena biblioteca multimedia ordenada, categorizada y almacenada en alguna parte. En mi caso la tengo (junto a muchas otras cosas) en una maravillosa NAS (la Allnet ALL6600 de 10TB de la que ya os hablé en éste artículo).

Vamos a utilizar Ampache para poder acceder a todo ese contenido desde cualquier parte, gratuitamente y sin intermediarios o terceras partes que decidan lo que podemos o no podemos escuchar.

  1. Un poco de historia sobre Ampache
  2. Instalación
  3. Configuración
  4. Referencias

Un poco de historia sobre Ampache

Un programador llamado Scott Kveton inició el proyecto Ampache en 2001, y a partir de 2003 fue Karl Vollmer quien se encargó de su desarrollo.

Ampache está escrito en PHP, y aunque originalmente se diseñó como complemento a mod_mp3 (un módulo del servidor web Apache que permitía reproducir archivos de audio MP3 en streaming), finalmente desarrolló su propio servicio de streaming y de organización/búsqueda de archivos.

Es decir, Ampache permite que desde cualquier navegador (o dispositivo/aplicación compatible) consultemos nuestra música, realicemos búsquedas en ella, mostremos los datos de las canciones y de sus artistas y, por supuesto, que reproduzcamos dichos archivos al vuelo sin necesidad de descargarlos previamente (streaming).

Dispone de una API que permite a los desarrolladores integrar sus programas con nuestra música, lo que ha permitido desarrollar aplicaciones con las que acceder a nuestro servidor Ampache sin necesidad de un navegador web, así como plugins para muchos otros reproductores de música existentes (como Rhythmbox, Amarok, etc).

En la actualidad continua siendo un proyecto activo y en continuo desarrollo, del que se lanzan nuevas versiones cada cierto tiempo con corrección de errores y nuevas funcionalidades.

Se puede consultar la lista de versiones en este enlace: Releases de Ampache en Github.

Instalación

Desde la versión 3.3 (liberada a mediados de 2005) Ampache dispone de un instalador web que facilita enormemente la instalación. Aún así voy a explicar paso a paso el proceso desde 0 para aquellos merluzos que acaben de salir de Matrix y estén aún un poco desorientados...

En mi caso, voy a instalar Ampache en una Raspberry PI (concretamente en una Raspberry PI 2 Model B, porque si lo haceis en modelos de Raspberry PI anteriores irá lentísimo, lo digo por experiencia) porque mi intención es tenerla encendida siempre para poder acceder a mi música cuando y desde donde quiera, y dado que el consumo eléctrico de la Raspberry PI es casi despreciable (entre 2,5W y 4W dependiendo del modelo), puede estar encendida siempre sin que yo tenga que prostituirme para pagar la factura de la luz (pero obviamente el procedimiento es el mismo si queréis instalar Ampache en un servidor normal, en vuestro ordenador o donde sea).

Partimos de la base de que ya tenemos la Raspberry PI con el sistema operativo instalado, por lo que si no es así, ya expliqué en éste otro artículo como instalar Raspbian ¿A qué esperas? Hazlo antes de seguir adelante!

Una vez tengamos la Raspberry PI lista y funcionando (o el servidor donde vayamos a instalar nuestro Ampache) instalamos todas las dependencias que Ampache necesita.

Si nuestro sistema operativo es Debian (o Raspbian en la Raspberry PI) simplemente bastaría con ejecutar:

$ sudo apt-get install apache2 mysql-server php5 php5-curl php5-mysql php5-gd

Si por el contrario somos masoquistas y usamos CentOS, Redhat o distribuciones similares, tendremos que ejecutar:

$ sudo yum install httpd mysql-server php php-curl php-mysql php-gd

Ahora tenemos que descargar Ampache, y esto podemos hacerlo de varias formas:

  • Descargar la última versión desde aqui.
  • Descargar la versión que queramos desde su página de Github.
  • Clonar la rama master de su repositorio de GIT: git clone https://github.com/ampache/ampache.git

Independientemente de cómo lo hagáis, a partir de la versión 3.8.1 tendréis también que actualizar las dependencias de PHP a través de Composer. Para hacer esto bastaría con situaros en el directorio donde hayas descomprimido el código de Ampache que os acabáis de bajar, y ejecutar:

$ composer install --prefer-source --no-interaction

Pero si no disponéis de Composer (o no queréis usarlo) podéis bajar una versión de Ampache que ya lleve todas las dependencias de PHP necesarias incluidas. Estas versiones se llaman `ampache-x.x.x_all.zip, y podéis encontrarlas en la página de descargas de Ampache, en esta dirección: https://github.com/ampache/ampache/releases/latest

En este momento la última versión estable de Ampache es la 3.8.1, por lo que la descargamos en el directorio temporal del sistema /tmp y la descomprimimos en el directorio donde lo vamos a dejar (y que tiene que ser accesible para el servidor web Apache):

$ cd /tmp
$ wget https://github.com/ampache/ampache/releases/download/3.8.1/ampache-3.8.1_all.zip
$ sudo mkdir /var/www/ampache
$ cd /var/www/ampache
$ sudo unzip /tmp/ampache-3.8.1_all.zip

Necesitamos que el programa de instalación pueda escribir en el directorio de Ampache (para generar el archivo de configuración, entre otras cosas), por lo que asignamos los permisos y propietarios necesarios en el recién creado directorio:

$ sudo chown www-data:www-data /var/www/ampache -R
$ sudo chmod 755 /var/www/ampache -R

Una vez hecho esto, ya podemos iniciar al programa de instalación: abrimos el navegador y accedemos a la dirección del servidor donde hayamos instalado Ampache.

En mi caso, mi Raspberry PI tiene la IP 172.26.0.11, por lo que la dirección a la que tengo que acceder es: http://172.26.0.11/ampache/install.php.

Si todo ha ido bien hasta ahora, deberíamos estar viendo una pantalla como ésta:

Seleccionamos el idioma que queramos, y continuamos con la instalación...

El programa de instalación comprobará las dependencias y requisitos de Ampache y nos indicará si alguno de ellos no está instalado o configurado correctamente:

En este caso podemos ver 2 advertencias, la primera relativa al tamaño máximo de los archivos que podemos subir a nuestro servidor (Ampache recomienda que fijemos dicho valor al menos a 20Mb), y la otra es acerca del tamaño máximo de los archivos que Ampache puede manejar (se recomienda que Ampache sea capaz de manejar archivos mayores a 2Gb, pero como esto generalmente requiere un sistema operativo de 64 bits, y la Raspberry PI no lo soporta, en nuestro caso no podemos hacerlo).

Ambos avisos son únicamente advertencias, lo que significa que son recomendables pero no necesarios, por lo que podemos ignorarlos y seguir adelante con la instalación.

En el caso de querer solucionarlos, para el primero deberíamos configurar el valor de la directiva upload_max_filesize al menos a 20M en el archivo de configuración de PHP /etc/php5/apache2/php.ini. Una vez configurado debemos reiniciar Apache para que aplique el cambio con:

$ sudo service apache2 restart

Y para solucionar la segunda advertencia, poco podemos hacer salvo instalar Ampache en un sistema operativo de 64 bits, lo que requerirá que lo hagamos en un servidor cuyo procesador/procesadores sean de 64 bits (cualquier servidor medianamente actual utiliza procesadores de 64 bits).

Si hubiera algún otro punto que debiéramos corregir, se nos indicaría en esa pantalla. Normalmente bastaría con instalar la dependencia que Ampache nos diga y recargar la página de nuevo para que el programa de instalación nos permitiera continuar.

En la siguiente pantalla debemos configurar el acceso a la base de datos.

Por motivos obvios de seguridad, no es una buena idea que Ampache utilice un usuario de base de datos con más permisos de los necesarios para su funcionamiento. Es decir, que el usuario de base de datos de Ampache únicamente debería tener permisos para acceder a las tablas de la base de datos de Ampache, y no a las demás bases de datos que pudiéramos tener en el servidor.

Para hacer esto normalmente accederíamos a la base de datos con un usuario administrador, y una vez dentro creamos la base de datos que vayamos a utilizar y un usuario normal que solo disponga de permisos sobre dicha base de datos, pero en éste caso el propio programa de instalación de Ampache se encarga de hacerlo todo él solito, por lo que únicamente debemos indicarle el usuario/contraseña de un usuario administrador de MySQL, marcar las casillas de "Crear base de datos", "Crear tablas" y "Crear nuevo usuario" (indicando el nombre de usuario y contraseña que queramos para éste nuevo usuario), y él lo hará todo.

Si todo ha ido bien, después de la creación de la base de datos se nos mostrará una pantalla como ésta:

En esta pantalla debemos configurar el tipo de instalación que queremos hacer, los programas de transcodificación y los interfaces que queremos habilitar.

En cuanto al tipo de instalación, debemos elegir entre:

  • Instalación por defecto: La instalación normal de Ampache, con la mayoría de funcionalidades ya habilitadas.
  • Instalación mínima: Únicamente se instalarán las opciones mínimas para poder reproducir nuestra música desde un navegador web.
  • Instalación de comunidad: Podemos configurar nuestro servidor Ampache para dar servicio a una comunidad musical (un grupo de amigos con gustos musicales en común, por ejemplo) de forma que puedan interactuar entre ellos recomendándose canciones, creando listas de reproducción compartidas, etc.

Los programas de transcodificación se utilizan para convertir determinados formatos musicales en otros. Ampache puede hacer esto al vuelo, convirtiendo de un formato a otro (por necesidades específicas del reproductor que estemos usando, por ejemplo) utilizando FFmpeg u otros programas similares. Obviamente debemos tener éstos programas ya instalados para poder utilizar ésta opción.

En cuanto a los interfaces que podemos habilitar, Ampache es capaz de soportar (aparte del propio acceso web desde cualquier navegador) una API (utilizada por los plugins de algunos reproductores, como Amarok o Rhythmbox), protocolos de contenido multimedia (como DAAP, UPnP, etc) y algunos más.

Al igual que con los programas de transcodificación, debemos tener instalados y configurados éstos interfaces para poder utilizarlos con Ampache, tal y como explican en su página Wiki.

Por el momento nosotros somos vamos a utilizar Web interface (para acceder desde el navegador) y Ampache API (para acceder desde Rhythmbox).

Pero lo más importante de ésta pantalla del instalador es lo que hay en la parte de abajo:

Estos son los archivos que el programa de instalación necesita crear para que Ampache funcione correctamente, y os está indicando que dichos archivos NO existen, lo cual es completamente correcto (y tiene que ser así) ya que es el propio programa de instalación el que debe encargarse de crearlos. Por lo tanto, SIN pulsar en los botones de "Guardar" que hay junto a cada archivo, pulsamos directamente el botón de "Crear configuración" ("Create config" si habéis elegido el inglés como idioma en el primer paso) para que sea el instalador quien cree los archivos. Si no lo hacéis así y generáis los archivos individualmente, el instalador fallará en el siguiente paso porque creerá que los archivos ya existen.

Hecho esto, se os mostrará la última parte de la instalación:

Aquí ya únicamente debemos crear la cuenta de administrador de nuestro Ampache, la cual utilizaremos únicamente para entrar la primera vez y crearnos un usuario (porque recordar que como regla general en todos los ámbitos, NUNCA se trabaja con el usuario administrador).

Si todo ha ido bien, el programa de instalación debería haberos redirigido a la pantalla de login, por lo que deberíais estar viendo algo parecido a esto:

Enhorabuena, ya tienes tu Ampache instalado!

Configuración

La instalación de Ampache es muy sencilla, pero su configuración lo es aún más.

Realmente solo necesitaríamos configurar un catálogo para que Ampache empezara a leerlo en busca de música, películas, etc. Los catálogos no son más que orígenes de datos, directorios o unidades montadas en nuestro servidor donde almacenamos los archivos de nuestra biblioteca multimedia.

Como os comenté al principio del artículo, en mi caso todo lo tengo en una NAS, la cual he montado a través de SAMBA en la Raspberry PI donde he instalado Ampache... de forma que para éste último es como si todo estuviera en un directorio local.

Accedemos a través del menú principal a la sección de "Administración", y desde ahí nos vamos a "Añadir un catálogo":

En ésta versión de Ampache el catálogo puede ser local (un directorio del servidor donde se ejecuta Ampache) o remoto (otro servidor Ampache que tengamos montado en otra parte y del que queramos extraer la música).

Le damos un nombre al catálogo, seleccionamos que es de tipo local, el tipo de contenido que hay en el (música, en éste caso) y la ruta del directorio donde hayamos montado la NAS o donde tengamos la música. Pulsamos en "Añadir catálogo" y listo... ya tenemos a Ampache trabajando para examinar todo el contenido del catálogo.

Dependiendo del tamaño de nuestra biblioteca multimedia y del hardware del servidor donde hayamos instalado Ampache, tardaremos más o menos tiempo en tener los datos disponibles. Pero una vez finalizado el proceso, podemos acceder a través del menú lateral al listado de canciones, álbumes, artistas o lo que queramos:

Es importante que tengáis la música con sus etiquetas ID3 correctamente definidas, ya que es en ellas en lo que se basa Ampache para obtener los datos de las canciones, carátulas de los discos, nombres de los artistas, etc, etc.

Si seleccionamos el modo Reproductor Web (o Web Player si habéis elegido el idioma ingles) en el desplegable de la esquina superior derecha de Ampache, solo tenéis que pulsar el PLAY de alguna canción para que comience a reproducirse:

Si por el contrario, seleccionais Streaming en lugar de Reproductor Web, al pulsar el PLAY de una canción se os devolverá un archivo con extensión M3U que podréis abrir desde cualquier reproductor de sonido que admita dicho formator de lista de reproducción en streaming, como por ejemplo XMMS, iTunes, VLC, etc.

A partir de aquí solo os queda familiarizaros con el interface de Ampache, probar sus diferentes opciones, arreglar los tags ID3 de aquellas canciones que Ampache no reconozca (para lo cual os recomiendo el programa Ex Falso / Quod Libet), probar si va igual de bien con la reproducción de video en lugar de únicamente con el audio (esto aún no lo he probado yo tampoco), etc.

Espero que Ampache os haya resultado como mínimo interesante, y que éste artículo os haya servidor de ayuda a la hora de probarlo. A mi desde luego me va a proporcionar muchas horas de música allá donde esté y sin depender de nadie!

Alaaaaaaaaaaaaaaaaaaaaaaa

Referencias