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 > 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. > 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. > **Estado a 2026-08-31:** completo y **desplegado en producción**. El endpoint
> **Subir el resultado al artículo sigue bloqueado** — falta un endpoint REST (`fea/v1/subir-audio`) > `fea/v1/subir-audio` (PR [#224](https://gitea.feadulta.com/rafa/feadulta/pulls/224)) ya está
> para enganchar el mp3 al post, tal como pedía el punto 1 del #222. Ese endpoint lo está > en prod y verificado de extremo a extremo por Claudix con una subida real. El punto 1 del
> construyendo Codix (ver aviso al final). Hasta que esté desplegado podéis generar y guardar > #222 queda cerrado — ver §6 para la llamada real.
> los mp3, pero no publicarlos en el sitio.
> >
> Este documento sustituye, para el caso de uso "Inma/Mixbot generan directamente", a la > 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 > 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é nada, pero que quede constancia de que ese paso se saltó (para que quien revise sepa por qué
suena ligeramente distinto al resto). 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 El endpoint que faltaba ya está desplegado en producción (#224), con el mismo patrón que
post por REST todavía.** Los campos que necesita el sitio para reproducir el audio `fea/v1/subir-avatar` (#175) que ya usáis:
(`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.
**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), POST https://www.feadulta.com/wp-json/fea/v1/subir-audio
autenticación igual que el resto de endpoints `fea/v1` (vuestro usuario Editor/Administrator), Authorization: Basic <usuario:contraseña_de_aplicación> (o el header equivalente que useis)
y como respuesta el valor anterior de esos metas para poder deshacer si algo suena mal. Content-Type: multipart/form-data
**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.
Mientras tanto: generad y guardad los mp3 con normalidad (pasos 1-5), pero no hay manera de post_id=<ID del artículo>
publicarlos todavía — no es un fallo vuestro, es infraestructura pendiente. 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 ## 7. Lo que NO cambia con este traspaso