31 de julho de 2021

Do bit Ao Byte

Embarcados, Linux e programação

Servidor de mídia com Plex e Raspberry

plex

Ontem em um grupo sugeri 2 links para uma pessoa que está interessada em fazer um servidor de mídia com Raspberry, sendo o “Servidor de mídia com Raspberry” e o um mais elaborado, que inclui Chromecast. Bem, um outro colega de grupo perguntou se havia escrito algo usando Plex. Como ainda não havia escrito nada a respeito, resolvi dar uma estudada pra ver que opções de configuração eu teria usando Plex e Raspberry.

Com Plex podemos fazer streaming a partir do servidor – no caso, o Raspberry. Pode ser vídeo, foto ou música, mas já adianto que é uma boa ideia ter uma fonte ded alimentação adequada e um SSD; não pela velocidade, mas pelo baixo consumo.

Múltiplas conexões são permitidas e o Plex client é suportado em montes de dispositivos diferentes, em praticamente todas as plataformas populares de dispositivos e sistemas operacionais.

Tratando-se de streaming, a melhor opção é usar um cabo de rede invés do WiFi. Como o Raspberry não suporta WiFi 5GHz, o mínimo de recurso necessário seria um roteador adequado como o Archer C6, desse vídeo.

Instalação de pacotes

O primeiro passo é um padrão já conhecido. Atualize o repositório de pacotes e instale inicialmente o apt-transport-https, caso já não o tenha instalado seguindo algum de outros tantos tutoriais aqui do blog.

sudo su
apt-get update
apt-get install apt-transport-https

Adicione a chave do repositório Plex ao apt:

curl https://downloads.plex.tv/plex-keys/PlexSign.key | sudo apt-key add -

E finalmente adicione o repositório oficial:

echo deb https://downloads.plex.tv/repo/deb public main | sudo tee /etc/apt/sources.list.d/plexmediaserver.list

Agora atualize o repositório de pacotes:

apt-get update

Se não obteve nenhum erro, agora podemos instalar o servidor de mídia:

apt-get install plexmediaserver

Quando perguntado, responda com y ao instalador para instalar a versão oficial do mantenedor.

Esse não é um setup complicado, mas não é um dos mais simples. Precisaremos configura uma mídia externa para ser montada automaticamente pelo sistema e precisamos ter um IP fixo no servidor de mídia.

Configuração do IP

A começar pelo IP fixo, temos algumas opções que podem ser interessantes, como configurar seu próprio servidor DNS no Raspberry para resolver nomes para sua rede interna. Depois pode ser necessário dar ainda uma refinada. Uma alternativa pode ser esse servidor DNS de fácil configuração. Um artigo mais elaborado também sobre o mesmo servidor DNS você encontra aqui.

Outra alternativa é entrar na interface do seu roteador WiFi e atribuir um IP ao Raspberry, relacionando o MAC address ao IP livre desejado. Para pegar o MAC do Raspberry, faça:

ifconfig wlan0|egrep ether|awk '{print $2}'

Deve retornar algo como:

Tem ainda a possibilidade de configuração local, mas para evitar problemas com duplicidade e com o servidor DHCP de sua rede, nem vou recomendar o procedimento.

Configuração do dispositivo de armazenamento de mídia

Supondo que seu HD/SSD ainda não tenha sido preparado, será necessário fazer o particionamento do disco com um dos sistemas de arquivos do Linux. Para fazer o particionamento, use o programa gparted.

sudo apt-get install gparted

Depois execute o programa e crie uma partição com o sistema de arquivos ext4 ou xfs. Crie uma partição primária.

Supondo que tenha escolhido ext4, a linha de montagem automática da mídia deverá ser colocada no arquivo /etc/fstab da seguinte maneira:

/dev/sda1  /mnt ext4 defaults,rw,user,exec,auto,nofail,noatime 0 0

Se não souber editar o arquivo /etc/fstab, já temos um grande problema, mas uma forma alternativa de incluir essa linha no fstab pode ser:

echo "/dev/sda1  /mnt ext4 defaults,rw,user,exec,auto,nofail,noatime 0 0" >>/etc/fstab

Não erre o comando acima. Se colocar só 1 sinal de maior, o fstab atual será apagado e substituído por apenas essa linha.

Feito isso, desmonte o dispositivo que certamente será montado de forma automática e remounte:

sudo su
umount /dev/sda1
mount /mnt

Verifique se nenhuma mensagem de erro foi exibida nesse processo. Se houver, uma análise será necessária.

Ao acessar pelo browser, teremos algo como:

plex

Se configurou um servidor DNS como recomendado, poderá acessar a página pelo nome:

rpi.local:32400/web/

Será solicitado o login, que deverá ser uma conta criada externamente. Não gosto desse tipo de aplicação, por isso parei por aqui, mas como você certamente quererá seu servidor Plex rodando, faça o login como desejar, depois vá ao menu Add Library, selecione o tipo de mídia (filme, música etc) e selecione o diretório contendo suas mídias – no caso, /mnt.

Explore a aplicação como desejar, seu servidor Plex estará pronto para uso.

Client Plex

Sinceramente, esse é um artigo para o acervo, apenas para complemento. O client Plex é pago e uma alternativa incompleta é um plugin para Kodi. Se não tem o Kodi instalado, tente fazê-lo pelo apt. Se tiver dificuldades, é assunto para outro artigo.

Em minha opinião, as melhores opções são os dois links no início do artigo, mas se ainda assim houver alguma razão para usar Plex, o tutorial está feito. A imagem de destaque peguei no google, já que não montaria um servidor de mídia com filmes piratas – e não recomendo que o faça.