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
curl https://api.xonaplay.com/v1/videos/{VIDEO_ID}/playback{
"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
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.
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
<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.