Montando un servidor de música con Subsonic

39 1777
Escrito por EPDS

¿Alguna vez les pasó que estaban en la oficina y no podían bajar música por restricciones del firewall con las descargas? O estar en una fiesta y el dueño de casa únicamente tenía en su carpeta de música composiciones de Chopin y un compilado de Ricardo Montaner? Ir a la casa de un pariente y querer hacerle escuchar un disco muy difícil de conseguir pero que ustedes tienen en casa? Tener varios equipos en red y querer tener una interfaz estándar para la música, por X motivo? Usar Linux y que no los convenza ningún reproductor?

A mi me pasaron todas esas y algunas más y encontré la solución para cada una de ellas en Subsonic, una aplicación web desarrollada en Java por Sindre Mehus bajo la licencia GPLv3.

Subsonic es lo que yo considero una obra maestra del software. Entre sus features mas interesantes podemos contar las siguientes:

  • Interfaz totalmente limpia, ágil, customizable y con soporte para themes.
  • Identifica y muestra tags ID3 y carátulas. Para las carátulas que te falten incluye un buscador en diversos portales que la guarda automáticamente en disco.
  • Respeta la estructura de directorios.
  • Maneja playlists incluyendo funciones de guardar y shuffle.
  • Multiusuario con reproductores independientes para cada uno.
  • Búsqueda de lyrics y reviews de discos desde la interfaz.
  • Seguridad mediante HTTPS, asignación de permisos por usuario, autenticación mediante Active Directory o LDAP.
  • Modo Jukebox para reproducir sonido por el hardware del server en lugar del cliente.
  • Disponible en más de 20 idiomas.

