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:
| Attributo | Descrizione |
|---|---|
api-base | Base API (https://api.zkast.io) |
video-id | ID pubblico (vid_…) |
embed-id | ID embed dalla dashboard o output CLI |
bootstrap-url | URL sul tuo server che restituisce la chiave |
Non inserire decryption-key nell’HTML pubblico.
Ciclo di vita playback
- Il player richiede una sessione embed temporanea a zkast (vincolata al dominio registrato).
- Chiama
bootstrap-urlcon credenziali/cookie del tuo sito. - Il backend verifica l’autorizzazione e risponde con
{ video_id, decryption_key }. - Il player scarica chunk cifrati e li decifra in RAM.
- 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
- Dashboard → CORS domains → inserisci hostname esatto (es.
www.tuosito.com, senzahttps://). - Aggiungi il record TXT DNS indicato.
- 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
| Problema | Causa probabile |
|---|---|
| Embed session failed (403) | Dominio non registrato o non verificato |
| Bootstrap request failed | Risposta JSON errata o CORS non configurato |
| Video non parte | Stato non ready in dashboard, o chiave mancante nel bootstrap |
| Chiave persa | Re-upload obbligatorio — zkast non può recuperarla |
Guida operativa completa: docs.zkast.io.