CLI e pipeline di upload
Quality ladder, cifratura per chunk, gestione MKV e resume upload.
Ruolo della CLI
zkast-upload è lo strumento ufficiale per preparare renditions, cifrare in locale e caricare su zkast. Il server non vede mai il file sorgente in chiaro.
Installazione consigliata:
curl -fsSL https://api.zkast.io/cli/install.sh | sh
Lo script installa la CLI e, se necessario, Node.js 18+ e ffmpeg/ffprobe.
Pipeline in sequenza
- Analisi — ffprobe legge risoluzione, durata, tracce audio e sottotitoli.
- Transcoding — generazione quality ladder (
autoda altezza sorgente, o lista esplicita tipo1080p,720p). - Generazione chiave — chiave AES random sul computer dell’uploader.
- Cifratura — ogni chunk (4–5 MB) cifrato con AES-GCM prima dell’upload.
- Registrazione video —
POST /videoscrea il record (status: pending). - Upload chunk —
PUT /videos/:id/renditions/:renditionId/chunks/:indexper ogni parte cifrata. - Sottotitoli — estrazione da MKV o upload esterno WebVTT/SRT, poi cifratura e upload.
- Complete —
POST /videos/:id/completefinalizza il manifest v2.
Output tipico: decryption_key, video_id, embed_public_id e file di recovery zkast-upload-vid_….json.
Quality ladder
Valore --qualities | Comportamento |
|---|---|
auto (default) | Scala da altezza sorgente (es. 2160p → 1080p → 720p) |
1080p,720p | Lista esplicita |
source | Singola rendition alla risoluzione originale |
Preset disponibili: 2160p, 1080p, 720p, 480p, 360p, source.
MKV e sottotitoli
| Situazione | Comportamento |
|---|---|
Audio multipli senza --audio-lang | Tutte le tracce incluse; il player permette lo switch |
--audio-lang it | Solo traccia italiana (o prima disponibile) |
| Sottotitoli testuali in MKV | Estratti automaticamente |
| Sottotitoli bitmap (PGS/VobSub) | Saltati — non convertibili in WebVTT |
File esterni .vtt/.srt | --subtitle /path/file.vtt:en:English |
Resume upload
Se l’upload si interrompe, il file zkast-upload-vid_….json salva lo stato. Riprendi con:
zkast-upload \
--api-base https://api.zkast.io \
--api-key YOUR_API_KEY \
--resume ./zkast-upload-vid_a1b2c3d4e5f67890.json
Cosa salvare subito
| Valore | Dove |
|---|---|
decryption_key | Secret manager o DB backend — irrecuperabile se persa |
video_id | Embed e bootstrap |
embed_public_id | Attributo embed-id del player |
Riferimento completo opzioni CLI: sezione 4 di docs.zkast.io.