Tu Netflix casero: Plex + Sonarr + Radarr sobre NAS

Rubén G.
15 min readAug 20, 2017

--

¿Tu suscripción de Netflix no cubre todo el contenido que te gustaría consumir? La solución es crearte tu propio servidor de contenidos, tradicionalmente el que más y el que menos dejaba su ordenador con el eMule para intentar descargar alguna película que no fuese fake y se la reproducía en su reproductor de turno si no tenía problema de codecs.

Hoy en día, hay soluciones mucho más eficientes que esto, para cubrir nuestro propio contenido así como contenido de terceros que no se cubren dentro de nuestros servicios de suscripción -no me responsabilizo de las violaciones de copyright según las legislaciones locales, ni temas de ofuscación de contenido para evitar avisos de operador-. La opción más extendida es tener un pequeño servidor central en nuestro domicilio con gran capacidad, de forma que suplimos las pequeñas capacidades de los dispositivos de hoy en día con SSD, estos pequeños servidores son NAS, una especie de discos duros en red vitaminados, ya que no se limitan a mostrarte unidades de red a las que conectarte, si no que contienen auténticos sistemas operativos con gestor de correo, suite de ofimática, gestión integra de backups, servidor web, centro de descargas y otras aplicaciones instalables.

Entre esas aplicaciones, nos vamos a centrar en principalmente dos: un organizador de contenido (PLEX), que se encargará de mostrarnos nuestro contenido de una manera agradable y fácil de usar, además que lo enriquecerá con subtítulos, posters, etc y se encargará de mostrarnos el contenido listo para consumir ya sea en una Xbox, AndroidTV, iPad, ordenador, lo que sea, con los códecs y tamaño adecuados a esos dispositivos (para que este proceso pueda ser realizado por el servidor, este ha de soportar transcoding de video, y es importante que si Plex tiene que incluír subtítulos este ha de realizar transcoding sí o sí). Por otra parte, tendremos las aplicaciones monitoras: se encargan de rastrear las redes Torrent y Usenet, sincronizadas con los calendarios de emisión de esos contenidos, de forma que en cuando se publiquen en esas redes, por medio del escaneo de indexers (realizan búsquedas en motores de búsqueda como KickAssTorrents, EZTV) o suscripción a listas de RSS, comienza a descargarlas y se encarga de moverlas después a las carpetas definitivas. Resumiendo, le dices el contenido que quieres descargar y ellas se encargan de todo.

Para ello, vamos a usar lo siguiente

  • Un NAS o ordenador con Docker instalado. Todas estas herramientas se podrían instalar directamente desde el centro de paquetes, descargándolas directamente en un PC, etc. Pero centraré el tutorial en tener todo centralizado en un NAS de forma que esté aislado.
  • Download Station. El servidor de descargas integrado de Synology.
  • Plex Media Server. Lo instalaremos directamente desde nuestro centro de paquetes de Synology. Es lo único que no tengo dockerizado.
  • Sub.Zero Bundle. Es un canal de Plex que se encargará de buscarnos unos buenos subtítulos. Plex tiene un plugin propio de OpenSubtitles, pero esto es más configurable y con más fuentes.
  • Docker. El creador de contenedores que mantendrá nuestros programas aislados de nuestros archivos.
  • Sonarr. Destinado a series. El desarrollo original del que parten los siguientes.
  • Radarr. Destinado a películas.
  • Lidarr. EN DESARROLLO. Destinado a música
  • Pulsarr. Una extensión para Chrome/Opera para obtener películas para Radarr desde la página IMDB.
  • Jackett. Comunica los programas anteriores con los portales de descarga.

Configuración

Synology

El sistema que tengo configurado se puede aplicar a cualquier otro NAS o PC que soporte Docker, no hace falta tener un NAS propiamente dicho, ya que está disponible incluso para Mac o Windows (get docker). El NAS nos permite la comodidad de tener un equipo de bajo consumo y con discos duros preparados para trabajar 24/7, así como un entorno de trabajo preparado para funcionar como un servidor de contenidos.

