Inicio rápido

XonaPlay codifica tus videos a HLS y te da un link que cualquier player HLS puede reproducir: hls.js, Safari, AVPlayer, ExoPlayer, VLC o el tuyo propio. No hay SDK. Hacés un solo llamado HTTP y le pasás la URL al player.

1. Conseguí una URL de reproducción

bash
curl https://api.xonaplay.com/v1/videos/{VIDEO_ID}/playback
json
{
  "status": "ok",
  "data": {
    "video_id": "0f8e2c7a-5d1b-4c3e-9a77-2b1f0c9d4e21",
    "short_id": "9KfR2mQx",
    "hls_url": "https://play.xonaplay.com/hls/t/Xk3qL9…/master.m3u8",
    "original_url": "https://…",
    "poster_url": "https://play.xonaplay.com/hls/t/Xk3qL9…/poster",
    "thumbnails_url": "https://play.xonaplay.com/hls/t/Xk3qL9…/thumbnails/thumbnails.vtt",
    "embed_url": "https://xonaplay.com/v/9KfR2mQx",
    "expires_at": "2026-10-09T03:00:00.000Z",
    "security": "protected",
    "delivery": "hls",
    "duration_sec": 3600
  }
}

{VIDEO_ID} es el id del video o su short_id (el que aparece en xonaplay.com/v/{short_id}).

original_url es el archivo tal cual lo subiste. Reproducí hls_url salvo que sepas que tu player soporta el formato; ver Original o HLS.

  • Video público, workspace en Open o Protected: llamalo sin key, desde tu sitio o tu app.
  • Video privado, o workspace en Strict: llamalo desde tu backend con tu secret key. Ver Autenticación.

2. Reproducilo

js
import Hls from "hls.js"
 
const video = document.querySelector("video")
const { data } = await fetch(playbackUrl).then((r) => r.json())
 
if (video.canPlayType("application/vnd.apple.mpegurl")) {
  video.src = data.hls_url // Safari
} else {
  const hls = new Hls()
  hls.loadSource(data.hls_url)
  hls.attachMedia(video)
}

Las pistas de audio y los subtítulos vienen dentro del playlist, así que tu player los muestra sin trabajo extra.

3. Recuperate cuando falla

Los links vencen a propósito. Cuando el player tiene un error fatal, pedí un hls_url nuevo y retomá en el mismo segundo. Leé Reproducción para la regla exacta; todas las recetas ya la incluyen.

Autenticación

Creá una secret key en el dashboard: Configuración → API. La ves una sola vez.

bash
curl https://api.xonaplay.com/v1/videos/{VIDEO_ID}/playback \
  -H "Authorization: Bearer $XONAPLAY_SECRET_KEY"
  • Guardá la key en tu servidor. Nunca la mandes en una página web o una app móvil.
  • Una key actúa sobre todo su workspace. Revocala desde el dashboard cuando quieras.

¿Sin código? Usá el iframe

html
<iframe src="https://xonaplay.com/v/9KfR2mQx" allow="autoplay; fullscreen" allowfullscreen></iframe>

El embed_url de /playback ya trae nuestro player, los anuncios y las analíticas, y renueva su propio link cuando vence.