Ctrl K
ComunidadGuías…
GITHUB · ANALIZADO

videodeck

Aplicación web auto-alojada para buscar y reproducir videos de YouTube descargados con yt-dlp. Usa Elasticsearch como índice, React/Node.js en el frontend, incluye extensión Chrome y soporte multilenguaje (Polaco/Inglés).

Ficha actualizada 25 sept 2026, 6:50 · upstream 25 sept 2026, 6:29 · release sin release detectada

Ver códigoProblemas y ayudaRepositorio ↗
00

Qué es videodeck

Descripción editorial construida a partir del repositorio, su documentación y sus señales de mantenimiento.

Videodeck es una aplicación web auto-alojada diseñada para buscar y reproducir videos de YouTube que han sido previamente descargados utilizando yt-dlp. El sistema indexa títulos, descripciones, comentarios y transcripciones de subtítulos en Elasticsearch, permitiendo búsquedas avanzadas con plegado de diacríticos (útil para caracteres polacos). El reproductor web maneja subtítulos multilenguaje directamente en el navegador.

La arquitectura se basa en Node.js 22.x con React para el frontend y Elasticsearch como motor de búsqueda. Incluye una cola de descarga por canal que persiste incluso al cerrar pestañas, y soporta múltiples carpetas de videos separadas por punto y coma o coma. La aplicación ofrece modo oscuro, diseño responsivo y documentación completa en polaco e inglés.

Para el despliegue se requiere Elasticsearch 8.x o 9.x (local o remoto), Node.js 22.x con pnpm, y Chrome 88+ para la extensión opcional. El servidor escucha por defecto solo en loopback (127.0.0.1) para seguridad, pero puede exponerse a red con token API. Incluye medidas de protección contra SSRF, inyección de comandos en yt-dlp y rebinding DNS.

CASOS DE USO
  • Buscar videos de YouTube por título, descripción o transcripción con soporte para caracteres diacríticos (ej: 'srodek' encuentra 'środek')
  • Reproducir videos descargados con subtítulos multilenguaje en el navegador sin necesidad de reindexar
  • Gestionar descargas automáticas por canal con cola persistente y configuración específica por carpeta
  • Usar extensión Chrome para añadir videos directamente desde YouTube con progreso en tiempo real
PUNTOS DESTACADOS
  • Búsqueda con plegado de diacríticos que normaliza caracteres polacos (ej: 'ś' como 's')
  • Reproductor HTML5 integrado con soporte nativo para subtítulos .vtt descargados
  • Cola de descarga por canal que sobrevive al cierre del navegador y persiste en disco
  • Seguridad reforzada: solo loopback por defecto, token API obligatorio para acceso remoto, bloqueo de flags peligrosos en yt-dlp
PRECAUCIONES
  • Requiere Elasticsearch como base de datos; no soporta bases de datos alternativas sin configuración adicional
  • La extensión Chrome requiere versión 88+ y solo funciona en navegadores Chromium
  • El reindexado completo puede tardar considerablemente en bibliotecas grandes (se muestra progreso en toast)
  • Por defecto, el servidor solo escucha en loopback; acceso remoto requiere configuración manual de API_TOKEN y HOST
VISUAL

Capturas del proyecto

Imágenes reales detectadas en la documentación del repositorio.

Search with filtersChannel download consoleVideo player with subtitles
01

Perfil de infraestructura

Estimación inicial derivada del repositorio y de los servicios detectados.

CPU4 vCPUrecomendación inicial
MEMORIA4 GBRAM estimada
DISCO20 GBalmacenamiento base
COMPLEJIDADhighnivel de operación
02

Despliegue detectado

Qué señales reales de instalación hemos encontrado.

Docker Compose detectado

Desplegar con Docker Compose o manualmente. Requiere Elasticsearch 8.x/9.x en puerto 9200. Configurar VIDEOS_FOLDER_PATH en .env con rutas separadas por ; o ,. Para acceso remoto, establecer API_TOKEN y HOST=0.0.0.0. Usar ALLOWED_HOSTS y CORS_ORIGINS para restringir accesos. Verificar que yt-dlp esté instalado globalmente o usar el binario incluido. El reindexado inicial es obligatorio tras añadir carpetas.

✓Dockerfile
✓Compose
—One-click
03

Stack y dependencias

Componentes inferidos a partir de manifests, configuración y documentación.

FRAMEWORKS
ReactNode.js
SERVICIOS
Elasticsearch
BASES DE DATOS
Elasticsearch
PUERTOS
9200930030013000
05

Puede sustituir a

Relaciones detectadas por el análisis del repositorio y su categoría.

06

Experiencia real de la comunidad

Ayuda a contrastar la estimación automática con instalaciones reales.

Todavía no hay datos comunitarios para este proyecto.