Invidious: interfaz, rutas multimedia y responsabilidad operativa
Leer la búsqueda de Invidious: detectar una URL no equivale a sanearla
Sigue la inicialización Query, la precedencia de filtros y la normalización posterior con dieciséis casos didácticos independientes y sin conexión.
Qué aprenderás
- La inicialización decide qué búsqueda se ejecutará
- La condición URL responde a una pregunta limitada
- Sigue la llamada siguiente antes de concluir sobre seguridad
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
- Modo y precedencia de filtros forman parte de la semántica.
- Superar una heurística no valida ni reproduce un vídeo.
- La ruta llama a un saneador independiente después de clasificar.
La inicialización decide qué búsqueda se ejecutará
Search::Query lee q y, en búsquedas regulares, puede usar search_query como alternativa. Recorta espacios exteriores y elimina una barra inversa inicial mientras activa un inhibidor de funciones inteligentes. Después interpreta la página y trata de forma diferente los modos regular, canal, suscripciones y lista. No deduzcas toda la semántica de una expresión regular situada al final del archivo.
La rama inspeccionada da a sp una ruta de interpretación compatible con YouTube. En otro caso lee filtros URL de Invidious y solo considera filtros antiguos dentro del texto si los filtros siguen siendo predeterminados y aparece la sintaxis pertinente. Las pruebas del proveedor contienen ejemplos de precedencia; se leyeron, no se ejecutaron. Un filtro moderno puede conservar un token aparentemente antiguo como texto ordinario.
La condición URL responde a una pregunta limitada
Query.url? rechaza funciones inhibidas, modos no regulares y filtros no predeterminados antes de aplicar una heurística de prefijo de dominio YouTube. En el modelo independiente JavaScript pasan una URL normal, un enlace corto y una ruta sin esquema; no pasan mayúsculas, ausencia de barra, texto anterior, filtros no predeterminados o una barra inversa inicial. Los dieciséis casos del modelo pasaron sin actividad de red.
El modelo también acepta la raíz de YouTube con barra final. Eso significa únicamente que esta condición clasifica la cadena como similar a una URL; no prueba un vídeo válido, una redirección correcta ni un recurso reproducible. El modelo recibe indicadores explícitos de modo y filtros y utiliza ejemplos ASCII. No ejecuta Crystal, interpreta todos los filtros ni demuestra equivalencia en límites Unicode y URI.
Sigue la llamada siguiente antes de concluir sobre seguridad
La ruta de búsqueda invoca UrlSanitizer.process antes de redirigir una consulta clasificada como URL. El saneador construye una URI relativa nueva, filtra componentes de ruta y copia parámetros según la categoría del destino. Su bucle de parámetros duplicados toma el último valor permitido. Estas transformaciones son distintas de la clasificación y se inspeccionaron, pero no las ejecutó nuestro modelo.
Una ampliación útil sería una batería de regresión en el lenguaje original que verificase destinos finales con parámetros conflictivos, rutas inusuales y cada modo de consulta. Esa batería está propuesta, no entregada ni ejecutada aquí. La evidencia permite explicar flujo de control y resultados concretos del modelo, no anunciar una vulnerabilidad, una auditoría completa o una prueba integral de búsqueda.
Pasos de implementación
- 1
Lee la inicialización antes de Query.url?.
- 2
Inspecciona la ruta que consume una clasificación positiva.
- 3
Ejecuta los dieciséis casos didácticos con sus límites explícitos.
- 4
Diseña pruebas Crystal separadas para destinos normalizados.
Ejemplo para copiar
{
"modelCases": 16,
"rootUrlWithSlash": true,
"leadingBackslash": false,
"nondefaultFilters": false,
"upstreamCrystalExecuted": false,
"sanitizerExecuted": false,
"playbackVerified": false
}Preguntas frecuentes
¿Los dieciséis casos ejecutan Invidious?
No. Ejecutan un modelo didáctico independiente en JavaScript. Crystal, interpretación completa de filtros, saneador y reproducción no se ejecutaron.
¿Aceptar la URL demuestra seguridad o reproducción?
No. Normalización, encaminamiento, disponibilidad del proveedor y reproducción real son etapas diferentes.
Fuentes
- invidious/src/invidious/search/query.crFuente verificada 2026-09-08
- invidious/spec/invidious/search/query_spec.crFuente verificada 2026-09-08
- invidious/src/invidious/routes/search.crFuente verificada 2026-09-08
- invidious/src/invidious/yt_backend/url_sanitizer.crFuente verificada 2026-09-08