Cómo copiar un curso Moodle completo cuando no funciona la copia de seguridad
El problema: quiero conservar un curso Moodle
Hay ocasiones en las que necesitamos conservar una copia local de un curso de Moodle.
Puede ser porque vamos a cambiar de plataforma, porque queremos disponer de una copia de los materiales, porque necesitamos trabajar sin conexión o, simplemente, porque queremos conservar un curso antes de que desaparezca o sea modificado.
La primera idea suele ser sencilla:
«Descargo la página con HTTrack y listo».
Y ahí empiezan los problemas.
En mi caso, el curso estaba alojado en la plataforma de Educación a Distancia de la Junta de Andalucía y podía acceder perfectamente desde el navegador. Sin embargo, conseguir una copia navegable del curso completo requería resolver varias cuestiones.
1. Primer problema: Moodle necesita autenticación
Cuando una página es pública, herramientas como HTTrack pueden comenzar a rastrearla directamente.
Pero un curso privado de Moodle es diferente.
El navegador no accede simplemente a:
https://educacionadistancia.juntadeandalucia.es/centros/malaga/course/view.php?id=4252
como un visitante anónimo.
El navegador lleva asociada una sesión autenticada mediante cookies.
Por eso, si simplemente copiamos la URL en HTTrack, podemos encontrarnos con que la herramienta descarga:
- la página de inicio de sesión;
- una página de acceso denegado;
- o una página que aparentemente se ha descargado correctamente pero que no contiene realmente el curso.
La primera conclusión es importante:
No basta con tener la URL. Hay que conseguir que el programa utilice la sesión autenticada.
2. Intento inicial: la interfaz gráfica de HTTrack
La herramienta que utilizamos fue HTTrack Website Copier.
Es una herramienta veterana y potente, especialmente interesante porque permite controlar mediante línea de comandos prácticamente todos los aspectos del rastreo.
La versión instalada era:
HTTrack 3.49-2
El problema es que la interfaz gráfica no muestra todas las opciones de configuración de una forma evidente.
Buscando cómo cargar las cookies, inicialmente parecía que podía utilizarse una opción específica para indicar un archivo de cookies.
Sin embargo, al comprobar la ayuda de la versión que realmente teníamos instalada, descubrimos algo importante.
La ayuda indicaba:
bN accept cookies in cookies.txt
Por tanto, en esta versión la opción que nos interesa es:
-b1
Es decir, HTTrack utiliza un archivo llamado:
cookies.txt
y -b1 activa la aceptación de esas cookies.
Esto nos deja una enseñanza importante:
No conviene asumir que una opción documentada para otra versión de una herramienta existe exactamente igual en la versión instalada.
La propia ayuda del programa es la referencia más fiable.
3. Encontrar el ejecutable correcto
Otro pequeño problema fue que:
where.exe httrack
no devolvía nada.
Parecía que HTTrack no estaba disponible desde PowerShell.
Sin embargo, el programa sí estaba instalado.
La instalación estaba en:
C:\Program Files\WinHTTrack
y el ejecutable que necesitábamos era:
C:\Program Files\WinHTTrack\httrack.exe
A partir de ese momento pudimos ejecutar directamente HTTrack desde PowerShell:
& "C:\Program Files\WinHTTrack\httrack.exe" --help
Esto permitió comprobar exactamente qué opciones ofrecía nuestra versión.
4. Segundo problema: permisos de Windows
El siguiente obstáculo fue intentar trabajar directamente dentro de:
C:\Program Files\WinHTTrack
HTTrack intentó crear su archivo:
hts-log.txt
y Windows respondió:
Unable to create log file hts-log.txt
La explicación era sencilla.
Program Files está protegido por Windows y un programa normal puede no tener permiso para escribir allí.
La solución más limpia no fue ejecutar PowerShell como administrador.
Creamos una carpeta de trabajo independiente:
C:\cyr1eso
y copiamos allí:
cookies.txt
De esta manera HTTrack podía crear libremente sus archivos de caché, registros y páginas descargadas.
5. La primera prueba: ¿realmente funcionan las cookies?
Antes de lanzar una descarga completa hicimos una prueba controlada.
Desde:
C:\cyr1eso
ejecutamos:
& "C:\Program Files\WinHTTrack\httrack.exe" "https://educacionadistancia.juntadeandalucia.es/centros/malaga/course/view.php?id=4252" -b1 -r1
La opción importante era:
-b1
que indica a HTTrack que acepte las cookies del archivo:
cookies.txt
El resultado fue especialmente interesante.
HTTrack creó:
C:\cyr1eso\educacionadistancia.juntadeandalucia.es\centros\malaga\course\view40ef.html
con un tamaño de aproximadamente:
405 KB
Pero todavía faltaba demostrar que no era una página de login.
6. La prueba definitiva
Buscamos dentro del HTML nombres concretos de actividades del curso:
Select-String -Path "C:\cyr1eso\educacionadistancia.juntadeandalucia.es\centros\malaga\course\view40ef.html" -Pattern "1ESO","1º ESO","Iniciar sesión","login","Acceder"
Y aparecieron elementos reales del curso, entre ellos:
Texto a copiar 1ESO EH Y D 15/10/25
y:
Un centurión para la EUCodeWeek 1ESOA
Esto permitió confirmar algo fundamental:
HTTrack estaba accediendo al curso como usuario autenticado.
No estaba descargando simplemente la página de inicio de sesión.
7. Tercer problema: un curso Moodle no es una página web
Aquí aparece otro aspecto importante.
Un curso Moodle no consiste en una única página HTML.
La página principal puede contener enlaces a:
/course/
pero las actividades pueden estar en:
/mod/
Los archivos asociados a actividades y recursos pueden aparecer mediante:
/pluginfile.php
Además existen recursos relacionados con:
/theme/
y otros componentes internos de Moodle.
Por eso un simple:
httrack https://.../course/view.php?id=4252
no necesariamente produce una copia útil del curso.
Hay que permitir que HTTrack siga los recursos que realmente forman parte del curso.
8. ¿Cuál es la herramienta perfecta?
Aquí hay que distinguir dos necesidades diferentes.
Si quiero una copia restaurable de Moodle
La herramienta adecuada es el propio Moodle, utilizando su sistema de copia de seguridad.
Un archivo:
.mbz
puede contener la estructura del curso y sus recursos y está pensado para poder restaurarse posteriormente en Moodle.
Por tanto:
Para una verdadera copia de seguridad de un curso Moodle, el formato MBZ es preferible a HTTrack.
HTTrack no sustituye al sistema de backup de Moodle.
9. ¿Y si no puedo hacer un backup MBZ?
Aquí es donde HTTrack se vuelve especialmente interesante.
Si la plataforma:
- no permite descargar el curso;
- no permite generar una copia MBZ;
- restringe las copias de seguridad;
- no tenemos permisos de administración;
- o simplemente necesitamos conservar una versión navegable del curso,
HTTrack puede ser una alternativa muy potente.
En nuestro caso consiguió utilizar las cookies de una sesión autenticada y convertir el contenido accesible del curso en una copia local.
La ventaja es que el resultado puede abrirse posteriormente desde el ordenador como una copia estática de la web.
10. Los filtros de HTTrack
Una descarga indiscriminada es peligrosa.
Moodle puede contener enlaces a:
- otros cursos;
- perfiles;
- páginas generales;
- buscadores;
- administración;
- mensajería;
- otros recursos de la plataforma.
Por eso es importante utilizar filtros.
En nuestro caso, las zonas especialmente relevantes son:
/course/
para las páginas de los cursos,
/mod/
para las actividades,
y:
/pluginfile.php
para los archivos y recursos asociados.
La filosofía correcta es:
Permitir los recursos necesarios para el curso y bloquear todo lo demás.
No se trata simplemente de decirle a HTTrack «descarga Moodle».
Se trata de decirle:
«Descarga este curso y los recursos que necesita, pero no recorras toda la plataforma».
11. El comando final
Después de las pruebas anteriores, vamos a trabajar en:
C:\cyr1eso
y tenemos:
C:\cyr1eso\cookies.txt
El ejecutable es:
C:\Program Files\WinHTTrack\httrack.exe
Primero creamos una carpeta específica para la copia:
New-Item -ItemType Directory -Force "C:\cyr1eso\curso-completo"
Después nos situamos en la carpeta de trabajo:
cd C:\cyr1eso
🚨 COMANDO FINAL
Este es el comando que debes ejecutar:
& "C:\Program Files\WinHTTrack\httrack.exe" "https://educacionadistancia.juntadeandalucia.es/centros/malaga/course/view.php?id=4252" -O "C:\cyr1eso\curso-completo" -b1 -r9999 -d -a "+https://educacionadistancia.juntadeandalucia.es/centros/malaga/course/view.php?id=4252" "+https://educacionadistancia.juntadeandalucia.es/centros/malaga/mod/*" "+https://educacionadistancia.juntadeandalucia.es/centros/malaga/pluginfile.php*" "+https://educacionadistancia.juntadeandalucia.es/centros/malaga/theme/*" "+https://educacionadistancia.juntadeandalucia.es/centros/malaga/lib/*"
¿Qué hace cada parte?
-b1
→ Utiliza las cookies de:
C:\cyr1eso\cookies.txt
-r9999
→ Permite seguir enlaces a mucha profundidad.
-d
→ Mantiene el rastreo dentro del dominio.
-a
→ Evita que HTTrack se vaya a otros sitios.
+.../course/view.php?id=4252
→ Permite específicamente nuestro curso.
+.../mod/*
→ Permite acceder a las actividades Moodle.
+.../pluginfile.php*
→ Muy importante: permite descargar los archivos y recursos asociados al curso.
+.../theme/*
→ Permite los recursos necesarios del tema visual.
+.../lib/*
→ Permite determinados recursos internos necesarios para que las páginas funcionen correctamente.
Y:
-O "C:\cyr1eso\curso-completo"
→ Hace que todo el resultado quede separado de nuestra primera prueba.
12. ¿Por qué no permitimos todo /course/*?
Esta es una diferencia importante respecto a una primera aproximación que podríamos hacer.
Si simplemente permitiésemos:
+https://educacionadistancia.juntadeandalucia.es/centros/malaga/course/*
HTTrack podría encontrar enlaces hacia otros cursos y comenzar a seguirlos.
En cambio, aquí indicamos específicamente:
/course/view.php?id=4252
como punto de entrada del curso.
Después permitimos las zonas de Moodle necesarias para resolver sus actividades y recursos.
Esto reduce considerablemente el riesgo de convertir una copia de un curso en una copia gigantesca de toda la plataforma.
13. Un detalle importante sobre Moodle
Hay que entender que HTTrack está haciendo un espejo web, no una copia lógica de Moodle.
Eso significa que puede conservar:
- páginas;
- imágenes;
- documentos;
- algunos recursos;
- páginas de actividades;
- elementos HTML;
- CSS y JavaScript descargables.
Pero no necesariamente conservará correctamente:
- actividades interactivas que necesitan servidor;
- formularios;
- calificaciones;
- sesiones;
- bases de datos;
- cuestionarios que dependan de PHP;
- actividades que necesiten comunicación con Moodle;
- contenidos generados dinámicamente.
Por eso la copia debe entenderse como:
una copia navegable del contenido accesible, no como un Moodle completo funcionando sin conexión.
14. ¿Y qué ocurre con los vídeos?
Aquí también hay que tener cuidado.
Si el curso contiene un vídeo alojado como archivo dentro de Moodle, HTTrack puede intentar descargarlo mediante pluginfile.php.
Pero si el vídeo procede de:
- YouTube;
- Vimeo;
- otra plataforma externa;
- un servicio de streaming;
HTTrack puede no conservarlo localmente.
En ese caso dependerá de cómo esté integrado el contenido.
15. Las cookies son información sensible
El archivo:
cookies.txt
no es un archivo cualquiera.
Puede contener información suficiente para que una aplicación se haga pasar por una sesión autenticada.
Por eso:
Nunca debemos publicar cookies.txt.
Tampoco conviene compartir sin revisar:
hts-cache
ni:
hts-log.txt
La propia herramienta advierte de que estos archivos pueden contener información sensible relacionada con la autenticación.
Una vez terminada la copia, es recomendable eliminar cookies.txt de la carpeta de trabajo si ya no lo necesitamos.
16. HTTrack frente al backup de Moodle
| Necesidad | Herramienta recomendada |
|---|---|
| Restaurar el curso en otro Moodle | Backup Moodle .mbz |
| Conservar estructura Moodle | Backup Moodle |
| Descargar materiales accesibles | HTTrack |
| Crear una copia navegable offline | HTTrack |
| Copiar una web pública | HTTrack |
| Copiar un curso privado con sesión autenticada | HTTrack + cookies |
| Hacer una copia administrativa completa | Backup Moodle |
| No puedo generar un backup | HTTrack puede ser una alternativa |
La conclusión es bastante clara.
🥇 Para una copia Moodle auténtica
Backup de Moodle (.mbz)
🥈 Para una copia navegable cuando no tenemos acceso al backup
HTTrack
Y en este segundo escenario, la combinación:
Navegador
↓
cookies.txt
↓
HTTrack
↓
filtros de URLs
↓
copia local navegable
resulta especialmente útil.
Conclusión
El problema parecía inicialmente sencillo:
«Quiero descargar un curso Moodle».
Pero en realidad había varios problemas diferentes:
- El contenido estaba protegido por autenticación.
- La interfaz gráfica de HTTrack no mostraba claramente la configuración necesaria.
- La versión instalada de HTTrack tenía una sintaxis diferente de la que inicialmente esperábamos.
- Windows impedía escribir dentro de
Program Files. - Moodle distribuye sus contenidos entre múltiples tipos de URL.
- Una descarga sin filtros puede terminar recorriendo mucho más de lo que pretendemos.
La solución fue ir resolviendo cada problema por separado.
Y la conclusión más importante es esta:
HTTrack no es la herramienta perfecta para hacer un backup de Moodle. Es la herramienta perfecta para crear una copia local navegable cuando el backup de Moodle no está disponible y necesitamos trabajar con el contenido al que nuestro usuario ya tiene acceso.
Si tenemos permisos para realizar un backup, debemos utilizar el propio sistema de Moodle.
Si no los tenemos y necesitamos conservar el contenido accesible, HTTrack + cookies + filtros es una combinación sorprendentemente potente.
Y, sobre todo, hay que recordar una regla:



