VideoCAT VideoCAT
Open source · Self-hosted · Privado

Tu catálogo de video,
aunque el disco esté desconectado

Cataloga tus discos externos, revisa fotogramas, encuentra duplicados probables y gestiona archivos desde una web privada que tú hospedas. Los videos originales se quedan en tus discos.

Instalar con Docker Requiere Docker
$

Levanta PostgreSQL, la API y la web con las imágenes oficiales. Luego abre http://localhost:8081 y entra como admin con la contraseña que muestra el instalador.

Descargar Companion
Ver en GitHub Cómo funciona

Servidor con Docker (amd64 y arm64). Companion para Windows.

Captura real con un catálogo ficticio

  • Los originales se quedan en tus discos
  • Reconoce discos aunque cambie la letra
  • Duplicados entre resoluciones
  • Borrado diferido y verificado
El problema

Cientos de horas de video repartidas en discos que casi nunca conectas

Cuando tu colección crece más allá de un solo disco, encontrar algo se vuelve imposible: ¿en qué disco estaba? ¿es un duplicado? ¿ya lo revisé? Conectar disco por disco para buscar no escala, y los media servers dan por hecho que todo está siempre conectado.

  • ✕ No recuerdas qué hay en cada disco sin conectarlo.
  • ✕ Los duplicados ocupan espacio que podrías recuperar.
  • ✕ No hay un registro de qué ya revisaste o decidiste borrar.
Cómo funciona

En marcha en tres pasos

Un servidor que tú hospedas y un Companion en tu Windows. El servidor guarda el catálogo; los archivos se quedan donde están.

  1. 1

    Despliega

    Un comando levanta la web, la API y PostgreSQL con Docker. Abres http://localhost:8081 y entras como admin.

  2. 2

    Empareja

    Instalas el Companion en Windows, generas un código en Administración › Companions y lo pegas en el Companion.

  3. 3

    Escanea

    Añades discos o carpetas. El Companion lee los metadatos con FFmpeg, genera miniaturas y huellas visuales, y sube solo eso.

Plataforma web

Catálogo privado con login, en español e inglés, que se despliega con Docker Compose detrás de tu dominio.

  • Postgres + Fastify + Prisma
  • React + Vite servido por Nginx
  • Reverse proxy, cookies seguras y HTTPS
  • Imágenes oficiales para amd64 y arm64

Companion de Windows

Una app de bandeja que detecta tus discos, los escanea, sirve la reproducción remota y ejecuta copias y borrados.

  • Se empareja con un código de un solo uso
  • Reconoce discos por su .videocat-disk.json
  • Sirve la reproducción remota por un túnel saliente
  • Se actualiza solo desde GitHub Releases
Catálogo y búsqueda

Todo tu video a la vista, aunque esté guardado en un cajón

La tira de discos muestra cuáles están conectados y cuánto ocupan. Lo que vive en un disco desconectado sigue en el catálogo, marcado como tal, con sus miniaturas y metadatos.

  • Cuadrícula o lista, y búsqueda con Ctrl K tolerante a acentos sobre nombre y ruta.
  • Filtros por disco, extensión, carpeta (un árbol que carga bajo demanda), etiquetas, categorías y duplicados.
  • Panel de detalle con una galería de 15 fotogramas, los posibles duplicados y las acciones sobre el archivo.
  • «Mostrar conectados» para trabajar solo con lo que está enchufado; los discos conectados aparecen siempre primero.
  • Los discos se reconocen por su .videocat-disk.json aunque Windows cambie la letra de la unidad.
Review

Decide qué se queda, un video a la vez

Una sesión a pantalla completa con videos pendientes al azar, si quieres solo de los discos conectados. Cada decisión tiene su tecla y se puede deshacer.

  • Vista de fotograma o galería con las 15 miniaturas a la vez.
  • Asigna categorías mientras revisas, con las teclas del 1 al 9.
  • El siguiente video ya está precargado: no hay espera entre uno y otro.
  • Pendientes, marcados hoy, últimos 7 días y espacio liberado, siempre a la vista.
  • Cada decisión se confirma con una animación, y la barra espaciadora activa el modo privado: pantalla en negro, sin decidir nada.
  • FMantener
  • JMarcar para borrar
  • SSaltar
  • ZDeshacer
  • EspacioModo privado