También se pueden instalar las aplicaciones de forma tradicional, pero Docker, es un contenedor que genera pequeñas máquinas virtuales para cada aplicación, de forma que se mantienen ajenas entre sí y de nuestros archivos que pueden ser importantes, de manera que podemos gestionar de manera pormenorizada a qué y a qué no pueden acceder y nos ahorramos muchos problemas de permisos e instalación de paquetes, que ya me han dado sustos en el pasado.

Resumiendo, mi equipo se compone de:

Servidor Proliant Microserver G8 (Celeron G1610T, 4GB de RAM)

Western Digital RED 2.0 TB.

+

Seagate Iron Wolf 8TB Estos son los disco duros para Películas y Series, el único disco duro que tengo especial para NAS, los otros provienen de un antiguo sobremesa.

Seagate Barracuda 1.5 TB. Destinado a mis archivos personales como fotografías.

Western Digital Blue 500GB. Destinado a la carpeta de descargas y copias de seguridad de configuración.

SSD Samsung 64GB. Recuperado de un antiguo portátil, en él tengo instalado docker, las imágenes de este y el servidor web.

Xpenology. La manera de instalar DSM, el sistema operativo de Synology en servidores que no son de la marca.

Conexión Bond con dos cables Ethernet Cat.7 de 0.5m.

< Si prefieres una solución más Plug and Play, un Synology DS218+ es una buena opción >

*Los links de producto son links de afiliado de Amazon*.

Entonces, teniendo el sistema operativo DSM, el proceso para instalar el software sería el siguiente:

  1. Instalamos Docker, mediante el centro de paquetes. En caso de que nos os aparezca, revisad la configuración del centro, para que aparezcan los paquetes de terceros.
  2. Instalamos Plex, mediante el centro de paquetes.

Docker

Procedemos a configurar los contenedores de Docker. Para ello hemos de descargarnos las imágenes de los programas que deseamos, en este caso: Jackett, Sonarr y Radarr (no cubro Lidarr en este tutorial ya que se encuentra en proceso temprano de desarrollo). Descargar las imágenes es tan fácil como entrar a “Registro” y buscar la imagen que queramos, realizando un doble click, con lo que comenzará a descargarse en la página “Imagen”

Recomiendo descargar las versiones linuxserver, para los programas que estén disponibles. linuxserver/jackett

Mientras se descargan, vamos a obtener dos parámetros necesarios para el buen funcionamiento de los contenedores: el PGID y el PUID. Para ello hemos de conectar por SSH a nuestro NAS con nuestros datos de usuario de Synology. Este será al usuario al que después le tendremos que asignar los correspondientes permisos de lectura y escritura a las carpetas afectadas por estos contenedores. Una vez conectados por SSH, lanzamos el comando id y nos dará los valores correspondientes, si tenéis alguna duda con este procedimiento, esta guía de drfrankestein, lo explica realmente bien (en inglés)

Una vez descargadas las tres imágenes, procederemos a iniciarlas desde la pestaña de “Imagen”, desde donde se abrirá un gestor de configuración. Primero instalaremos Jackett, ya que haremos que Sonarr y Radarr dependan de ella.

En el gestor de configuración, le indicaremos un nombre y nos iremos a opciones avanzadas, donde escogeremos reinicio automático y que cree un acceso directo a la dirección con el puerto que especificaremos más tarde. En la página “Volumen” crearemos uns carpeta local dentro del directorio docker tal que /docker/jackett que será igual /config dentro del contenedor. En la página “Configuración de Puerto”, igualaremos los puertos, ya que si no, cada vez que se reinicie el contenedor, cambiará su dirección y no seremos capaz de encontrarlo y la configuración de los elementos dependientes será inútil.

Bien, ahora que tenemos configurado el container de Docker, procederemos con Sonarr, que tiene algunos parámetros más que definir, vamos a verlos previamente:

