Skip to main content
I media sono file riutilizzabili — sfondi video, immagini statiche, loghi e clip intro/outro — a cui puoi fare riferimento dai preset o dalle impostazioni di progetto. Caricali una volta e riutilizzali in più progetti.

Tipi di media

TipoDescrizione
videoVideo di sfondo in loop.
imageImmagine di sfondo statica.
logoOverlay del logo.
intro-videoRiprodotto prima che inizi il karaoke.
outro-videoRiprodotto dopo che termina il karaoke.

client.media.list(options?)

Elenca tutti gli elementi multimediali riutilizzabili di proprietà dell’account autenticato.
const media = await client.media.list();

client.media.get(mediaId, options?)

Recupera un singolo elemento multimediale.
const media = await client.media.get("bg_abc123");

client.media.create(body, options?)

Crea un nuovo elemento multimediale da un percorso locale, da byte, oppure da un inputFileId già caricato. Per percorsi locali e byte, l’SDK prepara il caricamento, invia i byte del file all’URL di upload e registra il file caricato come media riutilizzabile.
const media = await client.media.create({
  type: "video",
  source: {
    type: "path",
    path: "./background.mp4",
    contentType: "video/mp4",
  },
});
type
'video' | 'image' | 'logo' | 'intro-video' | 'outro-video'
required
Quale ruolo svolge questo elemento multimediale in un render.
source
object
L’origine del file. Usa { type: "path", path } per i file locali, { type: "bytes", data, filename } per dati Blob, File, ArrayBuffer o typed array, oppure { type: "inputFile", inputFileId } quando hai già un ID di upload.
inputFileId
string
Opzione avanzata di basso livello: passa l’ID restituito da client.uploads.create(...) al posto di source.

client.media.delete(mediaId, options?)

Elimina un elemento multimediale.
await client.media.delete("bg_abc123", {
  idempotencyKey: "delete-bg_abc123",
});
L’eliminazione dei media non influisce su progetti o esportazioni che erano stati renderizzati in precedenza con essi. I render futuri che fanno riferimento ai media eliminati useranno lo sfondo predefinito.

Esempio end-to-end

import { YoukaClient } from "@youka/sdk";

const client = new YoukaClient({ apiKey: process.env.YOUKA_API_KEY! });

async function uploadBackground(path: string, contentType: string) {
  return client.media.create({
    type: "video",
    source: {
      type: "path",
      path,
      contentType,
    },
  });
}

const media = await uploadBackground("./loop.mp4", "video/mp4");
console.log("Media ID:", media.id);

Applicare uno sfondo

Fai riferimento ai media caricati da un preset oppure direttamente dalle impostazioni di progetto:
const media = await uploadBackground("./loop.mp4", "video/mp4");

await client.projects.updateSettings("prj_abc123", {
  settings: {
    style: {
      background: {
        type: "video",
        url: media.url,
        objectFit: "cover",
      },
    },
  },
});
Per l’insieme completo dei campi accettati sotto background, converti lo schema delle impostazioni di progetto in JSON:
import { RestUpdateProjectSettingsRequestSchema } from "@youka/sdk";

const schema = RestUpdateProjectSettingsRequestSchema.toJSONSchema();

Cosa segue