Skip to main content
Les médias sont des fichiers réutilisables — arrière-plans vidéo, images statiques, logos et clips d’intro/outro — que vous pouvez référencer depuis des préréglages ou des paramètres de projet. Téléchargez une seule fois et réutilisez-les dans tous vos projets.

Types de média

TypeDescription
videoVidéo d’arrière-plan en boucle.
imageImage d’arrière-plan statique.
logoSuperposition de logo.
intro-videoSe lit avant le début du karaoké.
outro-videoSe lit après la fin du karaoké.

client.media.list(options?)

Lister tous les éléments média réutilisables appartenant au compte authentifié.
const media = await client.media.list();

client.media.get(mediaId, options?)

Récupérer un seul élément média.
const media = await client.media.get("bg_abc123");

client.media.create(body, options?)

Créer un nouvel élément média à partir d’un chemin local, d’octets ou d’un inputFileId déjà téléversé. Pour les chemins locaux et les octets, le SDK prépare le téléversement, envoie les octets du fichier à l’URL de téléversement et enregistre le fichier téléversé en tant que média réutilisable.
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
Quel rôle cet élément média remplit dans un rendu.
source
object
La source du fichier. Utilisez { type: "path", path } pour les fichiers locaux, { type: "bytes", data, filename } pour les données Blob, File, ArrayBuffer ou de tableau typé, ou { type: "inputFile", inputFileId } lorsque vous avez déjà un ID de téléversement.
inputFileId
string
Option avancée de bas niveau : passez l’ID renvoyé par client.uploads.create(...) à la place de source.

client.media.delete(mediaId, options?)

Supprimer un élément média.
await client.media.delete("bg_abc123", {
  idempotencyKey: "delete-bg_abc123",
});
La suppression d’un média n’affecte pas les projets ni les exports qui ont déjà été rendus avec celui-ci. Les futurs rendus qui référencent le média supprimé reviendront à l’arrière-plan par défaut.

Exemple de bout en bout

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

Appliquer un arrière-plan

Référencez les médias téléversés depuis un préréglage ou directement depuis les paramètres de projet :
const media = await uploadBackground("./loop.mp4", "video/mp4");

await client.projects.updateSettings("prj_abc123", {
  settings: {
    style: {
      background: {
        type: "video",
        url: media.url,
        objectFit: "cover",
      },
    },
  },
});
Pour l’ensemble complet des champs acceptés sous background, convertissez le schéma des paramètres de projet en JSON :
import { RestUpdateProjectSettingsRequestSchema } from "@youka/sdk";

const schema = RestUpdateProjectSettingsRequestSchema.toJSONSchema();

Et ensuite