01 · Concepto

Un catálogo para todas las plataformas

Este subdominio aloja el catálogo público de audioguías y sus recursos (imágenes y audios). WordPress, Android e iOS consultarán los mismos datos. Es un servicio de lectura de archivos JSON y multimedia, no un panel de administración ni una API de escritura.

Instalación inicial: /v1/guias.json contiene []. Se publicarán fichas cuando estén listos sus detalles y recursos. La documentación muestra ejemplos, no audioguías ya operativas.
Web / WordPressCatálogo, mapa, páginas SEO y reproducción en navegador.
Android e iOSBúsqueda, puntos geolocalizados, audio o TTS y posibles descargas offline.
02 · Direcciones

URLs y endpoints de lectura

RecursoURL
Catálogo general/v1/guias.json Disponible
Detalle de audioguía/v1/guias/{id}/guia.json
Imagen portada/v1/guias/{id}/cover.jpg (ejemplo)
Imagen de punto/v1/guias/{id}/puntos/{puntoId}/foto-01.webp
Audio del punto/v1/guias/{id}/puntos/{puntoId}/audio-es.mp3 (opcional)
Las rutas de detalle y multimedia ilustran la estructura objetivo y todavía pueden devolver 404. El campo correspondiente en el JSON debe indicar la ruta efectiva del archivo.
03 · Organización

Estructura de carpetas en Plesk

RAÍZ DEL SUBDOMINIO (no es WordPress)
├─ index.html        ← Manual web
├─ README.md         ← Manual en Markdown
├─ logo.webp
└─ v1/
   ├─ guias.json     ← Catálogo general (vacío al instalar)
   ├─ guias/
   │  ├─ 35/         ← Ejemplo de estructura futura, NO publicado
   │  │  ├─ guia.json
   │  │  ├─ cover.jpg
   │  │  └─ puntos/
   │  │     └─ 001/
   │  │        ├─ foto-01.webp
   │  │        └─ audio-es.mp3  (opcional)
   │  └─ 10/
   └─ autores/

Los subdirectorios de ejemplo 35/ y 10/ no se han incluido en el paquete inicial porque aún falta recuperar el detalle completo de esas audioguías.

04 · Identificadores

IDs únicos y rutas relativas

  • El nombre de la carpeta de audioguía coincide con su id único. Varias guías pueden pertenecer a Retortillo de Soria sin compartir carpeta.
  • El JSON antiguo de Firebase utiliza un campo numérico ID distinto de la clave interna de Firebase. Para las guías existentes se propone conservar el ID histórico: Retortillo 35, Centro de Madrid 10.
  • Tu guias.json nuevo utiliza 1 y 2; hay que reconciliarlo antes de publicar.
  • Dentro de las audioguías, los puntos tienen un id estable y un campo orden independiente; reordenarlos no debe obligar a renombrar carpetas.
  • Los valores de rutas relativas de los JSON apuntan desde la base https://data.audioguidesapp.com/v1/. Por ejemplo guias/35/cover.jpg.
06 · Contenidos

Detalle y puntos de interés

Cada guia.json contendrá los metadatos de la audioguía y sus puntos, cada uno con ID, título, texto narrable, posición, imágenes y audio opcional. El contrato completo está pendiente de confirmar con un ejemplo íntegro recuperado.

Ejemplo solo estructural (texto/coordenadas aún sin completar):

{
  "id": "35",
  "version": 1,
  "puntos": [
    {
      "id": "001",
      "orden": 1,
      "ubicacion": { "lat": null, "lng": null },
      "textos": { "es": { "titulo": "", "contenido": "" } },
      "imagenes": ["guias/35/puntos/001/foto-01.webp"],
      "audios": { "es": null }
    }
  ]
}

Comportamiento del reproductor

  1. Si existe audio para el idioma elegido, reproducir el archivo indicado.
  2. Si no hay audio, usar el texto del punto como entrada para lectura TTS.
  3. La política de idioma alternativo y funcionamiento offline debe acordarse antes de implementar clientes.
En el catálogo general, puntos es un número; en el detalle de la audioguía, puntos es la colección de objetos completos.
07 · Integración

Web, Android e iOS

  1. Solicitar GET /v1/guias.json para listado, filtros y mapa.
  2. Al abrir una guía, solicitar GET /v1/guias/{id}/guia.json.
  3. Resolver imágenes y MP3 conforme a las rutas entregadas en JSON.
  4. La web mostrará contenido y reproductor en páginas indexables de WordPress; Android/iOS compartirán el contenido pero podrán añadir GPS y descargas.

Publicación futura: WordPress se plantea como gestor de creación y edición, respaldado por una base de datos y una API autenticada. La publicación actualizaría automáticamente estos JSON. No hay API de escritura pública ni usuarios conectados a este subdominio por ahora.

08 · Operaciones

Seguridad y mantenimiento

  • Solo archivos públicos. Prohibido subir exportaciones completas de Firebase, datos personales de usuarios, comentarios, claves de API, tokens y copias privadas.
  • Servir por HTTPS y desactivar el listado de directorios. Verificar permisos de archivos.
  • Para peticiones del navegador de WordPress, configurar CORS únicamente con los orígenes web necesarios.
  • Validar JSON, coordenadas, rutas, archivos y tipos MIME antes de publicar.
  • Mantener copias de seguridad externas, controlar espacio y ancho de banda, y planificar caché y versionado.
09 · Decisiones

Qué queda por acordar

  • Recuperación de un JSON real y completo con sus puntos.
  • Contrato definitivo de guia.json, idiomas, narración TTS y formato de imágenes.
  • Gestión de usuarios que crean audioguías y moderación de publicaciones.
  • API autenticada de creación/edición, modo offline, valoraciones y monetización.
  • Integración de publicación con WordPress y enlace a páginas SEO existentes.
Cambios incompatibles en el contrato deberán publicarse bajo una nueva versión (por ejemplo /v2/), para no romper Android e iOS.