Subsonic

jul. 14, 2011·
Julio Batista Silva
Julio Batista Silva
· 4 minutos de leitura
blog iPhone
Hoje em dia uso Jellyfin e Plex

Subsonic é um servidor de mídia open source capaz de fazer streaming de toda sua biblioteca de músicas e vídeos para qualquer celular ou computador conectado à internet. Ele funciona como o VLC, mas possui várias features extras, como fazer transcode em tempo real e fazer scrobble para o Last.fm.

Acesse a demonstração para ter uma ideia melhor: http://www.subsonic.org/pages/demo.jsp

O Subsonic é multiplataforma, pois é feito em java. Ele pode ser instalado de forma independente (standalone) ou como um Web Application Archive. Aqui usei a forma standalone por ser mais simples.

  1. Instale todas as dependências

    julio@julio-acer ~ $ sudo pacman -S jre lame ffmpeg flac
    
  2. Baixe e instale o subsonic disponível no AUR

  3. Edite o script de inicialização

    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
    

    Em SUBSONIC_HOST deixe 0.0.0.0 mesmo, assim você terá acesso a partir de qualquer computador. Mude para 127.0.0.1 se você apenas quiser acesso local.

    O HTTPS_PORT não é necessário, mas você pode configurar como SUBSONIC_HTTPS_PORT=4041. Você também precisará configurar o SSL.

    Inseri a última linha com um export, pois tive problemas com pastas e arquivos acentuados e isso resolveu o problema. Outras possíveis variáveis a serem exportadas podem ser vistas em $ locale.

  4. Se, na etapa acima, você deixou a pasta de música padrão. Crie um link simbólico em /var/music para a pasta de músicas no seu HD. Exemplo:

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

    De qualquer forma, posteriormente você poderá adicionar pastas de músicas e vídeos pela interface web.

  5. Execute o script que você acabou de editar

    julio@julio-acer ~ $ sudo /var/subsonic/subsonic.sh
    Started Subsonic [PID 7635, /var/subsonic/subsonic_sh.log]
    
  6. Acesse http://localhost:4040 e troque a senha padrão por uma mais segura

  7. Settings:

    • Music folders: Defina as pastas de música a serem acessadas
    • General: Defina a pasta de playlists, linguagem, tema e as mensagens
    • Advanced: Configure o LAME
    • Personal: Configurações do usuário, como avatar e conta no lastfm
    • Users: Crie novos usuários, edite suas permissões e altere sua senha. Além do admin, recomendo criar outro usuário com menos permissões, para seguir o princípio da menor permissão.
    • Players: Defina os players e os transcodes
    • Network: NÃO maque a opção “Automatically configure your router to allow incoming connections to Subsonic”, pois vamos abrir a porta manualmente.

    Marque “Access your server over the Internet using an easy-to-remember address.” e coloque um usuário qualquer (jbsilva é o meu). Você poderá usar essa conta gratuitamente por 30 dias, depois desse prazo você deve doar 10 euros ou usar um serviço externo como o DynDNS (explicação abaixo).

    Abra a página do roteador (10.0.0.1 aqui).

    Em LANSetup, reserve o IP 10.0.0.2 para o computador rodando o Subsonic.

    Em Port Forwarding, clique em Add Custom Service e preencha com os seguintes dados:

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

    Teste as configurações, verificando se o roteador redirecionou a porta 4040 para seu computador.

    Exemplo: http://189.19.170.215:4040/ e http://jbsilva.subsonic.org devem mostrar a tela de login do Subsonic.

    • Transcoding: Adicione comandos para conversão entre formatos.
    • Internet TV/radio: Adicione links para stream de TV/rádios online.
    • Podcast: Configura o download de podcasts
    • Search: Configura a atualização do index para buscas
  8. Crie um link simbólico para cada programa utilizado para 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 o player em flash da interface web não funciona no iPhone, a melhor solução é instalar algum App.

Só encontrei Apps gratuitos para Android, para iPhone encontrei dois por $4.99: iSub e Z-Subsonic.

Aqui comentarei sobre o iSub que eu baixei por ser mais popular e o iSub lidar melhor com os álbuns e capas, pelos reviews que li. Quem sabe algum dia eu teste o Z-Subsonic. Se quiser um tutorial para configurar o Z-Subsonic, o próprio desenvolvedor criou um: http://blog.intulon.com/?p=8

Configurar o iSub é bem simples.

  1. Baixe o App da AppStore e abra-o

  2. Clique em Settings -> Servers

  3. Adicione um novo servidor

    Se usar o do próprio subsonic é só colocar http://jbsilva.subsonic.org, sem a porta.
    Mas se usar o dynDNS configurado como no tutorial que linkei no próximo tópico, também inclua a porta.
    Eg.: http://jbsilva.dyndns.org:4040 ou http://casa.juliobs.com:4040/

  4. Em settings » settings, ative o scrobble para o Last.fm e limite o bitrate da conexão 3G.

DNS Dinâmico

Após 30 dias você não conseguirá acessar seus arquivos pelo endereço fornecido pelo Subsonic (http://jbsilva.subsonic.org).
Você terá que fazer uma doação de pelo menos 10 euros ao Subsonic, acessar seu computador diretamente pelo IP ou utilizar um serviço de DNS dinâmico para associar o IP dinâmico do seu computador a um endereço estático.

Criei um post explicando todo o processo para criar e configurar um hostname no DynDNS. Clique AQUI para acessá-lo.


Julio Batista Silva
Authors
Senior Cloud Developer

Sou um engenheiro de computação brasileiro baseado na Alemanha, apaixonado por tecnologia, ciência, fotografia e línguas.

Programo há cerca de duas décadas, explorando desde aplicativos móveis e desenvolvimento web até aprendizado de máquina. Atualmente, foco em SRE de nuvem e engenharia de dados.

Sou voluntário nas comunidades de open source e Python, ajudando a organizar a PyCon DE e a PyData Berlin, mentorando e contribuindo com código e traduções.

No meu blog, compartilho dicas de Linux, guias de configuração e notas pessoais que escrevo para referência futura. Espero que outras pessoas também as considerem úteis. O conteúdo está disponível em vários idiomas.

Visite minha galeria para ver algumas das minhas fotografias.

Longe do teclado, você vai me encontrar em shows, tocando clarinete, pedalando, mergulhando ou explorando novos lugares, culturas e culinárias.

Sempre feliz em me conectar! 🙂

comments powered by Disqus