Duplicados asistidos

El mismo video en tres discos y dos resoluciones

Comparar tamaños no encuentra la copia que reconvertiste hace años. VideoCAT toma huellas visuales en 15 puntos de cada video y las combina con los metadatos para proponer copias probables, aunque cambien la resolución, el códec o la compresión. La decisión final siempre es tuya.

  • Cada grupo trae su nivel de confianza, los motivos de la coincidencia y el espacio recuperable.
  • Modo asistido lado a lado: la copia recomendada aparece primero, elegida por resolución, tamaño y duración.
  • Una tecla decide: 1 o ← conserva A, 2 o → conserva B, Enter aplica la recomendación.
  • «Conecta primero» ordena los discos por el espacio que liberarías al resolverlos.
  • Las carpetas protegidas por PIN quedan fuera del cálculo.
15
huellas visuales por video
Traslados

Reordena tu colección entre discos, sin conectarlos a la vez

Cada archivo pasa por una carpeta temporal del Companion. Nada se borra de un lugar sin una copia verificada en el siguiente.

  • Consolidar carpetas: las que se llaman igual en distintos discos se juntan en la que marcas con estrella. Antes de empezar ves qué se mueve, cuánto ocupa y si cabe.
  • Agrupar archivos: desde una carpeta, VideoCAT busca en todos los discos archivos con nombres parecidos y decides uno por uno, como en Review: F agrupa, J ignora.
  • Mover por etiqueta: una regla «etiqueta → carpeta con estrella» lleva ahí cada video con esa etiqueta, también los que la reciban después.
  • «Para continuar» te dice qué disco conectar, empezando por el que más tiene que recibir, y dónde liberar espacio.
  • Nada se sobrescribe, la carpeta temporal deja libre el 5 % de su disco y un corte a mitad de camino se retoma sin perder archivos.
SHA-256
cada copia se relee entera antes de borrar el original
A descargar

Lo que quieres ver, copiado a tu PC

Pon videos en cola y el Companion los copia, uno a la vez, desde los discos conectados a una carpeta local de Windows.

  • Progreso por archivo y de la cola completa, con velocidad y tiempo estimado.
  • Pausa segura: termina la copia en curso y detiene las siguientes.
  • Selección al azar por un tamaño objetivo en GB, limitada a discos o carpetas, sin repetir lo ya descargado.
  • Si una copia se estanca, se marca con error y sigue con la siguiente.
  • Nunca sobrescribe un archivo que ya existe en el destino.
Reproducción remota

Mira desde el celular los videos de los discos conectados a tu PC

El Companion abre un túnel saliente y autenticado hacia VideoCAT. No expone puertos de Windows ni monta tus discos en el servidor. El disco tiene que estar conectado a la PC para poder reproducir.

Túnel saliente, solo lectura

La conexión la inicia el Companion desde tu Windows. El túnel sirve reproducción y no acepta operaciones remotas de escritura.

HTTP Range, sin copias

El servidor retransmite los bytes que pide el reproductor, sin revelar la ruta local y sin guardar el video.

Reproductor táctil

Pantalla completa, doble toque para avanzar o retroceder, salto directo a otro video y aleatorio persistente entre discos conectados.

Sesiones acotadas

Cada sesión pertenece al usuario que la creó, tiene límites de duración e inactividad y se cierra si el túnel se cae.

  • Lectura anticipada ajustable de 8 a 128 MB para que los videos 4K no se queden cargando. Si entras por un dominio público, la velocidad de subida de tu conexión pone el techo.
  • Antes de reproducir comprueba si el navegador soporta el contenedor y los códecs. Para H.264 con AAC o MP3 hay un remux temporal a MP4 opcional (-c copy).
  • No transcodifica H.265, AV1 ni otros códecs: consumiría mucha CPU. Lo que se puede reproducir depende del navegador.
  • Chromecast está desactivado por defecto; se activa en Perfil y usa enlaces firmados y temporales.

Toda la web, también en el móvil

