Subsonic

jul. 14, 2011·
Julio Batista Silva
Julio Batista Silva
· 4 min de lectura
Hoy en día uso Jellyfin y Plex

Subsonic es un servidor multimedia de código abierto capaz de hacer streaming de toda tu biblioteca de música y videos a cualquier celular o computadora conectada a internet. Funciona como VLC, pero tiene varias funciones extra, como hacer transcoding en tiempo real y hacer scrobble a Last.fm.

Accede a la demo para tener una mejor idea: http://www.subsonic.org/pages/demo.jsp

Subsonic es multiplataforma, ya que está hecho en Java. Puede instalarse de forma independiente (standalone) o como un Web Application Archive. Aquí usé la forma standalone por ser más simple.

  1. Instala todas las dependencias

    julio@julio-acer ~ $ sudo pacman -S jre lame ffmpeg flac
    
  2. Descarga e instala el subsonic disponible en el AUR

  3. Edita el script de inicio

    julio@julio-acer ~ $ sudo vim /var/subsonic/subsonic.sh
    SUBSONIC_HOME=/var/subsonic
    SUBSONIC_HOST=0.0.0.0
    SUBSONIC_PORT=4040
    SUBSONIC_HTTPS_PORT=0
    SUBSONIC_CONTEXT_PATH=/
    SUBSONIC_MAX_MEMORY=200
    SUBSONIC_PIDFILE=
    SUBSONIC_DEFAULT_MUSIC_FOLDER=/media/externo/Musicas
    SUBSONIC_DEFAULT_PODCAST_FOLDER=/var/music/Podcast
    SUBSONIC_DEFAULT_PLAYLIST_FOLDER=/var/playlists
    export LC_CTYPE=en_US.UTF-8
    
    quiet=0
    

    En SUBSONIC_HOST deja 0.0.0.0, así tendrás acceso desde cualquier computadora. Cambia a 127.0.0.1 si solo quieres acceso local.

    HTTPS_PORT no es necesario, pero puedes configurarlo como SUBSONIC_HTTPS_PORT=4041. También tendrás que configurar SSL.

    Agregué la última línea con un export porque tuve problemas con carpetas y archivos con acentos y eso lo resolvió. Otras posibles variables a exportar pueden verse con $ locale.

  4. Si en el paso anterior dejaste la carpeta de música por defecto, crea un enlace simbólico en /var/music apuntando a tu carpeta de música del HDD. Ejemplo:

    julio@julio-acer ~ $ sudo ln -s /media/externo/Musicas/ /var/music/
    

    De todos modos, más adelante podrás añadir carpetas de música y videos por la interfaz web.

  5. Ejecuta el script que acabas de editar

    julio@julio-acer ~ $ sudo /var/subsonic/subsonic.sh
    Started Subsonic [PID 7635, /var/subsonic/subsonic_sh.log]
    
  6. Accede a http://localhost:4040 y cambia la contraseña por una más segura

  7. Settings:

    • Music folders: Define las carpetas de música a usar
    • General: Define la carpeta de playlists, idioma, tema y mensajes
    • Advanced: Configura LAME
    • Personal: Configuraciones del usuario, como avatar y cuenta en Last.fm
    • Users: Crea nuevos usuarios, edita sus permisos y cambia su contraseña. Además del admin, recomiendo crear otro usuario con menos permisos, siguiendo el principio del menor privilegio.
    • Players: Define los reproductores y los transcodes
    • Network: NO marques “Automatically configure your router to allow incoming connections to Subsonic”, abriremos el puerto manualmente.

    Marca “Access your server over the Internet using an easy-to-remember address.” y coloca un usuario cualquiera (el mío es jbsilva). Podrás usar esta cuenta gratis por 30 días; después tendrás que donar 10 euros o usar un servicio externo como DynDNS (explico abajo).

    Abre la página del router (aquí 10.0.0.1).

    En LANSetup, reserva el IP 10.0.0.2 para la computadora que corre Subsonic.

    En Port Forwarding, haz click en Add Custom Service y completa con:

    Service Name: Subsonic
    Service Type: TCP/UDP
    Starting Port: 4040
    Ending Port: 4040
    Server IP Adress: 10.0.0.2
    

    Prueba las configuraciones verificando si el router redirigió el puerto 4040 a tu computadora.

    Ejemplo: http://189.19.170.215:4040/ y http://jbsilva.subsonic.org deben mostrar la pantalla de login de Subsonic.

    • Transcoding: Agrega comandos para conversión entre formatos.
    • Internet TV/radio: Agrega links para streams de TV/radios online.
    • Podcast: Configura la descarga de podcasts
      • Search: Configura la actualización del índice para búsquedas
  8. Crea un enlace simbólico para cada programa usado en transcodes:

    julio@julio-acer ~ $ sudo ln -s /usr/bin/lame /var/subsonic/transcode/
    julio@julio-acer ~ $ sudo ln -s /usr/bin/flac /var/subsonic/transcode/
    julio@julio-acer ~ $ sudo ln -s /usr/bin/ffmpeg /var/subsonic/transcode/
    

iPhone

Como el reproductor en Flash de la interfaz web no funciona en el iPhone, la mejor solución es instalar alguna App.

Solo encontré apps gratuitas para Android; para iPhone encontré dos por $4.99: iSub y Z-Subsonic.

Aquí comento sobre iSub, que compré por ser más popular y por manejar mejor álbumes y carátulas según los reviews. Algún día quizá pruebe Z-Subsonic. Si quieres un tutorial para Z-Subsonic, el propio desarrollador hizo uno: http://blog.intulon.com/?p=8

Configurar iSub es sencillo.

  1. Descarga la app de la AppStore y ábrela

  2. Ve a Settings -> Servers

  3. Agrega un servidor nuevo

    Si usas el del propio Subsonic, basta poner http://jbsilva.subsonic.org, sin puerto.
    Si usas DynDNS como en el tutorial que enlazo en el siguiente tópico, incluye también el puerto.
    Ej.: http://jbsilva.dyndns.org:4040 o http://casa.juliobs.com:4040/

  4. En settings » settings, activa scrobble para Last.fm y limita el bitrate en 3G.

DNS Dinámico

Después de 30 días no podrás acceder por la dirección provista por Subsonic (http://jbsilva.subsonic.org).
Tendrás que donar al menos 10 euros al Subsonic, acceder por IP directo o usar un servicio de DNS dinámico para asociar el IP dinámico de tu computadora a una dirección estática.

Hice un post explicando todo el proceso para crear y configurar un hostname en DynDNS. Haz click AQUI para verlo.


Enlaces

Julio Batista Silva
Autores
Senior Cloud Developer
comments powered by Disqus