Jellyfin Discord Notifier

Plugin Jellyfin DiscordNotifier#

Hoy voy a hablarles sobre uno de mis proyectos actuales: desarrollar un plugin de notificación de Jellyfin para Discord.

cedev-1
/
jellyfin-plugin-DiscordNotifier
Waiting for api.github.com...
00K
0K
0K
Waiting...

¿Por qué?#

He estado usando Jellyfin por un tiempo y realmente lo disfruto. Al principio, lo configuré solo para , pero después de hablar de ello con personas de mi entorno, terminé dando acceso a mi familia y amigos (no siempre están activos, pero me hace feliz).

Podrías decir que ya hay proyectos que hacen esto, y es verdad — especialmente el proyecto de notificación webhook de Jellyfin, que incluye un módulo para Discord. Pero lo encuentro mal diseñado; claro, eres libre de formatear las notificaciones tú mismo, pero no se ve muy bien y es complicado de configurar.

Quería hacer un proyecto como este por el desafío, pero también para involucrarme más en la comunidad de Jellyfin a mi manera.

El objetivo es simple: recibir notificaciones en un servidor de Discord cuando ocurre algo en nuestro servidor (se crea/elimina un usuario, se inicia/detiene una película, etc.).

WARNING

Tengan en cuenta que todavía soy estudiante, no desarrollador (y mucho menos desarrollador de C#). Solo soy un apasionado de la TI y fan del mundo de código abierto.


Entrando en materia#

Para hacer un plugin, no estás solo — hay una comunidad genial y han hecho un repositorio bastante útil para entender cómo hacerlo y qué reglas seguir para desarrollar con éxito un plugin de Jellyfin.

jellyfin
/
jellyfin-plugin-template
Waiting for api.github.com...
00K
0K
0K
Waiting...

Así que me inspiré en eso para empezar, pero también me apoyé mucho en otros proyectos de la comunidad para otros sistemas de notificación, como el Notificador de Telegram, ¡que me parece súper genial!

Para mantenerlo simple, partí del principio de que este plugin sería una solución llave en mano, fácil de usar, sin necesidad de molestarse en hacer plantillas de notificación como con el plugin de webhook. Mi plugin tiene notificaciones listas para usar; para tenerlas en Discord, solo actívalas en la interfaz de gestión de plugins en Jellyfin — no se necesita configuración manual.

Por ejemplo, en la versión actual, solo he hecho 4 (5 con el tester) notificadores.

  • Usuario creado
  • Usuario eliminado
  • Inicio de sesión de usuario
  • Inicio de sesión fallido de usuario

Todavía es básico, pero no está mal para empezar, creo.

Para comenzar con el plugin, por supuesto necesitas crear o ya tener un servidor de Discord, crear un canal de discusión para crear un webhook.

Documentación para Webhook de Discord aquí

TIP

Para que se vea mejor, recomiendo configurar el avatar y el nombre del bot desde Discord, porque de lo contrario usará los predeterminados de Discord. Aún no he implementado la personalización del bot.

Una vez que tengas la URL del webhook, debes ponerla en el campo dedicado en la interfaz de gestión del plugin. Puedes probar la conexión con la notificación de prueba — si funciona, puedes guardar la configuración.

Por defecto, todas las opciones de notificación están habilitadas; depende de ti elegir lo que quieras.


Desarrollo#

Entonces, como probablemente sepan y como se mencionó anteriormente, Jellyfin y sus plugins están hechos en C#, un lenguaje que rara vez he usado.

Nix#

NixOS Logo

Recientemente cambié a NixOS en mi PC principal. Fue un gran cambio y mucho trabajo para adaptarme, pero es realmente un paso enorme y beneficioso cuando ves todo lo que puedes hacer con él. También puse mi Mac en Nix y mi otra computadora portátil en NixOS. Resultado: todas mis configuraciones están sincronizadas en todas mis máquinas, es realmente agradable. Pero hablaré de eso en un post futuro…

❄️ Para trabajar limpiamente, configuré un direnv flake en el proyecto — es una característica súper genial de Nix que me permite cambiar entre mis PCs sin perder la configuración, sin preocuparme por las versiones de los paquetes a instalar.

NOTE

Si no estás familiarizado con Nix, recomiendo echarle un vistazo — es realmente genial.


Task y Docker#

Para probar mi plugin sobre la marcha, usé Docker 🐋, con una imagen simple de Jellyfin con la carpeta de configuración mapeada a mi PC, así tengo acceso directo al directorio de plugins y solo necesito hacer un mv o cp para colocar la DLL del plugin compilado.

Pero después de hacerlo manualmente docenas de veces para cada cambio, lo pensé (y me inspiré en mis colegas devops que usan esta herramienta).

Opté por la herramienta Task (Task es un ejecutor de tareas/herramienta de construcción). Es lo mismo que Make; realmente no conozco la diferencia, pero Task me atrajo más. Así que elegí esta solución para facilitar las compilaciones y limpiezas, etc.

info

Task se gestiona simplemente con un archivo Yaml.

Para empezar, solo hice dos pasos con build y clean.

task build Compila la DLL, verifica la carpeta del plugin en mi Jellyfin de prueba, copia la DLL en la carpeta y reinicia el contenedor de Jellyfin. Una vez hecho, pruebo el plugin manualmente y verifico mis cambios, etc.

task clean Cuando quiero empezar de nuevo, limpio todo: elimina la carpeta /bin (donde está el plugin compilado), elimina /obj (con dependencias), y también limpia la carpeta del plugin en el Jellyfin de prueba eliminando la DLL y el archivo XML creado para el plugin.


Problemas encontrados#

Durante el desarrollo y aún ahora, tengo un problema: no sé cómo recuperar la URL del servidor.

Para la versión actual, solo agregué un parámetro en la página de configuración del plugin donde el administrador puede ingresar la URL utilizada para su servidor, por ejemplo https://jellyfin.example.com.

Esto significa que para las notificaciones, cuando hacen clic en el título, abrirá el enlace al servidor Jellyfin correcto y no la URL predeterminada (por supuesto, si no se ingresa nada, será la dirección localhost).

Pero ese es un problema con el que me encontré que realmente me molestó. Hay un parámetro en Jellyfin que corresponde a la URL pública del servidor, pero aún no he descubierto cómo usarlo en el plugin.


Futuro#

Para este proyecto de Plugin, tengo varios puntos para mejorar.

  • alertas para otros eventos
  • personalización del bot de Discord
  • plantillas personalizadas
  • opciones de notificación por usuario

Pero todo eso vendrá con el tiempo y las versiones, no tengo prisa…

Aunque este proyecto es realmente interesante, tengo muchos otros proyectos en este momento, especialmente mi configuración de Nix, que me está tomando tiempo.

info

Tengo otros posts próximamente, especialmente sobre mi experiencia con NixOS e Hyprland, y mis otros proyectos en curso.


Gracias por tomarte el tiempo de leer este artículo. Espero que haya sido útil y te haya dado ideas para tus propios proyectos.

Jellyfin Discord Notifier
https://blog.ce-dev.eu/posts/es/jellyfin-discordnotifier/
Author
Cedev
Published at
2025-08-19
License
CC BY-NC-SA 4.0