Invidious: interfaz, rutas multimedia y responsabilidad operativa
Arquitectura de Invidious: páginas, estado de cuentas y bytes multimedia siguen rutas distintas
Traza la aplicación Crystal/Kemal, la inicialización PostgreSQL y las rutas companion sin suponer un único proxy para todo el tráfico.
Qué aprenderás
- Lee el arranque como conexión de dependencias
- Companion permite una forma sencilla y otra avanzada
- Separa metadatos de control, estado y cuerpos transmitidos
Antes de empezar
- Conceptos básicos de HTTP y contenedores
- Distinguir estado de aplicación y tráfico multimedia
Explicar dependencias y confianza, preparar una prueba verificable e interpretar evidencia sin exagerar su alcance.
Conclusiones clave
- Arranque, estado persistente y entrega multimedia plantean cuestiones distintas.
- public_url cambia cómo llega el navegador a companion.
- La selección conservada en caché no garantiza conmutación transparente.
Lee el arranque como conexión de dependencias
El punto de entrada carga Kemal, configuración, módulos de base de datos, rutas, trabajos de fondo y auxiliares del proveedor. Abre PostgreSQL usando la URL configurada y termina si falla la conexión. En la ruta inspeccionada, el estado persistente es una dependencia de arranque, no una función opcional del navegador que pueda ignorarse porque una página parezca estática.
Ese mismo punto crea grupos de conexiones para YouTube, imágenes y companion. Son responsabilidades distintas aunque residan en un proceso. Una página puede implicar metadatos y estado, mientras los bytes recibidos por el reproductor recorren otra ruta. Dibujar todas las flechas como una llamada API genérica oculta las fronteras operativas relevantes.
Companion permite una forma sencilla y otra avanzada
La referencia define private_url como la dirección interna entre aplicación y companion. Sin public_url, la aplicación retransmite las solicitudes companion. Con public_url, las solicitudes del usuario pueden llegar directamente mediante rutas independientes del proxy inverso. La palabra privado expresa la topología prevista; el operador debe aplicar igualmente aislamiento de red y gestión de claves.
Si hay varios companions, la referencia indica que se elige uno aleatoriamente al recuperar datos de vídeo y que la selección se conserva en esa entrada de caché de metadatos. Tras expirar la caché puede elegirse otro. Esto no demuestra balanceo por paquete, conmutación transparente ante fallos ni distribución determinista. La planificación debe considerar tanto la caché como la topología elegida.
Separa metadatos de control, estado y cuerpos transmitidos
La ruta companion inspeccionada reenvía GET, POST y OPTIONS mediante el grupo de conexiones, copia estado y cabeceras de respuesta y transmite el cuerpo con IO.copy. Es una diferencia útil respecto a guardar un vídeo entero en una cadena. Sin embargo, no establece límites de memoria en todas las capas ni garantiza que cada error produzca una respuesta comprensible.
Historial y suscripciones pertenecen al estado de la instancia; los trabajos de fondo tienen su propio ciclo de vida. Diagnostica por frontera: conexión de base de datos, ruta web, comunicación companion, respuesta del proveedor y reproducción del navegador. Una búsqueda funcional puede coexistir con medios averiados. Los diagramas representan contratos inspeccionados, no trazas distribuidas ni mediciones de una topología real.
Pasos de implementación
- 1
Traza carga de configuración e inicialización PostgreSQL.
- 2
Dibuja por separado metadatos, cuentas y cuerpos multimedia.
- 3
Registra private_url y las rutas asociadas a public_url.
- 4
Asigna responsables y sondas a cada frontera.
Ejemplo para copiar
{
"privateUrl": "application-to-companion",
"publicUrlConfigured": "browser-to-companion route requires edge configuration",
"selection": "retained with cached video metadata",
"liveTraceCollected": false
}Preguntas frecuentes
¿public_url exige publicar también la base de datos?
No. Describe una ruta companion accesible al navegador. La exposición de la base de datos es otra decisión y no se necesita para esta topología.
¿Varios companions garantizan recuperación inmediata?
La referencia inspeccionada describe selección aleatoria retenida en metadatos, no una garantía verificada de conmutación transparente.
Fuentes
- invidious/config/config.example.ymlFuente verificada 2026-09-08
- invidious/src/invidious.crFuente verificada 2026-09-08
- invidious/src/invidious/routes/companion.crFuente verificada 2026-09-08
- documentation/docs/installation.mdFuente verificada 2026-09-08