En este artículo vamos a explicar cómo montar un servidor de descargas automatizado que nos permita seguir series, películas o artistas musicales sin tener que buscarlos y descargarlos manualmente a nuestro media center. Para ello podemos echar mano de un ordenador viejo que tengamos abandonado, un NUC o cualquiera de esos minicacharros ARM baratos tipo Raspberry Pi. En este último caso será recomendable disponer de un disco duro externo para utilizar como medio de almacenamiento, ya que la capacidad interna es muy escasa. Dependiendo de las funciones que queramos utilizar, recomendaría un sistema con al menos 2GB de RAM. Si solo utilizamos alguna cosa concreta podríamos instalar el sistema en una Raspberry Pi 3, que sólo tiene 1GB, pero usando a la vez todos los programas que instalamos en este tutorial se superará esa cifra con facilidad.
Utilizaremos una distribución GNU/Linux según nuestras preferencias. Me voy a centrar en RaspberryOS Lite por ser bien conocida y de fácil acceso, con miles de tutoriales en la red, pero cualquier otra es válida. Habrá que tener en cuanta dos factores: los nombres de los paquetes y los comandos de instalación pueden variar de una distro a otra (especialmente si no usamos derivadas de Debian), y el servidor de streaming puede necesitar aceleración 3D hardware si pretendemos usar la función de transcodificación. En los microservidores ARM esta parte es complicada. En RaspberryOS 32bit está disponible, pero en las distros de 64bit para Raspberry es experimental y no puedo asegurar que funcione. Sin embargo la transcodificación es opcional y en la mayoría de casos no la necesitaremos. Tened en cuenta también que para este texto uso la arquitectura armhf, si utilizáis otra distinta adaptad los comandos y repositorios apropiadamente.
No voy a explicar la instalación y configuración del sistema operativo ni como añadir un disco externo, ya que esto está más que cubierto por miles de tutoriales en la red. Para los propósitos de este texto, el disco externo estará montado en /mnt/descargas. La configuración de red también es algo muy conocido, en todo caso es recomendable usar una conexión por cable y configurar una IP estática. Asumo que todo el mundo sabe conectar por SSH al servidor. Lo que si voy a recomendar es poner un hostname adecuado e instalar avahi-daemon (en RaspberryOS Lite viene de serie) para acceder al servidor sin tener que recordar una IP. Si, por ejemplo, mi servidor se llama "descargame", estará accesible bajo el dominio descargame.local. Casi todas las distribuciones Linux, así como MacOS y Windows 10 vienen con esta capacidad de serie. Si usáis otra arquitectura diferente de la armhf de este tutorial, substituidla por la vuestra en los comandos y repositorios.
Ojo también con la seguridad. Si lo usamos en una red interna doméstica podemos dejarlo tal cuál, pero si vamos a exponerlo a Internet necesitaremos protegerlo con un cortafuegos. Una vez todo esté configurado y funcionando, sólo necesitaremos los puertos 22 (para SSH) y 80 abiertos para el uso normal. Eso sí, montad el cortafuegos al final para no entorpecer la configuración de los programas de descarga., y tened en cuenta que habría que modificar las URLs de los indexers (en Sonarr, Radarr y Lidarr) poniendo 127.0.0.1 o localhost en lugar del nombre de host o la IP externa. Tampoco he añadido configuración SSL para el navegador, pero no sería complicado y hay muchas guías para ello en la red.
Para todo lo demás, raspi-config ;-)
Al final del tutorial incluiré un archivo comprimido con todos los archivos de servicio, configuración del proxy inverso, la plantilla web y las unidades Monit, que podéis utilizar tal cual o como base para modificar.
Dependencias básicas
Recordad que estos comandos habrá que ejecutarlos como root, o utilizando sudo. A lo mejor os resulta más sencillo hacer "sudo su" para lograr una consola de root. Lo primero de todo es actualizar la distro e instalar algunas dependencias de las aplicaciones. Como cliente torrent voy a usar Transmission, pero Deluge también nos valdría (aunque resulta más pesado y tiene más dependencias):
# apt-get update && apt-get dist-upgrade
# apt-get install libicu63 libssl1.1 mono-complete transmission-daemon natpmpc unrar-free nodejs python3-pip python3-distutils git libopenjp2-tools mediainfo libchromaprint-tools smartmontools monit apt-transport-https nginx libxml2-dev libxslt1-dev python3-libxml2 python3-lxml unrar-free ffmpeg libatlas-base-dev python3-numpy
Nginx es un servidor web y lo vamos a utilizar como proxy inverso para acceder a todas las aplicaciones sin tener que recordar sus respectivos puertos. Monit es un servicio que nos permite comprobar la "salud" del servidor y arrancar o parar servicios, así como tomar acciones si alguno de ellos falla. La última parte de las dependencias (a partir de nginx) sólo las necesitaremos si vamos a instalar Bazarr.
El paso anterior habrá activado el servicio mono-xsp4, no lo vamos a utilizar así que lo desactivamos:
# systemctl disable mono-xsp4.service
Aplicaciones de manejo de descargas
Ahora instalaremos las aplicaciones web que se encargan del manejo de las descargas. Por un lado tenemos Jackett, que es una especie de metabuscador. Nos permite seleccionar en qué trackers torrent vamos a buscar contenidos, y sirve los resultados a las demás aplicaciones. Y si, vamos a utilizar torrents porque las cuentas de USENET son de pago ;-) Por otro lado tenemos una serie de programas muy especializados: Sonarr se encarga de las series y programas de TV, Radarr de las películas, y Lidarr de la música.
Como extra, vamos a instalar Bazarr para que se encargue de descargar subtítulos, si nos gusta ver contenidos en versión original o bien seguimos cosas tan nuevas que no se hayan doblado aún. Os advierto que puede resultar bastante pesado para el sistema, así que instaladlo solamente si os resulta útil.
Hay incluso más programas similares, casi todos derivados unos de otros. Según lo que nos interese podemos instalar otras cosas usando el mismo método. Por ejemplo, recientemente los equipos de Radarr y Lidarr se han fusionado y retomado un viejo proyecto llamado Readarr, que usa una interfaz similar para descargar libros y revistas, tanto en formatos de texto (pdf, epub y otros) como audiolibros. También sirve para los cómics. Aunque en este tutorial no lo vamos a instalar, ya que está muy verde aún, si os interesa podéis darle una oportunidad. El proceso sería similar a Radarr o Lidarr.
No utilizaremos Docker ni repositorios de paquetes extras si podemos evitarlo. Supuestamente con Docker la instalación de estos programas es más fácil, pero ocupa más espacio, a menudo produce problemas de permisos y las actualizaciones no son inmediatas. Con los repositorios las actualizaciones también van más lentas, ya que hay que esperar a que alguien monte el paquete correspondiente. Además, al final habrá que toquetear muchos archivos para ajustar los permisos adecuados y que trabajen bien con los demás programas del sistema, así que los beneficios se diluyen. Utilizaremos una instalación manual a la vieja usanza siempre que sea posible.
Con una shell remota vía SSH con nuestro miniservidor, nos vamos a /opt, que es donde vamos a situar los archivos correspondientes, y empezamos a descargar los archivos. Es importante revisar que descarguemos la última versión adecuada a nuestro sistema, en este caso ARM32. Notad que estoy usando la versión 3 de Sonarr (la estable es la 2, pero la transición es inminente) y de Radarr (que también se considera menos estable, pero llevo tiempo utilizándola y no me ha dado grandes problemas). En todo caso, estas aplicaciones pueden actualizarse a si mismas automáticamente y no es dificil actualizar a la última versión manualmente aunque hayamos instalado una anterior:
# cd /opt
# wget "/releases/download/v0.16.1859/Jackett.Binaries.LinuxARM32.tar.gz"
# wget "https://services.sonarr.tv/v1/download/phantom-develop/latest?version=3&os=linux" -O sonarr.tar.gz
Las URLs de descarga de Sonarr y Radarr enlazan directamente con la última versión disponible en cada momento, pero las de Jackett y Lidarr puede que tengáis que ajustarlas si aparecen nuevas versiones. Usamos la versión Mono de Radarr v3, porque me da un poco de cosa instalar el .Net Core de Microsoft:
# wget "https://radarr.servarr.com/v1/update/nightly/updatefile?os=linux&runtime=mono&arch=arm" -O radarr.tar.gz
# wget "https://github.com/lidarr/Lidarr/releases/download/v0.7.1.1381/Lidarr.master.0.7.1.1381.linux.tar.gz"
Extraemos los archivos y renombramos las carpetas para mantenerlo todo limpio y ordenado:
# tar xvf Jackett.Binaries.LinuxARM32.tar.gz && mv Jackett jackett
# tar xvf sonarr.tar.gz && mv Sonarr sonarr
# tar xvf radarr.tar.gz && mv Radarr radarr
# tar xvf Lidarr.master.0.7.1.1381.linux.tar.gz && mv Lidarr lidarr
Esta parte es la instalación de Bazarr, que se descarga vía git.
# git clone "https://github.com/morpheus65535/bazarr.git" /opt/bazarr
Y ya podemos borrar los archivos originales descargados:
# rm *.tar.gz
Permisos
A continuación viene una parte crucial de la configuración: los permisos. Queremos que cada una de estas aplicaciones pueda actualizarse a si misma con los mínimos privilegios necesarios. También queremos que puedan interactuar con los archivos descargados por el cliente torrent para organizarlo todo, por ejemplo renombrando o moviendo archivos. Excepto Jackett, que en principio sólo necesita permisos para actualizarse a si mismo, aunque si queremos utilizar la función de carpeta vigilada (black-hole, que consiste en que Jackett descarga el torrent o magnet directamente en una carpeta que el cliente torrent repasa continuamente, añadiendo a la lista de descargas los enlaces que encuentre) deberemos darle también acceso al grupo de Transmission. Sin embargo os advierto que Transmission no puede manejar los magnet que le brinda Jackett con la carpeta vigilada, sino solamente los archivos .torrent. Así que si vamos a usar esta funcionalidad con los magnet tendremos que usar otro cliente. Deluge en cambio parece funcionar correctamente.
Vamos a tener un usuario de sistema para cada aplicación y a la vez un grupo común para todas ellas y para el cliente torrent. Como Transmission ya crea un grupo propio, lo utilizaremos en lugar de crear uno nuevo. Para simplificar, actuaré como si fuésemos a utilizar la función de carpeta vigilada de Jackett y Transmission.
Creamos los usuarios:
# useradd -s /bin/false -d /var/lib/jackett/ -r -m -U jackett
# useradd -s /bin/false -d /var/lib/sonarr/ -r -m -U sonarr
# useradd -s /bin/false -d /var/lib/radarr/ -r -m -U radarr
# useradd -s /bin/false -d /var/lib/lidarr/ -r -m -U lidarr
# useradd -s /bin/false -d /var/lib/bazarr/ -r -m -U bazarr
Y ahora los añadimos al grupo de Transmission:
# usermod -a -G debian-transmission sonarr
# usermod -a -G debian-transmission radarr
# usermod -a -G debian-transmission lidarr
# usermod -a -G debian-transmission bazarr
# usermod -a -G debian-transmission jackett
Tenemos que asignar la propiedad de los archivos extraidos al usuario correspondiente, y al grupo común:
# chown -R jackett:debian-transmission /opt/jackett
# chown -R sonarr:debian-transmission /opt/sonarr
# chown -R radarr:debian-transmission /opt/radarr
# chown -R lidarr:debian-transmission /opt/lidarr
# chown -R bazarr:debian-transmission /opt/bazarr
Arranque de servicios
Ahora vamos a crear los servicios para que todas las aplicaciones se inicien al arranque del sistema. Asumo que a estas alturas casi todo el mundo utiliza SystemD. Jackett es el más sencillo, ya que viene de serie con un script para instalar el servicio:
# sh /opt/jackett/install_service_systemd.sh
Aún así, habrá que modificar el archivo creado para que la carpeta vigilada funcione.
# nano /etc/systemd/system/jackett.service
El aspecto final sería este:
Los demás tendremos que crearlos manualmente con un editor de texto. Para los novatos, nano es un editor de consola muy sencillo en el que sólo necesitaréis conocer dos atajos de teclado: Ctrl-o (para guardar el archivo) y Ctrl-x (para salir del editor).
# nano /etc/systemd/system/sonarr.service
# nano /etc/systemd/system/radarr.service
# nano /etc/systemd/system/lidarr.service
# nano /etc/systemd/system/bazarr.service
Nano soporta operaciones de copiar/pegar con el ratón, así que sólo tenéis que copiar el contenido de los archivos de aquí, o descargarlos directamente al servidor:
Estos scripts los he creado modificando ligeramente los ejemplos del Wiki de los respectivos proyectos. Lo importante es que el servicio funcione a nombre del usuario propio de la aplicación y el grupo común para todas (debian-transmission). El parámetro UMask es muy importante, porque permite que los archivos creados por una aplicación sean manejables por las demás del mismo grupo.
Una vez creados los archivos de servicio, los activamos para que se inicien al arranque del sistema. Excepto Jackett que ya estará activado. Primero recargamos la lista de servicios:
# systemctl daemon-reload
# systemctl enable sonarr.service
# systemctl enable radarr.service
# systemctl enable lidarr.service
# systemctl enable bazarr.service
Servidor multimedia Jellyfin
En este punto tenemos instalados los manejadores de descargas y el cliente torrent, pero nos falta el servidor multimedia. Vamos a utilizar Jellyfin, que es un fork totalmente libre de Emby. Este tiene su propio repositorio, así que resulta más fácil.
# wget "https://repo.jellyfin.org/jellyfin_team.gpg.key"
# apt-key add jellyfin_team.gpg.key
# echo "deb [arch=$( dpkg --print-architecture )] https://repo.jellyfin.org/$( awk -F'=' '/^ID=/' /etc/os-release ) $( awk -F'=' '/^VERSION_CODENAME=/' /etc/os-release ) main" | tee /etc/apt/sources.list.d/jellyfin.list
Donde pone "repo.jellyfin.org" añadid un "https://" delante, que el editor se lo come. Con esto configuramos el repositorio oficial, después simplemente actualizamos la caché de paquetes e instalamos Jellyfin:
# apt-get update && apt-get install jellyfin
La aceleración hardware de vídeo para Jellyfin requiere que este pertenezca al grupo video. Además, nos interesa que pueda manejar (y en su caso borrar) los archivos creados por las demás aplicaciones, así que también lo añadiremos al grupo debian-transmission:
# usermod -a -G video,debian-transmission jellyfin
En este momento ya tenemos el software instalado, lo que nos queda es todo configuración.
Configuración del cliente torrent Transmission
Empezamos toqueteando la configuración de Transmission, para lo cual el servicio tiene que estar parado (si no lo está, el archivo será sobreescrito al cerrar el programa). Recordad que nuestro disco externo está en /mnt/descargas, y ahí es donde se descargarán los torrents. Nos interesa separar los torrents ya completados de los que aún se están descargando, para evitar problemas cuando nuestros manejadores busquen archivos descargados. También cambiaremos el usuario (rpc-username, yo voy a dejar el que viene por defecto, que es transmission), la contraseña (rpc-password, la ponemos directamente en texto claro entre las comillas y Transmission la cifrará en cuanto arranque) y una lista de IPs a las que se permite el acceso a la interfaz web (rpc-whitelist, ponedlas separadas por comas o usad wildcards). Otra cosa que debemos ajustar es el umask, poniéndolo a 2 para que el resto de aplicaciones del grupo tengan acceso completo a los archivos descargados.
El resto de los parámetros de Transmission como el ratio o el límite de sembrado se pueden ajustar a lo que consideréis conveniente:
# systemctl stop transmission-daemon.service
# nano /etc/transmission-daemon/settings.json
Os dejo un archivo de ejemplo que podéis usar como base. He añadido al final del ejemplo las líneas correspondientes a la carpeta vigilada (watch-dir), pero si no usáis esto es mejor borrarlas. ¡¡ Y cambiad la contraseña !!
Recordad que todas las líneas de ese archivo deben acabar en coma, excepto la última antes del corchete de cierre. A continuación tendremos que crear las carpetas que hemos especificado en la configuración, y darles los permisos adecuados:
# mkdir -p /mnt/descargas/torrents/completos && mkdir /mnt/descargas/torrents/incompletos
# chown -R debian-transmission:debian-transmission /mnt/descargas/torrents
Puede ocurrir que nuestro disco externo sea un poco lento al arrancar. Para evitar que Transmission se inicie antes de que el disco se haya montado, deberíamos modificar el archivo de servicio de Transmission. Primero averiguamos la unidad de SystemD que monta el disco con:
# systemctl list-units --type=mount
Esto nos dará una lista de eventos de montaje de discos. Leyéndola es evidente cuál es nuestro externo, en mi caso la unidad se llama mnt-descargas.mount. Lo añadimos después del After y también como Requires:
# nano /lib/systemd/system/transmission-daemon.service
De forma que quede así:
Entonces recargamos los servicios con
# systemctl daemon-reload
Proxy inverso con Nginx
Antes de reiniciar para los pasos finales de la configuración, vamos a configurar también el proxy inverso nginx. La idea es que podamos visitar los diferentes gestores de descargas como si fueran "carpetas" de nuestro servidor, ahorrándonos el recordar sobre que puerto se ejecuta cada uno. Cada location se corresponde con la base_url que configuremos en los respectivos programas. Podéis cambiarlos si queréis, pero aseguráos de que ambas (location de nginx y base_url de Radarr, por ejemplo) sean iguales. Primero borramos la configuración por defecto de nginx, luego creamos nuestra propia configuración en /etc/nginx/sites-available, y después la activamos con un enlace simbólico en /etc/nginx/sites-enabled:
# rm /etc/nginx/sites-enabled/default
# nano /etc/nginx/sites-available/proxy_inverso
# ln -s /etc/nginx/sites-available/proxy_inverso /etc/nginx/sites-enabled/
Este archivo es bastante complejo, así que os dejo un ejemplo con todo incluído:
Explico un poco: en el bloque server debéis modificar el server_name y la IP para poner los de vuestro servidor. Los bloques que no uséis, como Bazarr u Ombi (hablaré sobre este más adelante), podéis borrarlos o desactivarlos añadiendo una almohadilla (#) al principio de cada línea. Finalmente, el bloque Jellyfin tiene su truco. Debido a un fallo en el código de este programa (probablemente heredado de Embi) al activar la base_url el servidor DLNA deja de funcionar correctamente porque los clientes reciben una URL errónea. Para solventar este problema, añadimos las líneas
proxy_redirect default;
proxy_redirect / /jellyfin/;
que nos permiten una funcionalidad similar a la de base_url pero sin romper el servidor DLNA. Mi configuración de ejemplo ya las incluye, así que todo debería funcionar. Si más adelante el equipo de Jellyfin arregla este problema, sólo tenéis que borrar esas líneas y añadir el base_url en la configuración interna de Jellyfin.
Al usar nginx como proxy inverso existe un problema potencial que aparecería si intentamos subir archivos torrent de cierto tamaño a Transmission. La configuración por defecto de nginx sólo permite subidas de muy escaso porte, y cuando este se supera se corta la subida. Para evitarlo, editaremos el archivo de configuración general de nginx
# nano /etc/nginx/nginx.conf
y añadiremos bajo el bloque http la siguiente sentencia con un valor razonable (en este caso 4 megas):
client_max_body_size 4M;
Ya queda poco, podemos reiniciar:
# reboot
Configuración de Jackett
En cuanto el servidor vuelva a arrancar, podremos visitar con un navegador las interfaces web de los diferentes programas para configurarlos. Deberíamos empezar por Jackett, que escucha en el puerto 9117. Si el servidor se llama descargame, abrimos la página :9117 [[descargame.local:9117]] en el navegador (o también se puede usar directamente la IP) y veremos la interfaz de Jackett aún sin trackers configurados. Lo primero que deberíamos hacer es añadir una contraseña de administración (tecleandola en la casilla correspondiente y después pinchando en "Set Password") y la base_url que hemos configurado en nginx (en Jackett se denomina "Base Path Override"). En nuestro ejemplo es "/jackett". En cuanto pulsemos el botón de "Apply server settings" ya podemos dejar de poner el número de puerto e ir a /jackett [[descargame.local/jackett]] sin más.
Ahora configuramos los trackers torrent donde queremos buscar el contenido. Jackett admite tanto trackers públicos como privados o semi-privados (semi-privados son los que requieren registro pero no una invitación explícita, de forma que cualquiera puede registrarse). En ese caso, debemos configurar nuestro nombre de usuario y contraseña de acceso a tales trackers. Dependiendo del contenido que vayamos a buscar, podemos hacer un primer filtrado según los sitios que añadamos. Hay trackers especializados por tipo de contenidos (películas, anime. . . ) o por idiomas. Por ejemplo, si queremos añadir trackers de contenido en castellano exclusivamente, podemos pinchar en "Add indexer" y usar la casilla de búsqueda poniendo "es-", con lo que nos mostrará trackers cuyo idioma sea español. Es aconsejable revisar de vez en cuando la lista de trackers, ya que nuevas versiones de Jackett pueden introducir sitios que antes no estaban disponibles. Jackett se actualizará automáticamente a no ser que marquéis la opción de deshabilitar auto-actualizaciones.
Para los trackers semi o totalmente privados, tendremos que configurar nuestros datos de acceso antes de añadirlos, pinchando en el icono de la herramienta. Este icono nos sirve también para configurar qué categorías tiene disponibles cada tracker. Las categorías son un estándar creado para USENET y podéis leer más sobre ellas aquí. En general podéis dejarlas tal como vienen.
Otra cosa que podéis configurar son las URLs que algunos trackers disponen como alternativa (por ejemplo TPB) o un proxy a usar para salir a la red. Esto puede ser útil si algún tracker resulta estar bloqueado por vuestro operador o tiene un bloqueo judicial (otra vez, TPB y también desde no hace mucho EpubLibre). Os dejo una captura de los trackers que tengo configurados en mi Jackett como referencia:
Si queremos utilizar la función de carpeta vigilada debemos asegurarnos de crearla y darle los permisos adecuados, vía SSH:
# mkdir /mnt/descargas/blackhole
# chown debian-transmission:debian-transmission /mnt/descargas/blackhole
# chmod 775 /mnt/descargas/blackhole
Entonces podremos añadir esta carpeta en Jackett (casilla Manual download blackhole directory), y también en la configuración de Transmission (settings.json). Entonces veremos en cualquier búsqueda manual en Jackett un botón para descargar directamente el torrent a la carpeta vigilada, con lo que el cliente torrent la añadirá automáticamente a las descargas. Os recuerdo que este sistema no funcionará con magnets si usamos Transmission.
Configuración de Sonarr
Sin cerrar la pestaña de Jackett, abrimos otra nueva para conectar a Sonarr en :8989 [[descargame.local:8989]]. Vamos a la pestaña de Settings y en el apartado General cambiamos el URL Base a "/sonarr". Ahora ya podemos acceder a /sonarr [[descargame.local/sonarr]] sin tener que recordar el número de puerto. En la misma pestaña en que estábamos podríamos configurar autenticación para acceder a Sonarr, en caso de que queramos evitar que "alguien" de casa cambie cosas sin nuestro permiso. Pinchando en el botón de "Show Advanced" podemos acceder a más ajustes, entre los cuales deberíamos activar la actualización automática. Cuando estemos conformes, pinchamos en "Save Changes" y cambiamos al apartado de "Download Clients".
Aquí podríamos configurar diversas opciones para enganchar a clientes de USENET o torrent. Estamos utilizando Transmission, así que pinchamos en la opción correspondiente y añadimos los datos necesarios. Basta con escribir un nombre para identificarlo (pongamos "Transmission" por ejemplo), el nombre de usuario y la contraseña de acceso que configuramos antes en settings.json. El resto podemos dejarlo tal cual. Usamos el botón de Test para comprobar que los datos introducidos son correctos y la conexión se produce sin problemas, y guardamos.
A continuación vamos al apartado "Media Management". La mayoría de opciones son autoexplicativas, pero puede que nos interese la opción de CHMOD (en Advanced). La explicación de la opción de renombrado es un poco antiintuitiva, ya que se renombrarán los archivos solo si la marcamos. Lo más importante es la configuración de "Root Folder", que tiene su truco: esta no es la carpeta de las descargas de Transmission, sino la carpeta final a donde Sonarr moverá los episodios y donde los organizará. Dado que usamos diferentes programas para cada tipo de descargas, y cada uno puede tener su "Root Folder", esto nos vendrá bien para organizar los medios en diferentes "bibliotecas" para Jellyfin. Deberíamos crear una carpeta para ello en la consola del servidor, y darle permisos apropiados:
# mkdir /mnt/descargas/series
# chown sonarr:debian-transmission /mnt/descargas/series
# chmod 775 /mnt/descargas/series
Y ahora ya podemos usar el botón de "Add Root Folder", navegar hasta esa carpeta y seleccionarla. Nos movemos a los siguientes apartados: en "Quality" es todo bastante evidente y no hay mucho que explicar, establece límites de tamaño para cada perfil. En "Profiles" deberíamos al menos añadir un perfil en castellano bajo "Language Profiles" para poder buscar contenido en nuestro idioma. No hace falta buscar el título del contenido en nuestro idioma, ya que estos programas integran búsqueda de títulos alternativos (en otros idiomas) y por tanto si les decimos que descargue una serie o película en castellano ellos mismos se encargarán de averiguar cómo se ha titulado aquí. En UI están los ajustes sobre el formato de fecha.
El apartado de "Indexers" es muy importante. Aquí añadiremos los trackers donde Sonarr va a buscar enlaces (torrents en nuestro caso) para descargar el contenido. Las instrucciones para esto las encontramos ya en la página principal de Jackett (en "Adding a Jackett indexer in Sonarr or Radarr"), así que no tiene mucho misterio. En algunos casos puede que queramos editar las categorías de búsqueda. Copiamos los datos en las casillas correspondientes y pulsamos "Test" para probar la conexión. Si todo va bien, guardamos. Recordad que la "API Key" que se nos pide es la que proporciona Jackett, que es diferente en cada instalación.
Repetiremos la operación con todos los trackers que nos interese añadir a Sonarr. En caso de que tengamos configurado en Jackett un surtido limitado de proveedores, o los que tengamos proporcionen varios tipos de medios, nos puede interesar aglutinar las búsquedas como si fuera un sólo "indexer". Para ello Jackett proporciona un indexer especial con la siguiente URL (modificadla para vuestro caso):
/jackett/api/v2.0/indexers/all/results/torznab
Con lo que quedaría así:
Configuración de Radarr y Lidarr
Con Sonarr ya funcionando, pasamos a configurar Radarr y Lidarr. Su configuración es prácticamente idéntica a la de Sonarr, así que sólo voy a repasar los detalles diferentes. Creamos carpetas raíz para ellos con los permisos ajustados:
# mkdir /mnt/descargas/peliculas
# chown radarr:debian-transmission /mnt/descargas/peliculas
# chmod 775 /mnt/descargas/peliculas
# mkdir /mnt/descargas/musica
# chown lidarr:debian-transmission /mnt/descargas/musica
# chmod 775 /mnt/descargas/musica
Radarr escucha en el puerto 7878, así que nos conectamos inicialmente a :7878 [[descargame.local:7878]] para cambiar la Base URL a "/radarr". Así ya podemos conectar directamente a /radarr [[descargame.local/radarr]].
Con Lidarr tres cuartos de lo mismo, pero sobre el puerto 8686. De :8686 [[descargame.local:8686]] pasaremos tras cambiar la Base URL (poniendo "/lidarr") a /lidarr [[descargame.local/lidarr]].
En Radarr podemos ajustar el idioma de la interfaz así como de la información de las películas bajo el apartado Settings/UI. Así veremos los títulos y sinopsis de las películas en castellano. Aún así, si buscamos el título original de una película en inglés, por ejemplo, seguirá apareciendo en los resultados igualmente. Tendremos que refrescar la página en el navegador para ver los cambios. El idioma del contenido a descargar tendremos que seleccionarlo modificando los perfiles, ya que no hay un "perfil de idioma" específico.
Desgraciadamente no podremos librarnos de un "warning" en Radarr que nos apremia a instalar .NET Core. No debería suponer ningún problema de funcionamiento, tan sólo es una molestia. Si a alguien no le importa usar ese software de Microsoft en su distribución Linux, puede hacer caso del aviso.
En Lidarr, además de los perfiles de calidad tenemos los llamados "Metadata Profiles". Esto se refiere al tipo de discos que queremos incluir en un perfil. Por ejemplo, quizá nos interesen solamente los discos de estudio y directos, dejando fuera los recopilatorios.
Una característica interesante de Radarr es que bajo el apartado Películas/Descubrir podemos ver recomendaciones que nos hace en base al tipo de películas que hayamos añadido previamente. Estas irán cambiando según añadimos más.
Backups
En los tres programas de descargas existe una función de backup que se activa periódicamente y antes de cada actualización. Por seguridad, por si tenemos que reinstalar este servidor alguna vez, podemos hacer que tales backups se guarden en el disco externo. Primero creamos las carpetas y les damos los permisos adecuados:
# mkdir -p /mnt/descargas/backups/
# chmod 775 /mnt/descargas/backups -R
# chown sonarr:debian-transmission /mnt/descargas/backups/sonarr
# chown radarr:debian-transmission /mnt/descargas/backups/radarr
# chown lidarr:debian-transmission /mnt/descargas/backups/lidarr
Ahora sólo tenemos que cambiar en la configuración de los tres programas la carpeta donde se guardan. Este ajuste se encuentra en Settings/General (con la opción de mostrar ajustes avanzados activada).
Configuración de Bazarr
Bazarr puede requerir dependencias extra. En principio hemos instalado algunas cosas al inicio del tutorial, y el propio Bazarr aporta otras de ellas, pero si no os funciona bien, podemos probar a instalarlas manualmente. No nos interesa instalarlas en el sistema para que no haya conflictos con la paquetería, así que las instalamos localmente sólo para su usuario:
# sudo -u bazarr python3 -m pip install -r /opt/bazarr/requirements.txt
Vamos ahora a configurar el descargador de subtítulos, que escucha en el puerto 6767. Abrimos en nuestro navegador la página :6767 [[descargame.local:6767]] y cambiamos la URL Base a "/bazarr", con lo que ya podremos conectar directamente a /bazarr [[descargame.local/bazarr]]. Tenemos que conectar Bazarr con Sonarr y Radarr, así que en los apartados correspondientes de Settings activamos la conexión y añadimos las URL base de Sonarr y Radarr y sus respectivas claves API (se encuentran en Settings/General de cada programa). También añadimos sus carpetas raíz, ya que los subtítulos se guardarán al lado de cada medio. Veréis que tiene dos casillas, "Path para Sonarr" y "Path para Bazarr", por ejemplo. Esto se debe a que se puede instalar los programas en máquinas distintas y usar carpetas compartidas por red, pero como en nuestro caso todo está en la misma máquina ponemos ambas iguales.
En Subtitles podemos configurar un proveedor de servicio Anti-Captcha si usamos alguno (son de pago) y también los parámetros de búsqueda, "arreglos" para subtítulos o si queremos subtítulos forzados o para gente con problemas de audición.
En Settings/Providers seleccionamos qué proveedores de subtítulos queremos utilizar. Hay varios enfocados en exclusiva a subtítulos en español (de ambos lados del charco), pero otro que también funciona bien es OpenSubtitles (que requiere una cuenta, pero es fácil registrarse). En Settings/Languages seleccionamos que idiomas de subtítulos queremos. Se pueden añadir varios según váis pinchando en ellos en la lista.
Para los dispositivos menos potentes, como nuestra Raspberry, se recomienda usar estos ajustes de la wiki de Bazarr para que sea un poco menos pesado. Como resumen, los listaré aquí:
- Activar "Adaptative Searching"
- Desactivar "use Embedded Subtitles"
- Desactivar "Search Enabled Providers Simultaneously"
Y en el apartado de Scheduler
- Poner a "Manually" ambas opciones de "Disk Indexing"
- Seleccionar un intervalo mayor en "Search and Upgrade Subtitles"
Podéis pensar que como Jellyfin puede conectar a OpenSubtitles, Bazarr es redundante. Sin embargo conviene saber que Jellyfin sólo conoce el nombre final de los archivos tras el renombrado de Sonarr y Radarr (si es que lo usamos) y por tanto a menudo utiliza subtítulos inadecuados. Bazarr en cambio busca según los nombres originales de los archivos antes del renombrado y por tanto tiene mayor fiabilidad. En todo caso Jellyfin permite cierta holgura para sincronizar manualmente subtítulos que no sean del todo adecuados.
Funcionamiento básico
La mecánica básica de estos programas es como sigue: añadimos algún contenido que nos interesa usando el buscador en "Add New". Al pinchar en la ficha podemos ajustar algunas opciones como la calidad y el perfil de idioma:
Si marcamos la opción de buscar inmediatamente, el sistema comenzará a buscar el contenido que falta en cuanto pinchemos en "Añadir" y enviarlo al cliente torrent. Si no, esperará al siguiente refresco programado (en Tasks/Tareas podemos ver cuando):
Si, por la razón que fuera, algún contenido diera error en la búsqueda (puede pasar si no está en ningún tracker de los activados o bien la calidad disponible no fuera la que hemos pedido), podemos ir a dicha serie y buscarlo manualmente utilizando el botón del monigote. También podemos buscar temporadas enteras:
Una vez descargado, lo moverá a la carpeta raíz, donde estará disponible para Jellyfin. Si la importación fallara (cosa que suele pasar con algunos trackers españoles, ya que no siempre siguen la convención de nombrado internacional o comparten archivos comprimidos) podemos importar manualmente desde el apartado de "Activity" (pinchando el monigote) o bien desde "Wanted/Manual Import" (el botón de arriba). En Radarr no tenemos tal apartado y tenemos que usar el botón de "Importación Manual" de la página principal. El otro botón de "Import" es para incluir en la biblioteca archivos que ya hubiéramos descargado antes de usar estos programas o que ya tengamos en otra parte.
Configuración de Jellyfin
Finalmente pasamos al servidor de medios Jellyfin. Con el apaño que hemos hecho en la configuración de nginx ya no es necesario conectar directamente al puerto, pero por si acaso os recuerdo que sería :8096 [[descargame.local:8096]]. En nuestro caso conectamos ya a /jellyfin [[descargame.local/jellyfin]] y seguimos la configuración guiada que se nos presenta. Como ya hemos separado las carpetas raíz de cada uno de los programas de gestión de descargas, en las bibliotecas de medios podremos añadir cada una de ellas para tener separadas las películas, las series y la música, ajustando el tipo de contenido que de cada una.
Es consejable activar la opción de "Guardar imágenes y etiquetas en las carpetas de medios" para facilitar la importación en caso de que alguna vez queramos reinstalar el servidor. También podemos ajustar idioma y país para que nos muestre los metadatos correspondientes a nuestro idioma y región, así como los proveedores de esos metadatos. La extracción de imágenes de los capítulos (para mostrar miniaturas) probablemente no nos interese ya que es bastante pesada:
En el panel de control tenemos varios ajustes disponibles. En la parte de usuarios podemos restringir las bibliotecas de medios a las que puede acceder cada uno de ellos. Cada usuario tiene unos parámetros de "Reproducción de contenido" diferentes, en los cuales deberíamos desactivar las acciones de conversión (es decir, transcodificación) si no vamos a utilizarlas, ya que son bastante costosas. Así, dejaríamos activada solamente la opción de "Permitir la reproducción de medios". Tenemos que hacer esto para cada usuario que creemos.
En "Reproducción" podemos activar la aceleración hardware. Para Raspberry (3 y 4 solamente) escogeríamos la opción "OpenMAX OMX". Advierto que esto es experimental y podría no dar buen rendimiento. En DLNA podemos configurar el servidor correspondiente. Este utiliza los privilegios de acceso de un usuario concreto, por lo que deberíamos crear uno específico con acceso limitado a las bibliotecas si queremos que no todas ellas estén servidas por este sistema.
En "Extensiones" tenemos un catálogo de plugins que podemos instalar, los cuales proporcionan acceso a servicios (IPTV), proveedores de metadatos adicionales (por ejemplo, carteles de películas o identificación de animes). El plugin "TMDb Box Sets" es especialmente interesante ya que agrupa automáticamente las películas de una misma saga en colecciones.
En "Redes" podemos configurar una URL Base, pero no deberíamos utilizarla ya que el servicio DLNA dejaría de funcionar correctamente. Ya nos hemos encargado de eso en nginx. Si en un futuro el equipo de Jellyfin arregla este problema, podríamos poner una URL Base y borrar las dos líneas del apaño en nginx.conf que he mencionado antes.
Por último, en "Claves API" deberíamos crear una clave para cada una de nuestras aplicaciones: Sonarr, Radarr y Lidarr. En cada una de estas nos vamos al apartado Settings/Connect y creamos una nueva conexión de tipo Emby (Jellyfin es un fork de Emby y es compatible) con estos parámetros:
Notad que la clave API debe ser específica de cada aplicación, el host es localhost y la opción de "Update library on import and rename" está activada. Esto sirve para que las aplicaciones notifiquen al servidor Jellyfin cada vez que añaden contenido nuevo, ahorrándonos escanear las bibliotecas cada poco tiempo.
El aspecto final de la página de una película en Jellyfin:
Funcionalidades extra
Es posible añadir a Transmission un script para que se descompriman los archivos .rar al acabar la descarga, aquí tenéis las instrucciones. Ciertos grupos españoles suelen subir torrents comprimidos (a veces con contraseña, o incluso metiendo unos archivos comprimidos dentro de otros), y esto podría ser útil para evitar intervención manual en algunos casos. Deluge, por otro lado, tiene esta capacidad integrada en un plugin.
Otra opción para lidiar con las descargas que incluyen archivos comprimidos es Unpackerr, que es un extractor automático externo ya pensado para trabajar con Sonarr/Radarr/Lidarr. Hay paquetes .deb listos para instalar en cualquier arquitectura, por lo que su configuración se reduce a editar /etc/unpackerr/unpackerr.conf (que viene bien comentado y explicado) y ajustar las opciones a nuestro gusto. También es necesario ajustar el archivo de servicio en /lib/systemd/system/unpackerr.service para que funcione con los permisos adecuados, de esta forma:
(Por algún motivo que se me escapa, Pastebin marca este archivo de texto como "potencialmente ofensivo", pero podéis estar tranquilos que no incluye nada raro.)
Ombi
Si somos varios en casa y queremos que todos puedan "pedir" películas o lo que sea sin peligro de hurgar en la configuración de nuestro servidor, podemos instalar Ombi. Este programa es algo así como un frontend para todos nuestros manejadores (tanto Sonarr como Radarr y Lidarr), de forma que los usuarios ya no necesitan acceder a cada uno por separado. Además incorpora un sistema de votación, lo que nos permite por ejemplo controlar a qué contenidos acceden los peques de la casa. Podemos instalarlo artesanalmente, como hemos hecho con Radarr y Sonarr, o usar un repositorio semi-oficial. En el caso de Ombi los permisos no son un problema, ya que trabaja directamente con las APIs de los manejadores de descargas y no crea ni mueve archivos, así que podemos utilizar el repositorio sin complicarnos mucho. Lo añadimos a nuestras listas (no os riais del nombre, ya he dicho que no es obra del equipo oficial):
# echo "deb [arch=armhf] http://repo.ombi.turd.me/stable/ jessie main" | tee "/etc/apt/sources.list.d/ombi.list"
Esto es para nuestro Raspberry OS de 32bit, que yo sepa el repositorio sólo soporta armhf y amd64. Para otras arquitecturas habría que instalar manualmente.
Comentarios
Comentad si encontráis algún error o problema imprevisto, así como dudas que podáis tener. Lo de "pequeña" es un tanto irónico
#1 Como punto de mejora, estaría genial hacer algo de scripting para automatizar algunas de las acciones más tediosas.
#2 Estuve pensando si hacer un script sencillo para crear los usuarios, descargar las apps, ajustar los permisos, etc. pero me pareció más interesante que todo el mundo pudiera entender como se integra la cosa y no dependiera de un apaño ya hecho. Aunque es cierto que muchas cosas de la instalación se pueden automatizar.
#3 ya que veo que te gusta trastear, échale un vistazo a Ansible. Puedes automatizar todo esto con un "playbook" y desplegar la misma configuración donde quieras. Solo necesitas que la máquina tenga Python y SSH
Es muy fácil de usar, y para despliegue de máquinas y configuraciones complejas es muy potente.
Te paso el enlace a la documentación
https://docs.ansible.com/ansible/latest/index.html
#3 Es mejor así ,que la gente aprenda a leer código
El que quiera hacer la mitad del tutorial mediante menús y colorines,puede utilizar la distro "DietPi" (https://dietpi.com) y ejecutar el asistente de configuración,solo tendría que marcar las aplicaciones deseadas y configurarlas luego
#21
#23 es la que estoy usando ahora en una RPi2 y funciona muy fluida.
La mejor alternativa para los modelos antiguos, consume muy pocos recursos, y puedes instalarte tú las cosas o tirar del script y lo tienes automáticamente configurado
#1 llevo un año con esta configuración y va de maravilla, eso sí tengo un server con unraid y una cpu coffee lake para poder usar la gpu integrada de Intel para la transcodificacion por hardware.
A parte de todo lo que tienes explicado, tengo también un canal de telegram donde se notifica a los usuarios de las últimas series y pelis añadidas usando tautulli, ya que en mi caso jellyfin sigue sin convencerme y uso plex. Esto se podría llevar al extremos y picando algo de python se podría hacer que la gente pida pelis en el canal haciendo que el bot use las apis de radarr y sonarr, pero ya me parece demasie.
Un saludo y gracias por el manual.
#1 a y se me olvidaba, como mejora, yo todo esto lo haría con docker compose para facilitar las actualizaciones y el mantenimiento.
Por último,en vez de configurar el reverse proxy a pelo, te recomiendo ngixproxymanager https://nginxproxymanager.com/
#15 Macho, como configuras con el proxy manager, por que yo no tengo huevos.
#54 ¿qué es lo que estás configurando, jellyfin? En ese caso:
Debes crear un proxy host:
Pestaña details
Domain name: el nombre de dominio que le vayas a poner, por ejemplo, "jellyfin.manolo.ducksdns.org"
Scheme: http
Forward hostname/ip: la IP de jellyfin en tu red local
Port: el puerto en el que hayas configurado jellyfin en tu red local
Activados los tres checks de cache assets (para que cargue más rápido), block common exploits (evitar ataques tipo ddns etc) y Websocket suppoort.
Pestaña ssl
SSL certificate: "request a new SSL certificate" para que te saque uno nuevo de let's encrypt.
Force SSL: si
HTTP/2 support: si
HSTS enables: si
HSTS subdomais: yo lo tengo en no
#1 Al hacerlo línea a línea como aquel que dice has conseguido que sea además de útil didáctico. Te felicito y te agradezco el curro.
#1 A bote pronto no he visto nada de VPNs. Es esencial enrutar el tráfico torrent a través de una, sobre todo en los tiempos que corren.
Por lo demás está super currado. Enhorabuena.
#1 en primer lugar, yo uso una arquitectura amd64 y los paquetes son arm (lógico, piensas en una raspi), sería conveniente decirlo, en segundo, en la línea para añadir jellyfin falta el https:// supongo que el editor de mnm te lo ha quitado.
#47 Hecho, he añadido la advertencia sobre la arquitectura (pensaba que era obvio, la verdad), pero lo del repo de Jellyfin se le atraganta al editor. En todo caso pongo una nota para que se entienda, gracias.
#48 Tiene pinta de que no está resolviendo bien el nombre de máquina. He comprobado que en algunas distros Linux el avahi-daemon funciona nada más instalarlo, pero el cortafuegos de serie lo tapa y no recibe nombres hasta que no abres el puerto correspondiente en el cortafuegos (5353/udp). Si no estás en Linux, la resolución de nombres de esta manera sólo funciona en la versión 10 de Windows, puedes mirar si está activado (debería estarlo de serie). Se llama mDNS o algo así.
#51 Bueno, más o menos estoy llegando al final.
De momento me estoy saltando lidarr, bazaar y monit.
Tengo algún tipo de error con los permisos de las carpetas, ya que cuando intento iniciar una descarga, transmissión dice que no tiene permisos de escritura (seguramente es cosa mía, que el transmissión lo tenía de antes)
No tengo muy claro el proceso para descargar, ya que tanto las series como las pelis se me quedan en monitored, pero no pasan a transmissión (sólo una pasó al transmissión y me pasó lo de los permisos)
De nuevo muchas gracias, y seguiré toqueteando e informando
#52 Tardan un rato en buscarse y ponerse a bajar. Si los perfiles de calidad son demasiado estrictos (ya he comentado que los grupos españoles a veces son un poco desastre) igual tienes que darles un poco más de cuerda para que encuentre cosas. Así de primeras deberías hacer una búsqueda manual para comprobar que encuentra cosas. Si no lo hace, ajustar perfiles y/o añadir más indexers.
#c-53" class="content-link" style="color: rgb(14, 170, 116)" data-toggle="popover" data-popover-type="comment" data-popover-url="/tooltip/comment/3399736/order/53">#53
He vuelto a empezar la instalación, pero ahora en la rasperry.
He instalado dietpi, ya que ya la había usado en alguna otra ocasión, y facilita mucho la instalación de las cosas, a parte de ser bastante ligerita (mi raspberry es la 3 de 1 Gb).
Solucioné el problema de transmission (me había comido una s en el nombre en alguna ruta), y en la raspberry si que me funciona el proxy inverso. Pudiera ser por la errata que explico más abajo, o porque en el nombre en nginx añadí .local, que en el portátil no tenía puesto.
De momento tengo la instalación hecha exclusivamente en la tarjeta sd de la raspberry, pero mi idea es modificar las rutas de descargas para pasarlas a una nas.
Seguiré informando
Fe de erratas:
En la configuración del proxy inverso, en una linea tienes sites-available y en la siguente sites_available. Son estas dos líneas de tu tutorial:
# nano /etc/nginx/sites-available/proxy_inverso
# ln -s /etc/nginx/sites_available/proxy_inverso /etc/nginx/sites-enabled/
#56 Corregido, gracias por avisar.
#1 uffffff, llevo desde las 8 de la mañana
De momento va más o menos bien la cosa, me queda a partir de la configuración de radarr y lidarr.
He tenido algún problemilla con los repos (estoy usando mint 20), pero va cogiendo forma.
Lo único que no me está funcionando es el proxy inverso.
Mi pc se llama portatil-mint, y en la configuración de nginx he cambiado descargame.local por portatil-mint y tu ip por la mia.
Cuando intento acceder a jacket o sonarr (de momento no he probado en más), me funciona poniendo el puerto, pero no portatil-mint/jacket.
En cualquier caso, luego seguiré avanzando la instalación, y ya te contaré.
Y sobre todo, muchísimas gracias por el curre que te has pegado
En nuestro siguiente tutorial, programaremos un pequeño kernel que incluya todo lo que un sistema operativo moderno.
¿Que tal irá en un Netbook antiguo de 32 bits, con 2 GB de RAM?
#26 suficiente
#39 si te consumen mucha memoria siempre puedes usar pymedusa para series y couch potato para pelis...
Y si se convierte todo esto a roles de Ansible ya sería la leche.
A ver si me pongo porque tiene muy buena para pinta.
Ósea, no es que me haya cansado de leer, es que me he cansado de hacer scroll con el dedo
En serio, gracias mil por el aporte pero seguiré pagando de momento Netflix aunque con tanto servicio no tardaré en volver a estos cauces...
#0 me encanta cacharrear, montar aparatos etc etc .... tengo varios pcs muertos de risa, una rp etc, pero madre mía, veo que es un jaleo tremendo el hacerlo. Te invito a comer, a cerveza etc, y vienes a casa y me lo haces
Yo tengo esto pero prefiero pymedusa y couch potato. También tengo nextcloud y un servicio de wireguard para conectarme a casa y añadir o bajarme cosas cuando no estoy. Y va enchufado a la tele con kodi y además añadí un sintonizador TDT así puedes ver la tele o escuchar la radio desde cualquier dispositivo de casa mientras otro ve una peli bajada del torrente
#0 Yo tengo mi sistema automatizado basado en flexget+deluge+kodi y la descarga de subtitulos con subdownloader (lo digo de memória).
El flexget lo tengo sincronizado con el servicio web Trakt.tv de forma que añadiendo una serie a una lista personalizada ya se descarga.
Sencillito, sencillito, como todo en Linux
Vaya currazo, esta joya me la guardo
Muy bueno, y currado. Solo me pregunto si lo has hecho tan extenso a propósito para que no podamos bajar hasta los comentarios en el móvil...
Mierda ahora quiero esto
Currada de artículo, mis diesels
#4 Vin aprueba tu comentario
Pequeña guía...
Linux el sueño de un friki y la pesadilla de cualquier otro.
Uno que cree que tiene un sistema sofisticado para gestionar la "multimedia" y de repente la realidad te golpea duramente Muy interesante. Me lo guardo en favoritos por si procede ir cambiando alguna cosa de la gestion que hago ahora mismo de mis ficheros y descargas. ¡Gracias por el aporte!
Creo que esto me podría interesar, pero, después de leerme tanto el artículo como los comentarios, necesito que alguien me responda a esto: ¿Para qué sirve? Pregunta seria
#28 Crear tu propio Netflix para ti
#32 buen resumen. Entiendo que estilo Sparrow. Gracias.
#28 Basicamente para montarte tu propio sitio de descargas torrents/streaming, usando trackers de terceros, y con automatización de información sobre contenidos.
Muchas gracias por la guía, quería hacer un proyectillo así con una raspberry pi que tengo muerta de risa.
¿Se podría acceder mediante chromecast/AndroidTV? Mencionas algo de DLNA, así que imagino que si.
#5 El servidor que utilizo aquí es Jellyfin, que tiene clientes nativos para unos cuantos sistemas:
https://jellyfin.org/clients/
El DLNA se utilizaría para televisores no soportados directamente, es decir, que no tienen una app nativa.
#6 Muchas gracias de nuevo! Ya tengo tarea para mañana
#6 Va mejor por Jellyfin que por DLNA? El DLNA es más estándar
#30 Jellyfin se encarga del DLNA también, es una opción dentro del programa. La ventaja de usar la interfaz web es que la funcionalidad es muy estilo "Netflix", recuerda que contenidos has visto y te recomienda otros similares. Permite usuarios diferentes, de forma que cada uno tenga su historial propio y hasta limitaciones por contenido. El DLNA funciona, pero es más tosco y no tiene tantas funciones.
#5 Yo tengo algo similar corriendo Jellyfin pero tengo un Fire Stick TV y lo que hice fue instalar Kodi en el Stick TV y usar un plugin para conectar con Jellyfin. Uso Kodi porque era una interface a la que estaba acostumbrado pero problablemente los clientes de Jellyfin vayan incluso mejor.
Mis dies
Yo uso un PC, porque de todas formas va a estar online para otros usos, pero se puede hacer perfectamente con un simple router.
Si lo tienes en cuanta al comprar el router, ya ningún problema.
Me cansa solo leerlo.
#17 No he entendido nada
Muy currado e interesante!!! Muchas gracias!!! Ahora solo me falta un buen rato!!!
yo sigo usando emby, tiene cosas de pago pero de lo que uso nunca he necesitado pagar incluso con transcoding
Ostia genial, yo lo tengo montado con Docker más que nada por comodidad pero entiendo tus razones para no usarlo, a veces también soy muy reacio a docker pero me acomodo rápido.
Y gracias por descubrirme bazarr y ombi. Ya están corriendo.
Para otro artículo como hacer que todo salga automáticamente por una VPN.
#9 Eso es fácil. La mayoría de proveedores VPN soportan OpenVPN. Instalas el programa openvpn, bajas la config que te da tu proveedor y la copias en su sitio (creo que era en /etc/openvpn). La activas y tira millas.
#20 no si yo lo tengo hecho ya, con dockers por flojera. Decía que para nota que si currase lampartende VPN para que la gente no esté tan expuesta
Guía para hacer lo mismo en windows:
1) Instalar eMule, qBittorrent y jDownloader
2) Darle caña hasta que el cable de red eche humo.
#34 + Plex server