Media Pipeline

Aplicación de anime — catálogo, biblioteca y automatización

Es una plataforma de catálogo multimedia que construí y opero sobre mi propia infraestructura. Lo interesante no es el catálogo —de eso hay muchos— sino el flujo automático que mantiene la biblioteca al día: descubre títulos nuevos, gestiona las descargas, asocia cada carpeta del disco con su entrada del catálogo y deja en manos de una persona solo aquello que no puede decidir con evidencia. Backend en ASP.NET Core sobre PostgreSQL; panel de operaciones y sitio público en Next.js.

Akashani · aplicación en producción

La aplicación en números

Cargando datos en vivo

títulos en el catálogo

143.638

carpetas verificadas

3.723

episodios descargados

39.049

Cifras consultadas desde la API pública de Akashani y actualizadas cada 3 segundos mientras esta página está visible.

Estos son los números actuales de Akashani, la aplicación de anime en producción. Las cifras se consultan desde su API pública y se actualizan cada 3 segundos mientras esta página está visible.

Arquitectura

Sitio público y panel de operaciones API HTTP controladores finos, sin lógica 8 módulos de dominio catálogo, descargas, matching, moderación 18 trabajos de fondo sincronización, escaneo descargas, respaldo PostgreSQL EF Core, 25 entidades APIs externas SignalR — progreso en vivo

El backend es un monolito modular: ocho módulos de dominio, cada uno con sus controladores, servicios y DTOs, sobre un único PostgreSQL con EF Core. Dieciocho trabajos en segundo plano cubren la sincronización de metadatos contra APIs externas, el escaneo de disco, la cola de descargas, la traducción de descripciones y el respaldo diario de la base. El progreso llega al panel en tiempo real por SignalR. Evité la capa de repositorios salvo donde las consultas lo justificaban: una sola excepción, no una regla.

Un catálogo que se mantiene al día

La aplicación sincroniza títulos, metadatos y relaciones desde AniList, y actualiza los episodios y sus fechas de emisión con datos de Jikan. Los procesos programados detectan cambios y nuevos episodios para que el catálogo y la biblioteca no dependan de una actualización manual constante.

Descargas automáticas de episodios

El sistema detecta episodios que faltan en las carpetas asociadas y los agrega a una cola persistente. Los workers prueban las fuentes disponibles, registran el progreso y los errores, y pueden pausar o reintentar el trabajo sin perder el estado de la cola.

Matching entre carpetas y anime

Al escanear el disco, el pipeline analiza nombres y señales de cada carpeta —título, temporada, formato y episodios—, busca candidatos en el catálogo y evalúa la evidencia para asociarla con el anime correcto. Las coincidencias claras se resuelven automáticamente; los casos ambiguos o en conflicto quedan en una cola de revisión para que una persona confirme o corrija la asociación.

Una estructura de carpetas conectada con la biblioteca

Cada asociación enlaza una carpeta real del almacenamiento con su entrada del catálogo. El escaneo de episodios mantiene al día qué archivos existen, cuántos episodios hay y si la serie está completa; esa información alimenta la disponibilidad que ve la aplicación y se reconcilia después de cada cambio de asociación.

Traducciones al español

Un proceso en segundo plano traduce sinopsis y títulos de episodios al español. Las traducciones se guardan aparte del contenido original, así la interfaz puede mostrar el texto localizado sin reemplazar los metadatos de origen.

Conversión de formatos antiguos para el navegador

Los archivos heredados que el navegador no puede reproducir se convierten en segundo plano a MP4 compatible. Antes de sustituir el original, el sistema valida el archivo convertido y su duración; si la conversión falla o se interrumpe, conserva el original para evitar perder el episodio.

Una consola para operar la biblioteca

El panel administrativo reúne la cola y el historial de descargas, el matching de carpetas, la revisión de asociaciones, las traducciones, las conversiones y el estado de los procesos automáticos. Así se puede supervisar y corregir el ciclo completo desde un mismo lugar.