Barra de pestañas abajo, hojas desplegables para los filtros y las mismas secciones que en el escritorio.

Companion de Windows

Una app de bandeja que hace el trabajo en tu PC

El Companion es la única pieza que toca tus discos. Escanea, sube metadatos y miniaturas, copia, borra y sirve la reproducción remota.

  • Se instala con Setup.exe, sin permisos de administrador, y se actualiza solo desde GitHub Releases.
  • Se empareja con un código de un solo uso; su credencial queda cifrada por Windows y se revoca desde Administración.
  • Monitorea discos con marcador y carpetas locales o de red, y reescanea sin repetir el trabajo ya hecho.
  • Si un archivo desaparece, lo oculta sin perder etiquetas ni historial, y lo reactiva si vuelve.
  • Mueve los traslados por una carpeta temporal y verifica cada copia con SHA-256.

Necesita FFmpeg: winget install Gyan.FFmpeg.

Interfaz

Una app en tu escritorio o tu teléfono, con tu color

La interfaz se adapta a cómo y dónde la usas. El tema y el idioma se guardan en tu navegador.

  • App instalable en Windows, macOS, Android, iPhone y iPad cuando la sirves por HTTPS: abre desde su ícono, se actualiza con el servidor y no guarda datos del catálogo en el dispositivo.
  • Indicador de actividad: qué hace el Companion ahora mismo, cuánto falta por mover con los discos conectados y qué disco ya se puede desconectar.
  • Temas claro, oscuro, OLED o del sistema, y seis colores de acento: Naranja CAT, Cobalto, Esmeralda, Uva, Rosa y Grafito.
  • Densidad cómoda o compacta, en español o inglés según tu sistema.
  • Barra lateral contraíble, y cada sección con su propia URL para recargar o compartir.
Y además

Para entender y mantener tu colección

Las secciones que no usas todos los días, pero que necesitas cuando algo no cuadra.

Esquema y uso por carpeta

Mapas de carpetas por tamaño, navegables hasta los videos. En Uso por carpeta, las que se llaman igual se juntan aunque estén en discos distintos, y la búsqueda instantánea deja solo lo que coincide.

Auditoría

Errores de escaneo, metadatos, miniaturas y borrados, agrupados, con búsqueda y exportación CSV.

Administración

Capacidad física y catalogada por disco, Companions emparejados y actividad reciente. Cada disco se puede renombrar, vaciar o, si ya no existe, quitar de VideoCAT.

Perfil

PIN y carpetas protegidas, Companion local, Chromecast opcional y apariencia.

Privacidad y seguridad

Tus videos se quedan en tus discos

El servidor guarda metadatos, rutas relativas y miniaturas. Cuando reproduces en remoto retransmite los bytes que pide el reproductor, pero no los guarda.

Autohospedado · Sin telemetría
  • El servidor no necesita acceso a tus discos: solo recibe metadatos, rutas relativas, miniaturas JPEG validadas y errores de auditoría.
  • Cada Companion usa una credencial propia, emparejada con un código de un solo uso, cifrada por Windows y revocable. El servidor guarda solo su hash.
  • El túnel es saliente y solo sirve lectura con HTTP Range: no acepta escrituras remotas.
  • Abrir, copiar o borrar desde el navegador exige el token local del Companion.
  • Las rutas se resuelven de forma canónica: nada de escapes por enlaces o junctions.
  • En los traslados, nada se borra de un lugar hasta verificar con SHA-256 la copia en el siguiente.
  • Login con JWT de 12 horas, validación de origen, rate limiting, CSP y HSTS, y contenedores sin root de solo lectura.
  • Carpetas sensibles protegidas por PIN y excluidas de los duplicados.

Cómo se borra un archivo

  1. 01

    Marcas un video para borrar. El servidor guarda la intención y el historial; no toca el disco.

  2. 02

    Cuando el disco correcto se conecta, el Companion valida que la ruta esté dentro de una carpeta monitoreada.

  3. 03

    Revisa tamaño, fecha de modificación y huella visual. Si el archivo cambió, cancela y quita la marca.

  4. 04

    Si todo coincide, borra el archivo y reporta el resultado, que queda en el historial.

