Para IA
Todo esto existe como texto plano, para que un asistente de IA lo pueda leer sin un navegador.
| Archivo | Qué tiene |
|---|---|
/llms.txt |
Índice de cada página, una línea por página |
/llms-full.txt |
Todas las guías y la referencia en un solo archivo |
/{page}.md |
Cualquier página como Markdown (también con Accept: text/markdown) |
/openapi.json |
OpenAPI 3 de la API pública |
Descargar para tu IA te da un .md con todo eso más las reglas de abajo.
Si iniciaste sesión, también incluye tu URL base de API, tu workspace y un id
de video real de tu cuenta — nunca un secreto.
Reglas para el asistente
- La secret key (
xp_sk_…) vive en el servidor. Nunca la pongas en una página web, una app móvil o un repositorio. - Llamá a
GET /v1/videos/{id}/playbackcuando se abre el player, nunca antes. - Usá
hls_urltal cual. Nunca armes, cachees ni reescribas URLs de video. - Para reproducir, usá
hls_url.original_urles el archivo sin tocar: usalo solo si tu player soporta su formato. - Nunca descargues ni rehostees videos por tu cuenta. Para obtener el archivo,
llamá a
GET /v1/videos/{id}/download. Para traer un video desde una URL, llamá aPOST /v1/videos/imports. - Ante un error fatal del player, llamá a
/playbackde nuevo (como máximo una vez por minuto) y retomá en el mismo segundo. - Si
/playbackdevuelvestatus: "error", mostrá sumessage. Ofrecé Recargar solo para los códigos reintentables:VIDEO_NOT_READY,LIVE_NOT_ACTIVE,RATE_LIMITED, 5xx. El host del video (no/playback) también puede responderMAXIMUM_UNAVAILABLE(503, texto plano, headerX-Xona-Error) al servir el manifiesto o un segmento — también es reintentable, con la misma regla de recargar. - Todo el JSON es snake_case:
hls_url,expires_at,per_page. - Cada respuesta es
{ "status": "ok", "data": … }o{ "status": "error", "code": …, "message": … }. Las listas sumanmeta: { total, page, per_page, last_page }. {id}acepta elidUUID o elshort_id.- Pasá
viewer_idcon tu propio id de usuario, así un link filtrado se puede rastrear. - Verificá los webhooks con
X-Xona-Signaturesobre el body crudo, y rechazá timestamps de más de cinco minutos de antigüedad.
Prompt sugerido
Leé los docs de XonaPlay adjuntos. Integrá la reproducción de video en mi app usando
/v1/videos/{id}/playbackdesde mi backend con la secret key en la variable de entornoXONAPLAY_SECRET_KEY. Seguí la regla de recargar y las reglas para el asistente al pie de la letra. No agregues un SDK.