Ponerlo a andar luego de la descarga es sencillo y rápido, solo basta con seguir las instrucciones para su plataforma y en cuestión de minutos está listo para usar. Puntualmente en Windows es tan fácil como instalarlo igual que cualquier aplicación común y silvestre, abrir el ícono del tray para configurar el puerto de escucha y la memoria máxima que consume y listo el paty. Solo resta entrar con el navegador al server (http://localhost en caso de que sea nuestro propio equipo) y decirle dónde está nuestra música. Si son usuarios de algún SO extraño o simplemente gente complicada tienen disponibles el WAR para colgar en cualquier web container Java como Tomcat o Glassfish o incluso una versión stand-alone embebida con Jetty.

Interfaz de Subsonic

(Subsonic con los discos a la izquierda, 10 discos al azar al centro y la playlist abajo)


Y si hasta acá veníamos bien esperen a conocer sus tres mejores virtudes! La primera es que Subsonic soporta transcoding entre formatos en tiempo real y -lo mejor- resampling en caliente integrándose con LAME. Para qué me sirve ésto, dicen? Supongan que tienen en su casa una conexión con 256kb de upload y toda su colección de música en calidad 320. Un problema, no? Para nada! Crean dos usuarios, uno para usar en su casa sin restricciones y al otro le configuran en Settings > Users > Max Bitrate una calidad menor, digamos 92, y al usarlo desde afuera se olvidan de los tiempos de carga, los cortes y el tiempo de buffer del reproductor.

Subsonic CLI

(La ayuda en la CLI de un Linux Debian… versatilidad pura)

La segunda virtud es el soporte para reproductores clientes en diversas plataformas (incluyendo MacOS, iOS, Android, Windows Phone 7, BB Playbook, Windows, Adobe Air y Google Chrome), hechos en su mayoría por third parties y algunos de ellos pagos. Lamentablemente para usar los clientes externos después de los 30 días es requisito adquirir una licencia mediante una donación, pero realmente lo vale. Si usan alguna aplicación mobile es aconsejable que utilicen el resampling para evitar que con el 3G del que disfrutamos en Argentina escuchar una canción de 4 minutos les lleve media hora y les cueste 500 pesos. Ah, si son developers y de los guapos incluso pueden desarrollar su propio cliente usando la API.

Para el final dejé algo que para algunos será un detalle, pero para mi es vital: la capacidad de subir y bajar discos. En More > Upload podemos tirar un Zip que lo descomprimirá automáticamente en la carpeta que hayamos configurado y adentro de cáda disco nos da la opción de descargar tema por tema o todo junto en un Zip. Qué tal?

Subsonic

(“Adentro” de un disco, ¡miren la cantidad de cosas para hacer!)

Les recomiendo probar la demo online de la aplicación, espero que les guste y la descarguen. Si quieren devolverle algo al autor pueden hacer una donación (lo que habilita el streaming a celulares, saca la publicidad, les da una URL al estilo alt-tab.subsonic.org y varias cosas más), comprar merchandising o ayudar con una traducción, y recuerden que al ser software libre tienen a disposición el código fuente.

EPDS (el Pibe de Sistemas) es un soporte y sysadmin a tiempo completo amante del metal y la buena música. Geek hasta donde la luz no pega, cuando no está intentando programar o haciéndose odiar por sus vecinos disfruta de hacer reir a la gente. Su identidad es un misterio (?)

39 COMENTARIOS

    • Si, lamentablemente para usar cualquiera de las aplicaciones mobile hay que hacer una donación mínima de 10 euros :( al margen de que algunas de ellas son pagas. Al menos con el cliente para Android podés “recibir” la música para escucharla en el dispositivo o usarlo como control remoto para un player que funcione en una PC.

        • Claro, esa es la principal función de la aplicación para Android, yo la probé un tiempo (tiene 30 días de trial si no hiciste donación) y no me convenció por la velocidad de mi proveedor de telefonía, pero con WiFi andaba un cañón.

          Para instalar el server y usarlo con la aplicación web no es necesario donar. Lo que si requiere donación son todas las aplicaciones clientes externas, los detalles están acá al centro y a la derecha:

          http://www.subsonic.org/pages/apps.jsp

    • O podes hacer la gran geek rata, revisar el código, quitarle las limitaciones y listo el pollo… claro que seguro te va a tomar un par de semanas si no mas entre leer la documentación, revisar el código y un mínimo de testeo. :P

    • Lo uso hace varios años y nunca un drama… instalás una versión nueva y lo pisa sin perderte configuraciones, una pinturita. Después contame cómo te fue :)

  1. Excelente Post, Pibe. Hay algo muy similar que siempre he querido hacer y no he tenido la forma. Verás, tengo una tarjeta de TV en mi PC, y siempre he querido transmitir la TV en vivo. ¿Alguna idea?

    • Gracias!
      Mirá, nunca lo hice pero la aplicación típica para eso es MythTV, incluso tenés distribuciones ya armadas como Mythbuntu… fijate si el chip de tu capturadora es compatible (lo mismo para el control remoto), después la instalación no es muy compleja. Vi un par de instalaciones hechas y queda espectacular.

      • Pibe, el problema es que la mayoría de esos programas dejan transmitir la TV GRABADA, aún no he encontrado la forma de transmitir TV EN VIVO. Imagínate que he intentado hasta usando VLC, Justin.tv, y un largo etcétera. Pero ninguno ha funcionado como quiero, ya sea por problemas con el audio, con el cambio de canales o combinación. Por lo que tiene que ser un programa para tal fin. De todos modos investigaré las dos pistas que me diste y comentaré luego. Gracias.

  2. Pinta bueno, eso lo hacía con el navegador Opera, mediante Opera Unite. Pero finalmente no me resulta muy cómodo porque tengo que dejar la computadora en mi casa prendida todo el tiempo y con el programa abierto. Estaría bueno para tener una computadora vieja para usarla únicamente como servidor.

    • Gracias por pasar Kofran :)
      Si, alcanza siempre y cuando habilites el resampling, sino con los temas en buena calidad vas a sufrir bastante… En Windows si mal no recuerdo tuve que bajar Lame y dar algunas vueltas que no recuerdo, en Linux salió andando de una. Cualquier problema me consultás.

    • La aplicación de Android está buena, fijate de configurarle dónde te guarda los temas, te los va dejando en el teléfono para escuchar offline y si estás corto de espacio te puede meter en un problema. Saludos!

  3. La verdad muy bueno. Yo antes usaba el programa Tonido. Lo que me gusta de ese programa es que ademas de la musica, podes compartir archivos o videos por streaming. Podes crear cuentas de usuarios para que otra persona vea los archivos que vos queres. Ademas era instarlo y con 2 clics tenes todo. También es gratis.

    Recien me fije y tiene una versión para android, jamas la probe ni nada.

    • Ah mirá que interesante, no lo conocía… lástima que es privativo :( hay unos cuantos open source pero creo que están medio verdes todavía, si alguno tiene el dato que aporte!

    • Tal cual, me pasó lo mismo! cuando alguien me ve usando Subsonic y me pregunta por qué no uso Grooveshark mi respuesta suele ser “es toda MI música!”… se qué hay, qué no, dónde está… es un Grooveshark a mi medida. Ojalá te sirva.

  4. Lo de la limitación de la app para android es común en estos servicios. pero no se podrá levantar desde el navegador?
    Si es así ya agrego otro proceso mas a mi server. :P

    • Si, obvio! la interfaz web viene incluída, el tema de la licencia es para las aplicaciones nativas de los diversos OS y las mobile! las capturas son tomadas de mi server y la podés probar en el link a la demo que dejé al final del artículo.

Deja un respuesta