Cómo instalar Dim

Dim es un coordinador de películas. Puede convertir su ordenador en un centro multimedia utilizando el contenido digital que tenga en él. Es una alternativa fantástica de Plex y Jellyfin.

Qué es Dim?

Dim es una aplicación con la que puede convertir su ordenador en un centro multimedia utilizando el contenido digital que tenga en él. Reconoce todos los archivos multimedia que tenga alojados en la carpeta de origen, y los organiza con diferentes secciones para que los tenga relativamente organizados independientemente de que los tenga ordenados o no dentro de la carpeta de su ordenador.

Puede pensar en él como una aplicación para crear su propio Netflix.

Y... Por qué no solo usar Plex o Jellyfin?

Ambos tienen sus problemas. Plex es muy popular porque es bastante fácil de instalarlo. Pero desafortunadamente, la compañía sigue tratando de monetizar a plex. Ahora, para poder usar funciones básicas como ver las películas desde afuera del LAN, hay que pagar. Además, la fuente no es abierta.

Y Jellyfin? Esa sí que tiene la fuente abierta, pero tiene sus problemas. La interfaz usuaria usando un navegador web es terrible. Usar las flechas del navegador para ir atrás no funcionan la mayoría del tiempo, y la flecha del mismo jellyfin trabaja una vez de cada dos intentos... y le lleva dos páginas atrás. Su base de código está escrita en 'C#', y es enorme. De verdad siento pena por los quienes tratan de compilar o empaquetar el programa.

Dim

Afortunadamente, encontré a Dim, que soluciona todos los problemas que tenía. La interfaz en el navegador web es rápida, bonita, y fácil de usar. Hasta se ve mejor que el mismo Netflix, y lo mejor de todo es que está escrita en Rust, que promete ser casi tan rápido como pura C, y sin el riesgo de buffer overflows y otras vulnerabilidades.

Vamos a instalarlo en Debian.

Se puede descargar el programa ya compilado, pero es de hace varios años, y viejo. También se puede instalar usando Docker, pero a mí no me gusta Docker, porque es más difícil de configurar y modificar los programas. Lo mejor es compilarlo por sí mismo.

Primero instalamos las dependencias para compilarlo:

apt install sqlite libssl-dev libva2 libva-dev libva-drm2 ffmpeg

Las instrucciones tienen otras dependencias, pero necesitamos las versiones nuevas, que no se encuentran en los repositorios de Debian.

instalar Rust

sudo apt install curl build-essential gcc make git -y
curl --proto '=https' --tlsv1.3 -sSf https://sh.rustup.rs > rustup.sh
sh ./rustup.sh 

Si quieren, pueden abrir y analizar rustup.sh.

instalar nvm, node.js y yarn:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh > nvm.sh

bash nvm.sh

source $HOME/.bashrc
nvm install node
nvm use node
npm install --global yarn

instalar Dim

Ahora que tenemos todas las dependencias, podemos compilar Dim.

git clone https://github.com/Dusk-Labs/dim

Espero que este arreglen este bug, pero cuando yo lo compilé, el último commit (9211b4b) quebraba la interfaz web.

Nota: Han resuelto el bug.

A mí me daba un error de openssl cuando trataba de compilar (ERR_SSL_EVP_UNSUPPORTED) por lo que incluimos el siguiente paso:

export NODE_OPTIONS=--openssl-legacy-provider

Bueno, ya que solucionamos los problemas, podemos seguir.

cd dim
yarn --cwd ui/ && yarn --cwd ui/ build
mkdir utils && ln -nfs $(which ffmpeg) utils/ffmpeg && ln -nfs $(which ffprobe) utils/ffprobe
cd target/release
mkdir utils && ln -nfs $(which ffmpeg) utils/ffmpeg && ln -nfs $(which ffprobe) utils/ffprobe

y por fin:

cargo run --features vaapi --release

Cuando se compile, les va a decir 'Listening on 0.0.0.0:8000' Pueden comprobar que esté funcionando si van a la página web http://(el IP de la máquina):8000

Si todo trabaja, pueden parar el programa usando Ctrl C

Para continuar, podemos guardar las películas en otro servidor como un NAS, y tener Dim corriendo en otra máquina