Skip to main content
Medien sind wiederverwendbare Dateien — Video-Hintergründe, statische Bilder, Logos sowie Intro-/Outro-Clips — auf die du aus Presets oder Projekteinstellungen verweisen kannst. Einmal hochladen und projektübergreifend wiederverwenden.

Medientypen

TypBeschreibung
videoLoopendes Hintergrundvideo.
imageStatisches Hintergrundbild.
logoLogo-Overlay.
intro-videoWird abgespielt, bevor das Karaoke startet.
outro-videoWird abgespielt, nachdem das Karaoke endet.

client.media.list(options?)

Listet alle wiederverwendbaren Medienelemente auf, die dem authentifizierten Konto gehören.
const media = await client.media.list();

client.media.get(mediaId, options?)

Ruft ein einzelnes Medienelement ab.
const media = await client.media.get("bg_abc123");

client.media.create(body, options?)

Erstellt ein neues Medienelement aus einem lokalen Pfad, Bytes oder einer bereits hochgeladenen inputFileId. Bei lokalen Pfaden und Bytes bereitet das SDK den Upload vor, sendet die Dateibytes an die Upload-URL und registriert die hochgeladene Datei als wiederverwendbares Medium.
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
Welche Rolle dieses Medienelement in einem Render erfüllt.
source
object
Die Dateiquelle. Verwende { type: "path", path } für lokale Dateien, { type: "bytes", data, filename } für Blob, File, ArrayBuffer oder Typed-Array- Daten, oder { type: "inputFile", inputFileId }, wenn du bereits eine Upload- ID hast.
inputFileId
string
Erweiterte Low-Level-Option: Übergib die von client.uploads.create(...) zurückgegebene ID anstelle von source.

client.media.delete(mediaId, options?)

Löscht ein Medienelement.
await client.media.delete("bg_abc123", {
  idempotencyKey: "delete-bg_abc123",
});
Das Löschen von Medien hat keine Auswirkungen auf Projekte oder Exporte, die zuvor damit gerendert wurden. Zukünftige Renders, die auf die gelöschten Medien verweisen, fallen auf den Standardhintergrund zurück.

End-to-end-Beispiel

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);

Hintergrund anwenden

Verweise auf hochgeladene Medien aus einem Preset oder direkt über die Projekteinstellungen:
const media = await uploadBackground("./loop.mp4", "video/mp4");

await client.projects.updateSettings("prj_abc123", {
  settings: {
    style: {
      background: {
        type: "video",
        url: media.url,
        objectFit: "cover",
      },
    },
  },
});
Für den vollständigen Satz an Feldern, die unter background akzeptiert werden, konvertiere das Projekteinstellungen-Schema in JSON:
import { RestUpdateProjectSettingsRequestSchema } from "@youka/sdk";

const schema = RestUpdateProjectSettingsRequestSchema.toJSONSchema();

Wie geht es weiter?