Un borrado físico no se puede deshacer sin un respaldo. Si prefieres decidir cuándo, pon «Borrar los marcados» en «Solo a pedido» en el Companion.

Open Source

Tuyo para autohospedar, inspeccionar y mejorar

Sin nube, sin suscripción, sin telemetría. Despliega con Docker Compose en minutos.

  • Licencia AGPL-3.0-or-later
  • Imágenes oficiales en Docker Hub para amd64 y arm64
  • Companion con SHA-256, atestación de origen y SBOM en cada versión
  • CI con pruebas de API e interfaz en escritorio y móvil
  • Scripts de respaldo, verificación y restauración
TypeScriptFastifyPrismaPostgreSQLReactViteElectronDocker
Instalación manual
# 1. Descarga el compose y la configuración
mkdir videocat && cd videocat
curl -fsSLO https://raw.githubusercontent.com/reiterstahl/videocat/main/docker-compose.hub.yml
curl -fsSL https://raw.githubusercontent.com/reiterstahl/videocat/main/.env.example -o .env

# 2. Cambia los secretos (openssl rand -hex 32)
nano .env

# 3. Levanta el stack
docker compose -f docker-compose.hub.yml up -d

# 4. En Windows, FFmpeg para el Companion
winget install Gyan.FFmpeg
Versión actual Stack Docker v0.2.33 Companion Windows v0.2.9
Docker Hub →
Preguntas frecuentes

Lo que suele preguntarse

¿VideoCAT sube mis videos al servidor?

No. El catálogo guarda metadatos, rutas relativas, miniaturas, etiquetas e historial. Durante una reproducción remota, el Companion transmite los bytes que pide el reproductor a través del servidor, pero el archivo no se guarda allí.

¿Tengo que tener todos los discos conectados?

No. Ese es justamente el caso de uso: el catálogo se consulta aunque el disco esté guardado. Reproducir, copiar o borrar sí requiere conectar el disco correspondiente.

¿Qué pasa si Windows cambia la letra de una unidad?

Nada. VideoCAT identifica cada disco por el UUID de su archivo .videocat-disk.json, no por la letra.

¿Encuentra el mismo video con otra resolución?

Sí, como duplicado probable. Combina metadatos con huellas visuales tomadas a lo largo del video y te muestra la confianza y los motivos. No usa IA, y la decisión final es tuya.

¿Puede borrar archivos?

Sí, de forma diferida y a través del Companion. Antes de borrar valida el disco, la ruta y la identidad del archivo. Un borrado físico confirmado no se puede deshacer sin un respaldo.

¿Funciona en Android?

La web es responsive y la reproducción remota está pensada para navegadores móviles modernos. Que un video se reproduzca depende del navegador, del contenedor y de los códecs.

¿Funciona el Companion en macOS o Linux?

No, por ahora es solo para Windows. El servidor sí corre en cualquier sistema con Docker.

¿Reemplaza a Plex o Jellyfin?

No exactamente. VideoCAT se centra en catalogar colecciones repartidas en discos que suelen estar desconectados, revisar fotogramas, detectar duplicados y ejecutar acciones locales. No es un servidor de transcodificación.

¿Puedo reorganizar archivos entre discos?

Sí, con Traslados: consolidar carpetas que se llaman igual, agrupar archivos parecidos o mover por etiqueta. Los discos no tienen que estar conectados a la vez, y nada se borra de un lugar sin verificar antes la copia con SHA-256.

¿Funciona detrás de Cloudflare Access?

Sí. Cuando vence la sesión del proxy de acceso, la app te pide volver a entrar y te regresa a la misma página. Al Companion conviene apuntarlo a la dirección interna del servidor o darle un token de servicio.

¿Tengo que donar?

No. VideoCAT es software libre bajo AGPL. Los enlaces de apoyo son opcionales, y los forks pueden quitarlos respetando la licencia y la atribución.

Apóyanos

Si VideoCAT te ahorra discos y horas, invítame un café

El proyecto es gratuito y open source. Tu apoyo paga el tiempo de desarrollo y mantiene todo abierto.