Player e bootstrap

Web component, sessioni embed, endpoint bootstrap e verifica dominio.

Web component

Il player è un custom element caricato da:

<script src="https://api.zkast.io/player/zkast-player.js?v=39"></script>

Attributi principali:

AttributoDescrizione
api-baseBase API (https://api.zkast.io)
video-idID pubblico (vid_…)
embed-idID embed dalla dashboard o output CLI
bootstrap-urlURL sul tuo server che restituisce la chiave

Non inserire decryption-key nell’HTML pubblico.

Ciclo di vita playback

  1. Il player richiede una sessione embed temporanea a zkast (vincolata al dominio registrato).
  2. Chiama bootstrap-url con credenziali/cookie del tuo sito.
  3. Il backend verifica l’autorizzazione e risponde con { video_id, decryption_key }.
  4. Il player scarica chunk cifrati e li decifra in RAM.
  5. I token vengono rinnovati automaticamente durante la riproduzione.

Header consigliati sulla risposta bootstrap:

Content-Type: application/json
Cache-Control: no-store
Access-Control-Allow-Origin: https://tuosito.com
Access-Control-Allow-Credentials: true

Verifica dominio

  1. Dashboard → CORS domains → inserisci hostname esatto (es. www.tuosito.com, senza https://).
  2. Aggiungi il record TXT DNS indicato.
  3. Attendi propagazione e clicca Verify DNS.

www.tuosito.com e tuosito.com sono domini distinti — registra quello che usi realmente.

Controlli player

Durante la riproduzione, l’icona ingranaggio offre:

  • Qualità video — renditions caricate (1080p, 720p, …)
  • Audio — switch tra tracce quando disponibili
  • Sottotitoli — selezione traccia o Off

Default: 1080p (o la massima disponibile fino a 1080p).

Demo su questo sito

La sezione “Player in azione” nella pagina progetto usa lo stesso web component con un video demo dedicato. La configurazione (video ID, embed ID, bootstrap URL o master key) è in src/config/zkast-demo.ts — da compilare quando il video demo è pronto.

Troubleshooting comune

ProblemaCausa probabile
Embed session failed (403)Dominio non registrato o non verificato
Bootstrap request failedRisposta JSON errata o CORS non configurato
Video non parteStato non ready in dashboard, o chiave mancante nel bootstrap
Chiave persaRe-upload obbligatorio — zkast non può recuperarla

Guida operativa completa: docs.zkast.io.