Início rápido

A XonaPlay codifica seus vídeos para HLS e te dá um link que qualquer player HLS consegue reproduzir: hls.js, Safari, AVPlayer, ExoPlayer, VLC ou o seu próprio. Não existe SDK. Você faz uma única chamada HTTP e passa a URL para o player.

1. Obtenha uma URL de reprodução

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} é o id do vídeo ou o seu short_id (o mesmo que aparece em xonaplay.com/v/{short_id}).

original_url é o arquivo exatamente como você enviou. Reproduza hls_url, a menos que saiba que o seu player suporta o formato; veja Original ou HLS.

  • Vídeo público, workspace em Open ou Protected: chame sem key, direto do seu site ou app.
  • Vídeo privado, ou workspace em Strict: chame pelo seu backend com a sua secret key. Veja Autenticação.

2. Reproduza

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)
}

As faixas de áudio e as legendas já vêm dentro do playlist, então o seu player as exibe sem trabalho extra.

3. Recupere-se quando falhar

Os links expiram de propósito. Quando o player tiver um erro fatal, peça um hls_url novo e retome no mesmo segundo. Leia Reprodução para a regra exata; todas as receitas já a incluem.

Autenticação

Crie uma secret key no dashboard: Configurações → API. Você a vê uma única vez.

bash
curl https://api.xonaplay.com/v1/videos/{VIDEO_ID}/playback \
  -H "Authorization: Bearer $XONAPLAY_SECRET_KEY"
  • Mantenha a key no seu servidor. Nunca a envie em uma página web ou em um app mobile.
  • Uma key atua sobre todo o seu workspace. Revogue-a pelo dashboard a qualquer momento.

Sem código? Use o iframe

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

O embed_url de /playback já traz nosso player, os anúncios e as análises, e renova o próprio link quando ele expira.