Files

10 KiB

HALLAZGOS - Descarga del Curso de Vóley (Online Education Center)

Última actualización: 2026-05-02

Información del Curso

  • Plataforma: Online Education Center (similar a Moodle, usa Auth0 para login)
  • URL base del campus: https://voley.onlineeducation.center/es/campus/student/training/e/14197
  • Usuario: saldis_karina@hotmail.com
  • Contraseña: Martes13#
  • Estado: Curso finalizado

Estructura del Curso

El curso tiene 2 Módulos con 11 secciones en total.

Módulo 1 (m/19096) - PLANIFICACIÓN

Sección ID URL
PLANIFICACION s/34868 /es/campus/student/training/e/14197/m/19096/s/34868/study-resources/list
PREPARACION ATLETICA s/34869 /es/campus/student/training/e/14197/m/19096/s/34869/study-resources/list
EXPLICACION DEL TRABAJO PRACTICO A PRESENTAR s/34870 /es/campus/student/training/e/14197/m/19096/s/34870/study-resources/list
SEGUIMIENTOS DE EQUIPOS s/35523 /es/campus/student/training/e/14197/m/19096/s/35523/study-resources/list
ANALISIS DE EQUIPOS DE VOLEIBOL s/35524 /es/campus/student/training/e/14197/m/19096/s/35524/study-resources/list
ANALISIS DE EQUIPOS DE VOLEIBOL 2 s/35525 /es/campus/student/training/e/14197/m/19096/s/35525/study-resources/list
TRABAJO PRACTICO FINAL DE LA UNIDAD s/35526 /es/campus/student/training/e/14197/m/19096/s/35526/study-resources/list

Módulo 2 (m/19097) - ENTRENAMIENTO

Sección ID URL
ENTRENAMIENTO DE LOS CENTRALES Y OPUESTOS/AS s/35519 /es/campus/student/training/e/14197/m/19097/s/35519/study-resources/list
PUNTAS Y LIBEROS/AS s/35520 /es/campus/student/training/e/14197/m/19097/s/35520/study-resources/list
ENTRENAMIENTO DE LOS Y LAS ARMADORAS s/35521 /es/campus/student/training/e/14197/m/19097/s/35521/study-resources/list
EXPLICACION DEL TRABAJO PRACTICO A PRESENTAR s/35522 /es/campus/student/training/e/14197/m/19097/s/35522/study-resources/list

Recursos Encontrados

📹 Videos (Vimeo) - 23 videos + algunos adicionales

Los videos están embebidos via iframes de Vimeo. No se descargaron directamente, solo se guardaron referencias. IDs de Vimeo encontrados:

# ID de Vimeo Sección
1 919369433 Centrales_y_Oponentes
2 1179197191 Centrales_y_Oponentes
3 919341704 Centrales_y_Oponentes
4 919342668 Centrales_y_Oponentes
5 919346562 Centrales_y_Oponentes
6 919347866 Centrales_y_Oponentes
7 919348493 Centrales_y_Oponentes
8 919351892 Centrales_y_Oponentes
9 919352848 Centrales_y_Oponentes
10 919353448 Centrales_y_Oponentes
11 919354134 Centrales_y_Oponentes
12 919355668 Centrales_y_Oponentes
13 919356423 Centrales_y_Oponentes
14 919357109 Centrales_y_Oponentes
15 919358607 Centrales_y_Oponentes
16 919359386 Centrales_y_Oponentes
17 919359855 Centrales_y_Oponentes
18 919360318 Centrales_y_Oponentes
19 919363158 Centrales_y_Oponentes
20 919363728 Centrales_y_Oponentes
21 919364522 Centrales_y_Oponentes
22 919365485 Centrales_y_Oponentes
23 919366263 Centrales_y_Oponentes

Adicionalmente, otras secciones también tienen videos (Planificacion 1, Prep Atletica 3, Explicacion TP 1, Puntas y Liberos 12, Entrenamiento Armadoras 1, Explicacion TP 1).

📄 Archivos/Documentos

Se detectaron enlaces a recursos del curso:

  • "Abrir Archivo" (disparan descarga nativa del navegador): IDs de recurso como 46874, 46805, 46926, 50320, 52903, 46723, 46724, 53012, 53137, 53138, 53139, 46719, 50329, 46726, 46725, 53173
  • "Abrir Enlace" (redirigen a una página web): IDs como 46541, 50142, 50145, 50144, 50139, 50140, 50143, 50141

Los "Abrir Enlace" ya están capturados como HTML en los archivos pagina.html de cada sección.

🖼️ Imágenes

  • Logo del curso
  • Avatar de usuario por defecto
  • Logo de OEC

Autenticación

La plataforma usa Auth0 como proveedor de identidad con Authorization Code Flow.

Parámetro Valor
Auth0 Domain auth.onlineeducation.center
Client ID FelVoKUCb9QqtTFMSI2cggCbcw1klBbB
Callback URL https://voley.onlineeducation.center/auth0/callback
Tenant onlineeducationcenter
Subdomain voley
Database Connection Username-Password-Authentication
Response Type code (Authorization Code Flow)
Scope openid profile email

Flujo de autenticación

  1. GET a la URL del curso → redirige al login de Auth0
  2. Login via webAuth.login() con realm, username, password + captcha
  3. Auth0 redirige al callbackURL con un code
  4. El servidor canjea el code por tokens y establece cookies de sesión

