Para IA

Tudo aqui existe como texto puro, para que um assistente de IA consiga ler sem um navegador.

Arquivo O que tem
/llms.txt Índice de cada página, uma linha por página
/llms-full.txt Todos os guias e a referência em um único arquivo
/{page}.md Qualquer página como Markdown (também com Accept: text/markdown)
/openapi.json OpenAPI 3 da API pública

Baixar para sua IA te dá um .md com tudo isso mais as regras abaixo. Se você estiver logado, ele também inclui sua URL base de API, seu workspace e um id de vídeo real da sua conta — nunca um segredo.

Regras para o assistente

  1. A secret key (xp_sk_…) vive no servidor. Nunca a coloque em uma página web, um app mobile ou um repositório.
  2. Chame GET /v1/videos/{id}/playback quando o player abrir, nunca antes.
  3. Use hls_url como está. Nunca monte, cacheie ou reescreva URLs de vídeo.
  4. Para reproduzir, use hls_url. original_url é o arquivo intacto: use-o só se o seu player suportar o formato.
  5. Nunca baixe nem rehospede vídeos por conta própria. Para obter o arquivo, use GET /v1/videos/{id}/download. Para trazer um vídeo de uma URL, use POST /v1/videos/imports.
  6. Diante de um erro fatal do player, chame /playback de novo (no máximo uma vez por minuto) e retome no mesmo segundo.
  7. Se /playback retornar status: "error", mostre a message. Ofereça Recarregar só para os códigos reexecutáveis: VIDEO_NOT_READY, LIVE_NOT_ACTIVE, RATE_LIMITED, 5xx. O host do vídeo (não o /playback) também pode responder MAXIMUM_UNAVAILABLE (503, texto puro, header X-Xona-Error) ao servir o manifesto ou um segmento — também é reexecutável, com a mesma regra de recarregar.
  8. Todo o JSON é snake_case: hls_url, expires_at, per_page.
  9. Cada resposta é { "status": "ok", "data": … } ou { "status": "error", "code": …, "message": … }. Listas somam meta: { total, page, per_page, last_page }.
  10. {id} aceita o id UUID ou o short_id.
  11. Passe viewer_id com o id do seu próprio usuário, assim um link vazado pode ser rastreado.
  12. Verifique os webhooks com X-Xona-Signature sobre o body bruto, e rejeite timestamps com mais de cinco minutos.

Prompt sugerido

Leia os docs da XonaPlay em anexo. Integre a reprodução de vídeo no meu app usando /v1/videos/{id}/playback a partir do meu backend com a secret key na variável de ambiente XONAPLAY_SECRET_KEY. Siga a regra de recarregar e as regras para o assistente à risca. Não adicione um SDK.