Tenemos que definir tres carpetas:

  1. La de configuración: /config (igual que en el paso anterior). Esto se hace para poder tener acceso a la configuración y backups de cada contenedor. Es una buena práctica con cualquier contenedor de Docker.
  2. La carpeta de descargas donde buscará los archivos relacionados, que montaremos desde la carpeta compartida /downloads, que hemos de haber creado anteriormente en nuestro Synology (respetando las mayúsculas y minúsculas), que enlazaremos dentro del contenedor como /volume1/downloads Yo la enlazo como /volume1, porque mi carpeta local de /downloads se encuentra dentro del Volumen 1, esto puede depender de donde la tengáis configurado vosotros. Se podría enlazar directamente /downloads con /downloads, pero cuando Download Station intente comunicarse con Sonarr va a decirle que las descargas se encuentran en /volumeX/downloads, por lo que si no lo montamos así, Sonarr no será capaz de saber cuando ha terminado la descarga.
  3. La carpeta donde estarán las series, que por defecto, para Sonarr es /tv Por lo tanto, hemos de crear otra carpeta compartida donde vayan a ir las series ya organizadas, en mi caso: /Series

En este contenedor, tendremos que definir dentro de la página “Medio ambiente” los parámetros PGID y PUID hallados anteriormente, así como en la página “Links” que la enlazaremos a Jackett.

Con esto, terminaríamos de configurar el contenedor de Sonarr y podríamos comenzar a configurar el de Radarr, o Lidarr cuando esté disponible. La configuración de Radarr es esencialmente la misma, usando esta vez el puerto 8989 y en vez de carpeta /tv, tendremos una carpeta /movies apuntando a una carpeta compartida que habremos creado en /Peliculas o donde queramos que estén nuestras peliculas. Una vez terminado de configurar los contenedores, hemos de revisar los permisos de las carpetas compartidas, es decir: /downloads , /Series y /Peliculas . En el Panel de Control de Synology, debemos revisar que estas tres carpetas tienen configurado el permiso de Lectura/Escritura para el Grupo de Usuarios “users”

Jackett

Jackett es muy sencillo y bien explicado en su única página. En la parte superior derecha añadimos los distintos trackers, donde podemos tener trackers públicos y privados, donde nos generará un listado con todos ellos. Ojo a la hora de introducir KickAssTorrents y ThePirateBay por sus constantes cambios de dirección.

Una vez hemos introducido los trackers, debajo de ellos nos muestra como introducirlos en Sonarr y Radarr. Una clave API fija y cada tracker con su Torznab feed, no tiene pérdida.

Sonarr / Radarr

La ventaja de que Radarr y Lidarr sean desarrollos derivados de Sonarr es que la configuración es exactamente la misma, con la misma interfaz y prácticamente las mismas opciones. Por ello, explicaré la configuración a partir de Sonarr y haré una puntualización con un apartado que es exclusivo de Radarr. El primer paso de todos a realizar, es actualizar a la última versión disponible. Para ello nos vamos a la pestaña de System, Updates y hacemos click en el pequeño botón al lado del changelog, para obtener la última actualización disponible.

Entramos a Setting y empezamos la configuración de izquierda a derecha. El primer punto es el apartado que se dedica a la gestión de los archivos, creando carpetas para cada serie y temporada y con el patrón que nosotros definamos. Yo lo tengo configurado de manera que me muestra /Series/Temporada/00x00 Título Capítulo con Calidad y Release Group. Aquí realizamos un formateo básico pero es importante conservar la Calidad y Release Group, ya que ayudará enormemente a obtener unos buenos subtítulos. Si queremos cambiar la sintaxis, en la Wiki de Sonarr está bien explicado cuales son los comandos.

También a la hora de importar, le especifico que mantenga los archivos .srt, por si se ha descargado con algún subtítulo ya incluído, aunque normalmente vayamos a realizar este proceso desde Plex.

Personalmente, no he variado ni la ficha Profiles ni Quality, que basicamente definen la calidad de los archivos que queremos descargar, a mí me funciona bien como viene de serie, pero podemos configurarlo para que nos excluya determinadas calidades o releases groups.