Notas sobre acceso programático

  • ROPG (Resource Owner Password Grant): No disponible (responde access_denied)
  • Endpoint /co/authenticate: Requiere origin header específico + captcha
  • Login vía Playwright: Funciona correctamente. Las cookies se guardan en session.json para reuso
  • Sesión guardada: Se puede reutilizar en ejecuciones posteriores automáticamente

Contenido Descargado

Directorio: descargar-curso/descargas/

descargas/
├── secciones/
│   ├── Modulo_1_Planificacion/
│   │   ├── Planificacion/
│   │   │   ├── pagina.html          (HTML completo de la página)
│   │   │   ├── contenido.md         (Texto extraído como Markdown)
│   │   │   ├── recursos.json        (Lista de recursos encontrados)
│   │   │   ├── videos.md            (Referencias a videos Vimeo)
│   │   │   ├── archivo_*.bin/html   (Archivos descargados)
│   │   │   └── screenshot.png
│   │   ├── Preparacion_Atletica/    (misma estructura)
│   │   ├── Explicacion_TP/
│   │   ├── Seguimientos_Equipos/
│   │   ├── Analisis_Equipos_1/
│   │   ├── Analisis_Equipos_2/
│   │   └── TP_Final_Unidad/
│   └── Modulo_2_Entrenamiento/
│       ├── Centrales_y_Oponentes/   (misma estructura)
│       ├── Puntas_y_Liberos/
│       ├── Entrenamiento_Armadoras/
│       └── Explicacion_TP/
├── campus/                          (páginas generales del campus)
├── subpaginas/                      (otras páginas navegadas)
├── imagenes/                        (imágenes descargadas)
├── videos/                          (referencias a videos)
├── enlaces_encontrados.json
├── recursos_encontrados.json
└── resultado_descarga.json          (reporte de la ejecución)

Herramientas

Script principal

  • Archivo: descargar-curso/download_course.mjs
  • Runtime: Node.js 20.20.1 con Playwright
  • Navegador: Chromium headless
  • Dependencias: npm install playwright, npx playwright install chromium

Cómo ejecutar

cd descargar-curso
node download_course.mjs

Archivos del proyecto

Ruta Propósito
docs/CREDs.md Credenciales de acceso
docs/HALLAZGOS.md Este archivo (documentación)
descargar-curso/download_course.mjs Script principal de descarga
descargar-curso/descargas/ Contenido descargado del curso
descargar-curso/session.json Cookies de sesión guardadas (para reuso)
descargar-curso/package.json Dependencias Node.js

Pendiente / Mejoras Posibles

1. Descargar los PDFs/archivos reales

Los enlaces "Abrir Archivo" disparan una descarga nativa del navegador (Content-Disposition: attachment). Playwright lo maneja con el evento download, pero los selectores no coinciden exactamente (el href contiene query params). Solución: buscar el <a> por texto "Abrir Archivo" en lugar de por href exacto.

2. Descargar videos de Vimeo

Los videos están en Vimeo embebidos. Para descargarlos:

# Probar descarga directa (si el video es público)
yt-dlp "https://player.vimeo.com/video/{ID}"

# Si requiere autenticación, pasar cookies
yt-dlp --cookies ../session.json "https://player.vimeo.com/video/{ID}"

3. Extraer mejor el contenido textual

  • El extractor de texto actual toma todo el texto visible del panel principal
  • Se podría mejorar parseando el HTML para identificar: títulos, párrafos, listas, tablas
  • Convertir a Markdown estructurado con formato

4. Dashboard HTML local

  • Generar un index.html que funcione offline con enlaces a todas las secciones
  • Que muestre el árbol del curso y permita navegar localmente

5. Descargar más páginas del curso

Solo se descargaron las 11 URLs de las secciones. Hay otras páginas del campus:

  • Información general del curso
  • Auditorio (webinars grabados)
  • Foros
  • Evaluaciones
  • Trabajos prácticos
  • Calificaciones
  • Certificaciones

6. Almacenamiento de sesión

Las cookies de sesión expiran eventualmente. El script guarda session.json automáticamente después del login. Si la sesión expira, el script detecta la redirección al login y vuelve a autenticar.

Comandos Útiles

# Ver todos los archivos descargados
find descargas -type f | sort

# Contar recursos por tipo
echo "HTML:" $(find descargas -name "pagina.html" | wc -l)
echo "Markdown:" $(find descargas -name "contenido.md" | wc -l)
echo "Videos ref:" $(find descargas -name "videos.md" | wc -l)
echo "JSON:" $(find descargas -name "recursos.json" | wc -l)

# Ver tamaño total
du -sh descargas/

# Limpiar descargas y empezar de nuevo
rm -rf descargas/* session.json

# Descargar un video de Vimeo (requiere yt-dlp)
yt-dlp "https://player.vimeo.com/video/919369433"

Observaciones Técnicas

  • Auth0: Usa captcha en el login. Playwright lo maneja porque lo renderiza en un contenedor oculto y el captcha de Auth0 no siempre se muestra para usuarios de confianza.
  • CORS/CSRF: Los endpoints requieren headers específicos (Origin, Referer). Playwright los maneja automáticamente.
  • Rate limiting: No se observó límite durante la ejecución. Se recomienda mantener delays de 1-2 segundos entre requests por cortesía.
  • Vimeo: Los videos pueden requerir autenticación (el curso es privado). Si yt-dlp falla sin cookies, probar con --cookies session.json.
  • "Abrir Archivo" vs "Abrir Enlace": Los "Archivo" son descargas reales (PDF, DOC, etc.), los "Enlace" son páginas web con contenido ya capturado en pagina.html.