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

  1. Analisi — ffprobe legge risoluzione, durata, tracce audio e sottotitoli.
  2. Transcoding — generazione quality ladder (auto da altezza sorgente, o lista esplicita tipo 1080p,720p).
  3. Generazione chiave — chiave AES random sul computer dell’uploader.
  4. Cifratura — ogni chunk (4–5 MB) cifrato con AES-GCM prima dell’upload.
  5. Registrazione videoPOST /videos crea il record (status: pending).
  6. Upload chunkPUT /videos/:id/renditions/:renditionId/chunks/:index per ogni parte cifrata.
  7. Sottotitoli — estrazione da MKV o upload esterno WebVTT/SRT, poi cifratura e upload.
  8. CompletePOST /videos/:id/complete finalizza il manifest v2.

Output tipico: decryption_key, video_id, embed_public_id e file di recovery zkast-upload-vid_….json.

Quality ladder

Valore --qualitiesComportamento
auto (default)Scala da altezza sorgente (es. 2160p → 1080p → 720p)
1080p,720pLista esplicita
sourceSingola rendition alla risoluzione originale

Preset disponibili: 2160p, 1080p, 720p, 480p, 360p, source.

MKV e sottotitoli

SituazioneComportamento
Audio multipli senza --audio-langTutte le tracce incluse; il player permette lo switch
--audio-lang itSolo traccia italiana (o prima disponibile)
Sottotitoli testuali in MKVEstratti 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

ValoreDove
decryption_keySecret manager o DB backend — irrecuperabile se persa
video_idEmbed e bootstrap
embed_public_idAttributo embed-id del player

Riferimento completo opzioni CLI: sezione 4 di docs.zkast.io.