En Indexers, debemos incluír todos los indexers que hemos incluído en Jackett, con las instrucciones tan precisas que incluye, no hace falta explicar mucho más, la API fija dada por Jackett y copiar el Torznab de cada sitio.

Las opciones de Minimum Age y Retention dependerían de lo que nos permitan los trackers privados si los estamos usando.

En la pestaña Download Client, tendremos que configurar nuestro gestor de descargas, en nuestro caso el propio Download Station de Synology, que simplemente pulsando en el botón de añadir ya nos lo mostrará, tanto para las redes Usenet como para Torrent, la configuración es exactamente la misma. Introducimos la dirección IP del servidor, con el puerto del Download Station y nuestras credenciales.

Activamos “Completed Download Handling” y “Failed Download Handling” de manera que Sonarr se comunique con el gestor de descargas para saber cuando ha terminado de descargarlo y así poder renombrarlo y moverlo a su posición final, así como poder descargar otra release si esa ha fallado.

Drone Factory tiene que estar completamente vacío y con intervalo 0, ya que es una característica que se va a retirar y si tenemos el resto de esta página correctamente configurada no nos hará ninguna falta.

Remote Path Mapping es vital para que la conexión entre el contenedor dockerizado y el Download Station funcione correctamente. Como Host introducimos la dirección IP donde se sitúa el gestor de descargas y mapeamos la carpeta de descargas local con la del docker de Sonarr, esta es la razón por la que montamos la carpeta de descargas en /volume1/downloads.

En la pestaña Connect, nos permite conectarnos con programas y scripts externos, yo uso principalmente dos:

  • Plex. Este permite una mejor comunicación entre Plex y Sonarr, de manera que la biblioteca se actualizará en cuanto Sonarr mueva el archivo, si no dependemos de las búsquedas periódicas de Plex. Para configurarlo, en el botón de añadir, seleccionamos Plex e introducimos la dirección del servidor Plex y las credenciales.
  • Bot de Telegram. Esto es totalmente accesorio, pero me avisa cada vez que se ha descargado un elemento. Para configurarlo, podéis seguir estos pasos, básicamente es configurar un bot con @botfather en Telegram y conseguir tu id en Telegram con @get_id_bot

La pestaña Metadata permite enriquecer los ficheros con posters, trailers, sinopsis y demás metadata, si usas alguno de los sistemas que ahí aparecen, te conviene activarlos. Al usar Plex, no es realmente necesario ya que será él el que se encargue de gestionarlo.

Quedaría la pestaña General que nos permitirá escoger la configuración de fecha y establecer el Calendario con fecha de inicio en Lunes, ya que este calendario nos permitira de un vistazo conocer cuales son los días de emisión de cada serie. Este sería el proceso para configurar tanto Sonarr, como Radarr o Lidarr, por lo que simplemente tendremos que repetir estos pasos en cada programa. Aunque Radarr incluye una pestaña llamada Lists, donde podemos sincronizar directamente con listas de IMDB (top 250, películas populares, una lista propia), RSS, TMDb (que permite subir tablas .csv) o sincronizarse con Trakt, de manera que puede automáticamente descargar una película que aparezca en esas listas si así lo configuramos.

Finalmente, para añadir una serie, simplemente en Add Series, buscamos la serie y escojemos la ruta (path), que será en nuestro caso la ruta /tv que habíamos configurado en Docker. Esta path sólo hará falta la primera vez que añadamos una serie.

Añadir series en Sonarr. La Path solo tendremos que configurarlo la primera vez, después os saldrá por defecto como a mí.

Pulsarr

Una manera más fácil de añadir series o películas a nuestro gestor de contenidos, es con esta pequeña extensión disponible para Chrome/Opera, pero que todavía no está disponible en las stores correspondientes, por lo que tenemos que descargarla desde Github y cargarla manualmente en el panel de extensiones de nuestro navegador.

Básicamente, si la pulsamos cuando estamos en la ficha de IMDB de una película o serie, la añadirá directamente a nuestra lista de seguimiento.

