Kabosu - Creando cosas

Logo de la página. Gato esférico con colores verdoso.

Descargando la web Guías Nintendo

Publicado: 2025-01-20

Etiquetas: Juegos, Proyectos


Guías Nintendo

Antes de Navidad me volví a enganchar a jugar al Animal Crossing de Switch. Quería completar cosas que me había dejado cuando lo jugué en su día como peces, obras de artes y todo eso. Como siempre que he tenido algún problema con un juego de Nintendo en los últimos 20 años, me fui a la web de Guías Nintendo y en allí encontré listados de peces para pescar con sus meses correspondientes, tipo, dónde aparecen, etc. En la sección de obras de arte había imágenes de todas además de ayudas para identificar falsificaciones. Toda la información que necesitaba.

Guías Nintendo es una web curiosa. Es una web oficial de Nintendo que parece anclada en el pasado, con guías de muchos de sus juegos para la mayoría de sus consolas desde la Game Boy. El dominio se registró en octubre de 2002 pero yo creo recordar que la visitaba mucho antes. Tiene una veintena de guías de Nintendo 64 por lo que supongo que la web ya debía existir a finales de los 90. Lo extraño es que no parece que exista ninguna otra web así en ningún otro idioma. Nintendo Ibérica parece que fue la única oficina de Nintendo que se curró una web de ayuda. Hoy en día todas las webs de Nintendo son exactamente iguales. De hecho da igual en qué dominio entres que te redirige a nintendo.com. Por eso digo que Guías Nintendo es curiosa. Mirando su código fuente está todo escrito en castellano. Todas las capturas de pantalla y vídeos tienen los textos en castellano, no están reutilizadas de otros sitios. Supongo que un grupo de personas dentro de Nintendo España decidieron gastar su tiempo en ayudarnos. ¿Quizá porque hasta la llegada de Game Cube la mayoría de juegos llegaban a España en inglés?

Cuando entré a ver la guía de Animal Crossing me fijé en un pequeño detalle: el copyright del pie de página es "© 2022 Nintendo Ibérica S.A.". No se ha actualizado desde hace más de 2 años. La lista de últimas guías publicadas contiene juegos como Kirby y la Tierra Olvidada o Triangle Strategy que salieron en 2022. Curiosamente Nintendo anunció en noviembre de 2022 que iba a fusionar todas sus oficinas regionales de Europa en un solo país. ¿Quizá la persona o personas que llevaban esta web abandonaron la empresa? O quizá a la nueva dirección europea no le parecía algo prioritario y esta gente ahora se dedica a otros proyectos dentro de la empresa.

Me entró un miedo. ¿Y si en algún despacho decidían que esa web ya no había falta y debía eliminarse? O si se olvidaban y se les caducaba el dominio por dejadez. Como seguramente esa web tiene información que me iba a ayudar en el futuro decidí ver si podía descargármela entera.

La idea era tenerla para consumo propio y, si en un futuro la web original desapareciese, subir su contenido a algún sitio para que pueda seguir siendo útil a la gente.

Bajando la web

Me descargué toda la web con WGET. Tardó casi una semana. En Mastodon me recomendaron usar HTTTrack pero lo probé un poco y no conseguí hacerlo funcionar así que usé el comando WGET que siempre he usado. Al final se descargaron 354742 ficheros que ocupaban un total de 6GB. Todo texto, imágenes y algo de javascript.

El siguiente paso fue crear un repositorio Git para guardar los datos y así poder empezar a editarlos sin miedo. Git va bastante lento con repositorios tan grandes pero es mejor eso que no tener nada.

Abrí la página que me había bajado y... Se veía como el culo.

Captura de pantalla de la página Guias Nintendo. Se ve muy mal

Arreglando la página principal a mano

Con las herramientas de desarrollo web de Firefox me puse a ver qué ficheros utilizaba la página para ver porqué faltaban imágenes.

Había un montón de ficheros que mi web local intentaba cargar pero que no existían. Parecían ser ficheros CSS, imágenes, etc pero, por alguna razón, tenían extensión ".html". Quité la extensión de todos esos ficheros en el código fuente de la página pero seguía sin cargar porque WGET no los había descargado.

Para conseguirlos abrí la página original con Firefox y le di a la opción "Save page as...". Esto crea un directorio con el código HTML de la página y todos los ficheros asociados. Justo las imágenes, javascript y CSS que me faltaba en lo que había bajado con WGET.

También cambié algunos enlaces que intentaban cargar cosas de la página oficial. Borré el dominio de las URLs para que pasaran a cargar todo de mi versión local.

Borré un par de ficheros javascript que se usaban para métricas y tracking a la gente que visita la página.

Al final del fichero encontré una línea curiosa. Parecía cargar un javascript con nombre muy extraño:

<script type="text/javascript" src="../../../_Incapsula_Resource%3FSWJIYLWA=719d34d31c8e3a6e6fffd425f7e032f3&amp;ns=29&amp;cb=1225181491" async></script></body>

Buscando información sobre qué era eso descubría que Incapsula era una herramienta para evitar que hagan scraping de la web. No sé si este sistema es el que ha hecho que no se me descargasen algunos ficheros y tuvieran extensión ".html". En todo caso la protección no había sido muy efectiva porque me había bajado 6GB de datos.

