docs: cerrar el bloqueante del #222 — endpoint subir-audio ya desplegado

Actualiza la guía de autoservicio TTS con la llamada real a
fea/v1/subir-audio (#224, ya en producción), verificada de extremo a
extremo por Claudix con una subida real y limpieza posterior.
This commit is contained in:
2026-08-31 07:38:22 -04:00
parent 1bb1eb925a
commit 8b016844d9
+41 -19
View File
@@ -4,11 +4,10 @@
> Rafa (issue [#222](https://gitea.feadulta.com/rafa/feadulta/issues/222)): dejar de pedirle
> el audio a Hermes y generarlo y subirlo vosotros mismos, con vuestro propio token de MiniMax.
>
> **Estado a 2026-08-31:** el proceso de generación (este documento) está completo y probado.
> **Subir el resultado al artículo sigue bloqueado** — falta un endpoint REST (`fea/v1/subir-audio`)
> para enganchar el mp3 al post, tal como pedía el punto 1 del #222. Ese endpoint lo está
> construyendo Codix (ver aviso al final). Hasta que esté desplegado podéis generar y guardar
> los mp3, pero no publicarlos en el sitio.
> **Estado a 2026-08-31:** completo y **desplegado en producción**. El endpoint
> `fea/v1/subir-audio` (PR [#224](https://gitea.feadulta.com/rafa/feadulta/pulls/224)) ya está
> en prod y verificado de extremo a extremo por Claudix con una subida real. El punto 1 del
> #222 queda cerrado — ver §6 para la llamada real.
>
> Este documento sustituye, para el caso de uso "Inma/Mixbot generan directamente", a la
> sección 4 de `docs/guia-tts-traduccion-inma.md` (que describe el flujo antiguo vía Hermes
@@ -198,23 +197,46 @@ este paso y avisad a Rafa/Claudix — es preferible subir un audio sin el acabad
nada, pero que quede constancia de que ese paso se saltó (para que quien revise sepa por qué
suena ligeramente distinto al resto).
## 6. Subir el resultado al artículo — BLOQUEADO hoy
## 6. Subir el resultado al artículo
Aquí es donde entra el hueco real que reportó el #222: **no hay forma de enganchar el mp3 al
post por REST todavía.** Los campos que necesita el sitio para reproducir el audio
(`fea_audio_url`, `fea_audio_done`, más `fea_audio_voice` para saber qué voz sonó) no están
expuestos en `/wp/v2/posts/{id}`, y el namespace `fea/v1` no tiene endpoint de audio.
El endpoint que faltaba ya está desplegado en producción (#224), con el mismo patrón que
`fea/v1/subir-avatar` (#175) que ya usáis:
**Esto se resuelve con un endpoint `fea/v1/subir-audio`**, con el mismo patrón que
`fea/v1/subir-avatar` (#175) que ya usáis: multipart con `post_id` + fichero `audio` (mp3),
autenticación igual que el resto de endpoints `fea/v1` (vuestro usuario Editor/Administrator),
y como respuesta el valor anterior de esos metas para poder deshacer si algo suena mal.
**Codix lo está construyendo** a partir de esta misma información — en cuanto esté
desplegado, se actualiza este documento con el ejemplo de llamada real y se cierra el punto 1
del #222.
```
POST https://www.feadulta.com/wp-json/fea/v1/subir-audio
Authorization: Basic <usuario:contraseña_de_aplicación> (o el header equivalente que useis)
Content-Type: multipart/form-data
Mientras tanto: generad y guardad los mp3 con normalidad (pasos 1-5), pero no hay manera de
publicarlos todavía — no es un fallo vuestro, es infraestructura pendiente.
post_id=<ID del artículo>
audio=<fichero .mp3, máx. 25 MiB>
voice_id=<opcional — el voice_id usado, para que quede registrado>
```
Respuesta (`201`):
```json
{
"post_id": 56785,
"audio_url": "https://www.feadulta.com/wp-content/uploads/tts/56785.mp3",
"voice_id": "NicoFeadulta2026",
"sha256": "<huella del mp3 subido>",
"previous_audio": {"url": null, "voice": null, "done": null, "sha256": null, "error": null}
}
```
`previous_audio` trae el estado de antes de vuestra subida (o todo `null` si el post no tenía
audio) — guardadlo si vais a reemplazar un audio ya publicado, por si hay que deshacer.
**Límite real: 25 MiB por fichero** (`upload_max_filesize`/`post_max_size` del servidor, y el
propio endpoint valida lo mismo con un mensaje claro). Los audios de la carta semanal rondan
5-6 MB, así que hay margen — pero si algún artículo muy largo genera un mp3 más grande,
avisad en vez de forzarlo: el límite se fijó a propósito en 25 MiB (no en los 256 MiB que se
había propuesto al principio) porque el caso de 198 MB del #212/#190 era un error de
generación a corregir, no un tamaño a soportar.
Solo admite `.mp3`/`audio/mpeg` — mismo nivel de permiso que el resto de endpoints `fea/v1`
de escritura (vuestro usuario Editor/Administrator). Verificado por Claudix el 2026-08-31 con
una subida real de extremo a extremo contra prod (post desechable, borrado después).
## 7. Lo que NO cambia con este traspaso