Para configurarla, hemos de introducir la dirección IP de Sonarr o Radarr (ahora mismo hay que elegir para que programa la queremos usar) junto a la API Key que podemos consultar en la pestaña Setting/General de Sonarr o Radarr y ya está lista para funcionar.

Plex

Plex Media Server nos lo habremos descargado desde el Centro de Paquetes de Synology. En cuanto a Ajustes solo tendremos que realizar un par de selecciones que realizaremos al final, prácticamente solo tendremos que crear las Bibliotecas y poco más.

Para crear una, sobre Bibliotecas pulsamos en el “+” que aparecerá y seleccionaremos el tipo de contenido, el idioma (escogeremos Español para que nos muestre las sinopsis y posters en Español), seleccionamos su ubicación y nos aseguramos que el Agente sea “theTVDB”, pulsamos Añadir biblioteca y no tendremos que hacer nada más.

En mi caso, tengo las bibliotecas “Películas” y “Series de TV”

Sub.Zero Bundle

Sub.Zero no es un programa aparte, sino que es un canal de Plex. Los canales pueden son plugins instalables desde Plex que por lo general son “iTunes Trailers”, “BBC”, “TED”, etc, de ahí la denominación canales. Pero también hay canales de metadatos, como es Sub.Zero, que sirven para enriquecer los ficheros con metadatos, en este caso, subtítulos.

Para instalarlo, en la barra lateral izquierda, nos vamos a canales, botón amarillo de Instalar Canales, “Más…” y en “Metadata Agents” nos encontramos el plugin de Sub.Zero. Ahora hay que configurarlo; lo explican bien en su wiki. Tenemos dos fases, primero debemos configurar los Agentes en la configuración de Plex, para que Sub.Zero esté activado y en la primera posición de la lista.

La segunda fase, consiste a volver a la página de canales y acceder a la configuración de Sub.Zero. Aquí escogeremos idiomas para los subtítulos, fuentes, forma de almacenamiento, etc. Será necesario tener cuenta en al menos dos servicios de subtítulos, para mayor fiabilidad:

Escogemos nuestros idiomas de subtitulos preferidos y activamos OpenSubtitles, Addic7ed y TVsubtitles.net (para este último no hace falta registo) y las siguientes opciones:

  • Search enabled providers simultaneously (multithreading)
  • Scan: include external subtitles (metadata/filesystem, don’t download if existing)
  • Scan: which external subtitles should be picked up? = loose: filename contains media filename
  • Download hearing impaired subtitles = force non-HI
  • Fix common whitespace/punctuation issues in subtitles
  • Fix common OCR errors in downloaded subtitles
  • Store subtitles next to media files (instead of metadata)
  • Subtitle formats to save = SRT
  • Subtitle Folder = current folder
  • Automatically delete leftover/unused (externally saved) subtitles
  • On media playback: search for missing subtitles (refresh item) = current media item

Las opciones de Scheduler van a gusto, depende de lo que quieras cargar el servidor o la prisa que tengas por tener los subtítulos, en mi caso, la configuración es la siguiente:

Y aquí terminaríamos, guardamos los cambios y Sub.Zero está listo para funcionar. En Plex podríamos configurar la actualización de bibliotecas para que también sea más instanea o a nuestro gusto, igual que los parámetros anteriores. Dejo una imagen con mi configuración, aunque con tener activadas las opciones “Actualizar mi biblioteca automáticamente” y “Realiza un escaneado parcial cuando se detecten cambios” llegaría.

Fin

Ya tendríamos perfectamente automatizada y gestionada nuesta biblioteca de películas, series y música, que podremos reproducir desde cualquier dispositivo con la app de Plex (Xbox, Playstation, Android TV, Apple TV, iPad, móviles…) o con cualquier reproductor que sea capaz de leer desde unidades de red, ya que el tener todo organizado y con metadata enriquecido, permite que incluso entrando desde una unidad de red podamos consumir el contenido con los subtitulos incluídos.

Plex

Más información de cada software en:

Si queda alguna duda, la mayoría de ellas están resueltas en los Github y Wikis respectivos.

--

--