Skip to main content
Les exports rendent un karaoké finalisé sous forme de fichier vidéo. Utilisez client.exports.create(...) comme point d’entrée principal. Choisissez target: "local" lorsque vous voulez que le SDK rende directement sur la machine actuelle ; sinon, l’export cloud est le comportement par défaut.

client.exports.create(projectId, input, options?)

Choisissez la cible d’export avec target: "cloud" | "local".
const cloud = await client.exports.create("prj_abc123", {
  resolution: "1080p",
  quality: "high",
});
// => ExportOperation

const local = await client.exports.create("prj_abc123", {
  target: "local",
  resolution: "1080p",
  quality: "high",
  outputPath: "./karaoke.mp4",
});
// => { outputPath, fileSize, duration, ... }
Utilisez le cloud lorsque vous voulez un export asynchrone géré. Utilisez le local lorsque vous voulez rendre directement sur la machine de l’appelant.

Champs communs

ChampTypeDescription
resolution"540p" | "720p" | "1080p"Résolution de sortie.
quality"low" | "average" | "high"Qualité d’encodage.
playbackRatenumberMultiplicateur de vitesse (p. ex. 0.9).
toneFrequencynumberDécalage de hauteur en demi-tons.
transparentbooleanRendre avec un arrière-plan transparent.
presetIdstringAppliquer un preset avant le rendu.
stemVolumesRecord<string, number>Surcharges de volume par stem, indexées par id de stem.
settingsOverrideobjectPatch des réglages du projet uniquement pour cet export.

Exemple avec des volumes de stem

const result = await client.exports.create("prj_abc123", {
  resolution: "1080p",
  quality: "high",
  stemVolumes: {
    vocals: 0,
    instrumental: 1,
    backing: 0.5,
  },
});

Exemple avec une surcharge de réglages

const result = await client.exports.create("prj_abc123", {
  resolution: "1080p",
  settingsOverride: {
    trim: { startSeconds: 5, endSeconds: 180 },
    style: {
      background: { type: "color", color: "#101010" },
    },
  },
});
Voir Render settings reference pour la forme complète de settingsOverride.

client.exports.quote(projectId, input, options?)

Estimer les crédits requis pour un export cloud sans démarrer l’export.
const quote = await client.exports.quote("prj_abc123", {
  resolution: "1080p",
  quality: "high",
  transparent: false,
});

console.log(quote.creditsRequired, quote.sufficientBalance);
Les exports locaux s’exécutent sur la machine de l’appelant et n’utilisent pas de crédits d’export cloud ; ainsi, quote(...) ne concerne que les exports cloud.

client.exports.list(projectId, input?, options?)

Lister les exports d’un projet, avec pagination.
const exports = await client.exports.list("prj_abc123", {
  page: 1,
  pageSize: 50,
});
page
number
Numéro de page. Par défaut 1 côté serveur.
pageSize
number
Taille de page. Par défaut 100. Maximum 100.

client.exports.get(exportId, options?)

Récupérer un export par son ID uniquement, sans connaître le projet parent.
const exported = await client.exports.get("exp_xyz");

Export local

const result = await client.exports.create("prj_abc123", {
  target: "local",
  resolution: "1080p",
  quality: "high",
  outputPath: "./karaoke.mp4",
  onProgress(progress) {
    console.log(progress.stage, progress.percent);
  },
});

console.log(result.outputPath);
Utilisez onDependencyProgress si vous voulez des mises à jour pendant l’installation ou la vérification de la chaîne d’outils de rendu local.

client.exports.prepareLocal(projectId, body, options?)

Retourne la charge utile préparée nécessaire pour rendre un export localement. Utilisez ceci lors de l’intégration avec @youka/remotion ou un autre moteur de rendu local. Le serveur renvoie les entrées de composition, les URL d’assets et les paramètres de rendu sans mettre en file d’attente un rendu cloud.
const payload = await client.exports.prepareLocal("prj_abc123", {
  resolution: "1080p",
  quality: "high",
});

// Hand payload off to your local renderer
await renderLocally(payload);
client.exports.prepareLocal(...) ne démarre pas un rendu cloud. Aucun calcul facturable n’est consommé côté Youka.

Attendre un export

Les exports cloud sont asynchrones. Utilisez client.exports.wait(...) :
const operation = await client.exports.create("prj_abc123", {
  resolution: "1080p",
});

const finalized = await client.exports.wait(operation, {
  pollIntervalMs: 3_000,
});
console.log("Download from", finalized.url);

Télécharger le résultat

Les exports cloud se terminent avec une url signée. Utilisez l’assistant intégré pour streamer le fichier sur disque. output peut être soit un répertoire, soit un chemin de fichier complet, et filename est optionnel :
await client.exports.download(finalized, {
  output: "./exports",
});

Et ensuite

  • Tasks — handles d’opérations et polling avancé des tâches
  • Presets — configurations de rendu réutilisables
  • Project settings — patch des réglages actifs d’un projet