2026-08-07 — marvelousdb: fuentes de imagenes (Fandom + Commons + SerpAPI)
Contexto: el usuario reporto que Green Giant (2106) “no tiene imagen” (en realidad su thumbnail de wikia funciona — su proceso estaba desactualizado; la URL responde 200 y la API la sirve). Propuso tomar imagenes de la API de Fandom; luego pego un documento con 6 APIs de imagenes PD (Gutendex, Internet Archive, Library of Congress, Wikimedia Commons, Digital Comic Museum, Replicate).
Verdad sobre el caso Green Giant
- El personaje 2106 tiene thumbnail wikia correcto (HTTP 200, 59KB). El usuario veia el placeholder porque su proceso web/API corre el codigo viejo. La leccion: reiniciar npm start tras cada cambio.
Evaluacion de las APIs del documento
| Fuente | Veredicto para thumbnails de personajes |
|---|---|
| Gutendex | Descartada: covers de libros, sin mapeo por personaje |
| Internet Archive | Descartada: portadas de comics escaneados, sin mapeo nombre→portada (se podria usar via “First Appearance” pero calidad variable) |
| Library of Congress | Descartada: poco material, rate limit |
| Wikimedia Commons | Integrada (--commons): gratis, sin auth, licencia validable (publicdomain/cc0/pdm). Rate-limited (~0.9s/personaje; Wikimedia limite ~200/min por IP) |
| Digital Comic Museum | Descartada: scraping, TOS restrictivo |
| Replicate | Descartada: generacion paga |
Nota: el documento dice que Commons “no tiene rate limit” — falso, Wikimedia rate-limita por IP (lo comprobe: “You are making too many requests”).
Pipeline final de cache (cache-images.js)
--fandom: API MediaWiki del wiki PDSH (gratis). pageimages primero, luego la primera imagen util del cuerpo (filtro: sin maps/logos/“No image.jpg”). Resultado: 3 personajes cacheados (Mighty Minerva, Dr. Defenso, Gentleman Archer); 11 PDSH sin imagen en el wiki.--commons: busca ”comic character” en Commons y valida licencia PD. Resultado para personajes oscuros: 0 (sin fan art PD). Hay material PD para Lovecraft (Ubbo-Sathla, Cthulhu) — el usuario puede correr la pasada completa. - SerpAPI (key): fuente final; 118 ya cacheados antes + 3 fandom + 3 commons = 124 en el indice.
Estado
- 21/21 tests. 124 imagenes en cache. Faltantes: 11 PDSH + 463 Marvel (image_not_available).
ACTUALIZACION: hotlinking de wikia bloqueado (bug del 99% vacio en PDSH)
- CAUSA RAIZ: static.wikia.nocookie.net responde 200 sin Referer pero 404
cuando el navegador manda Referer: localhost:5050 (hotlink protection).
Por eso el 99% de las imagenes PDSH (todas de wikia) se veian vacias en el
sitio, mientras Marvel (i.annihil.us) funcionaba. Los curls de la API sin
referrer daban 200 → diagnostico confuso hasta probar con
-e localhost. - FIX INMEDIATO:
<meta name="referrer" content="no-referrer">en el layout → el navegador no manda Referer → wikia responde 200. - FIX DEFINITIVO (local-first): pasada
--wikiaen cache-images.js que descarga los 9,282 thumbnails de wikia a public/img/cache/ (~250ms c/u, ~40-50 min total, o tandas con —limit). charThumb() ahora da PRIORIDAD al cache local sobre la URL remota. Verificado: personaje 2046 sirve /img/cache/2046.webp. - 21/21 tests. El usuario debe: reiniciar npm start + correr
npm run cache:images -- --wikia(por tandas).