Con estos pequeños arreglos manuales la página principal ya tenía el mismo aspecto que la original.

Captura de pantalla de la página Guias Nintendo. Se ve bien

Listados de juegos

Hay una página HTML para cada consola de Nintendo desde la Game Boy en la que se listan las guías de cada una. Todas estas páginas tenían los mismos problemas que la página principal con las extensiones ".html". Para no hacer el trabajo a mano me hice una script para limpiar las páginas:

#!/bin/sh

F=$1

echo Processing $F

sed 's/.css.html/.css/g' $F | \
sed 's/.js.html/.js/g' | \
sed 's/.png.html/.png/g' | \
sed 's/.ico.html/.ico/g' | \
sed 's/.jpg.html/.jpg/g' | \
sed 's/.gif.html/.gif/g' |
sed '/_Incapsula_Resource/d' | \
sed '/analyticstracking/d' | \
sed 's/https:\/\/www.guiasnintendo.com//g' \
> $F.tmp

mv $F.tmp $F

Este script se podría mejorar mucho poniendo todas las transformaciones en una misma llamada a sed pero no me molesté mucho en optimizarlo. Ejecutando ese script para cada fichero de consola conseguí arreglar sus páginas. Por suerte en este caso no faltaba ninguna imagen.

Las guías

Lo importante de esta página son las guías así que me puse a ver el estado de lo que se había bajado. Las imágenes parecían descargadas pero las páginas tenían muchos enlaces con la extensión ".html" agregada que hacía que fallaran. ¿Era una argucia de Incapsula? ¿Era algo que había hecho WGET al bajarse las páginas?

Abrí la primera guía de la consola más antigua, Alice in Wonderland de Game Boy, para ver si funcionaba bien. Se veía mal, tenía imágenes con extensión ".html" e intentaba cargar cosas del dominio original en vez de localmente pero parecía que las imágenes propias de la guía estaban bajadas. Probé a usar mi script de limpieza con las 5 páginas de Alice in Wonderland y al recargar la página se veía todo perfectamente.

Captura de pantalla de la página Guias Nintendo. Guía de Alice in Wonderland

Como había sido tan simple pensé en aplicar el script a todas las páginas que había bajado a lo bruto.

find . -iname "*.html" -exec sh scripts/clean_html.sh "{}" \;

Tardó varios minutos en terminar porque había miles de ficheros pero cuando acabó estuve mirando varias guías y parecía que funcionaban perfectamente. ¡Bien!

El fondo de las páginas lo seguía cargando del dominio original. La razón era que estaba definido en el fichero CSS en vez de en la página. Apliqué el mismo script a todos los ficheros ".css" y tras eso ya no había ninguna conexión externa. Todo se quedaba en mi servidor local y parecía funcionar bien.

Con esto ya tenía una copia completa de la web de Guías Nintendo. Aunque todavía faltaba contenido que no estaba alojado en esa web.

Los vídeos

No he visto que falten imágenes aunque no he podido probar las miles de páginas que me descargué. Supongo que la mayoría de cosas deben estar porque tengo 6 gigas de datos. Lo que sí que faltaban eran los vídeos que están alojados en Youtube. Más de 1200 según mis cuentas. Hay juegos donde la mayoría del contenido está en vídeos y quería conservarlos también.

Tengo una guía de cómo bajar vídeos de Youtube así que me puse a intentar actualizar una de las páginas para usar un vídeo descargado en vez del enlace externo. Escogí la guía sobre Super Smash Bros Ultimate que según mi búsqueda solo tenía cuatro vídeos. Era la guía con menos vídeos. La de Super Mario Maker 3DS tenía hasta 200 enlaces a Youtube. Por desgracia, la aplicación que usaba en mi guía, pytube, ya no funciona. Probé otras similares y ninguna funcionó.

Al final, tras pedir ayuda en Mastodon, descubrí que mi problema era la VPN. Al estar usando una VPN Google no me dejaba descargar vídeos. Fue desconectarla y yt-dlp ya funcionaba.

Me bajé los más de 1000 vídeos que ocuparon casi 70GB de disco. Me encontré con el problema de que los formatos eran muy dispares. Algunos vídeos los había bajado en formato mkv, otros en mp4, otros webm y luego había algunos que había bajado por separado el vídeo en mkv y el sonido en mp4.

Si incluyo un fichero mp4 o webm en una página web, Firefox añade controles como si fuera Youtube y no hace falta hacer nada más pero mkv no lo soporta. El siguiente paso era convertir todos los mkv a mp4 y luego ya con ellos cambiar todos los enlaces a Youtube por referencias a mis ficheros.

Y aquí se termina la aventura por hoy. Hice un script que lleva dos días convirtiendo ficheros a mp4 y no va ni por la mitad. Mi ordenador ya tiene sus años así que va poco a poco. Cuando se terminen de convertir dentro de unos días o semanas actualizaré mi versión local de Guías Nintendo. No creo que escriba una segunda parte de artículo a no ser que me ocurra algo particularmente interesante.


Artículo siguiente: Creando seres vivos
Artículo anterior: Las ruedas del coche y la luz en el panel